public void ValidateMetabank() { using (var fs = new LocalFileSystem(NOPApplication.Instance)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) using (new SkyApplication(NOPApplication.Instance, SystemApplicationType.TestRig, mb, "US/East/CLE/A/I/wmed0001", true, null, null)) { var output = new List <MetabaseValidationMsg>(); mb.Validate(output); foreach (var msg in output) { Console.WriteLine(msg); } Aver.AreEqual(5, output.Count(m => m.Type == MetabaseValidationMessageType.Warning)); Aver.AreEqual(6, output.Count(m => m.Type == MetabaseValidationMessageType.Info)); } }
public void RC_ParentZoneGov_4_TranscendNOC() { using (var fs = new LocalFileSystem(NOPApplication.Instance)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) using (new SkyApplication(NOPApplication.Instance, SystemApplicationType.TestRig, mb, "/US/East/CLE/A/I/wmed0001", true, null, null)) { var host = mb.CatalogReg.NavigateHost("/US/East/CLE/A/zgov0456"); var zgov = host.ParentZoneGovernorPrimaryHost(false); //Do not leave this NOC Aver.IsNull(zgov); zgov = host.ParentZoneGovernorPrimaryHost(/* default */); //DEFAULT=FALSE Do not leave this NOC Aver.IsNull(zgov); zgov = host.ParentZoneGovernorPrimaryHost(true); //Transcend this NOC Aver.IsNotNull(zgov); Aver.AreEqual("/US/USNational/Controller/zgov0891", zgov.RegionPath); } }
public void AppCat_ApplicationList() { using (var fs = new LocalFileSystem(NOPApplication.Instance)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) { Aver.IsNotNull(mb.CatalogApp); Aver.IsTrue(mb.CatalogApp.IsSystem); Aver.IsNotNull(mb.CatalogApp.Applications); Aver.AreEqual(8, mb.CatalogApp.Applications.Count()); Aver.AreEqual("WebApp1", mb.CatalogApp.Applications["WebApp1"].Name); Aver.AreEqual("AHGov", mb.CatalogApp.Applications["AHGov"].Name); Aver.AreEqual("AZGov", mb.CatalogApp.Applications["AZGov"].Name); Aver.AreEqual("AGDIDA", mb.CatalogApp.Applications["AGDIDA"].Name); Aver.AreEqual("TestApp", mb.CatalogApp.Applications["TestApp"].Name); Aver.AreEqual("WinFormsTest", mb.CatalogApp.Applications["WinFormsTest"].Name); } }
public void AppCat_RoleList() { using (var fs = new LocalFileSystem(NOPApplication.Instance)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) { Aver.IsNotNull(mb.CatalogApp); Aver.IsTrue(mb.CatalogApp.IsSystem); Aver.IsNotNull(mb.CatalogApp.Roles); Aver.AreEqual(6, mb.CatalogApp.Roles.Count()); Aver.AreEqual("MixedServer", mb.CatalogApp.Roles["MixedServer"].Name); Aver.AreEqual("Single", mb.CatalogApp.Roles["Single"].Name); Aver.AreEqual("ZoneGovernor", mb.CatalogApp.Roles["ZoneGovernor"].Name); Aver.AreEqual("WWWServer", mb.CatalogApp.Roles["WWWServer"].Name); Aver.AreEqual("TestServer", mb.CatalogApp.Roles["TestServer"].Name); Aver.AreEqual("Agdida", mb.CatalogApp.Roles["Agdida"].Name); } }
public void ValidateMetabank() { using (var fs = new LocalFileSystem(null)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) using (Agni.AppModel.BootConfLoader.LoadForTest(AppModel.SystemApplicationType.TestRig, mb, "US/East/CLE/A/I/wmed0001")) { var output = new List <MetabaseValidationMsg>(); mb.Validate(output); foreach (var msg in output) { Console.WriteLine(msg); } Aver.AreEqual(5, output.Count(m => m.Type == MetabaseValidationMessageType.Warning)); Aver.AreEqual(6, output.Count(m => m.Type == MetabaseValidationMessageType.Info)); } }
public void RC_GeoDistanceBetweenPaths() { using (var fs = new LocalFileSystem(NOPApplication.Instance)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) { var d1 = mb.CatalogReg.GetGeoDistanceBetweenPaths("/europe/west/ams", "/us/east/cle"); var d2 = mb.CatalogReg.GetGeoDistanceBetweenPaths("/europe/west/ams", "/us/east/jfk"); var d3 = mb.CatalogReg.GetGeoDistanceBetweenPaths("/europe/west/ams", "/africa/cairo"); var d4 = mb.CatalogReg.GetGeoDistanceBetweenPaths("/africa/cairo", "/europe/west/ams"); Console.WriteLine("Physical geo distance between AMS and CLE is {0}km", d1); Console.WriteLine("Physical geo distance between AMS and JFK is {0}km", d2); Console.WriteLine("Physical geo distance between AMS and Cairo is {0}km", d3); Aver.IsTrue(d2 < d1); Aver.IsTrue(d3 < d2); Aver.AreEqual(d3, d4); } }
public void RC_ParentNOCZone() { using (var fs = new LocalFileSystem(NOPApplication.Instance)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) using (new SkyApplication(NOPApplication.Instance, SystemApplicationType.TestRig, mb, "/US/East/CLE/A/I/wmed0001", true, null, null)) { var nocNATIONAL = mb.CatalogReg.NavigateNOC("/US/USNational.noc"); var nocCLE = mb.CatalogReg.NavigateNOC("/US/East/Cle.noc"); var nocLAX = mb.CatalogReg.NavigateNOC("/US/West/LAX.noc"); var nocJFK = mb.CatalogReg.NavigateNOC("/US/East/JFK.noc"); var nocAMS = mb.CatalogReg.NavigateNOC("/Europe/West/AMS.noc"); Aver.IsTrue(nocCLE.ParentNOCZone.NOC.IsLogicallyTheSame(nocNATIONAL)); Aver.IsTrue(nocLAX.ParentNOCZone.NOC.IsLogicallyTheSame(nocNATIONAL)); Aver.IsTrue(nocJFK.ParentNOCZone.NOC.IsLogicallyTheSame(nocNATIONAL)); Aver.IsNull(nocAMS.ParentNOCZone); Aver.IsNull(nocAMS.ParentNOCZonePath); } }
public void RC_ParentNOCZone() { using (var fs = new LocalFileSystem(null)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) using (AppModel.BootConfLoader.LoadForTest(AppModel.SystemApplicationType.ZoneGovernor, mb, "/US/East/CLE/A/I/wmed0001")) { var nocNATIONAL = mb.CatalogReg.NavigateNOC("/US/USNational.noc"); var nocCLE = mb.CatalogReg.NavigateNOC("/US/East/Cle.noc"); var nocLAX = mb.CatalogReg.NavigateNOC("/US/West/LAX.noc"); var nocJFK = mb.CatalogReg.NavigateNOC("/US/East/JFK.noc"); var nocAMS = mb.CatalogReg.NavigateNOC("/Europe/West/AMS.noc"); Aver.IsTrue(nocCLE.ParentNOCZone.NOC.IsLogicallyTheSame(nocNATIONAL)); Aver.IsTrue(nocLAX.ParentNOCZone.NOC.IsLogicallyTheSame(nocNATIONAL)); Aver.IsTrue(nocJFK.ParentNOCZone.NOC.IsLogicallyTheSame(nocNATIONAL)); Aver.IsNull(nocAMS.ParentNOCZone); Aver.IsNull(nocAMS.ParentNOCZonePath); } }
public void RC_Navigate_Methods() { using (var fs = new LocalFileSystem(NOPApplication.Instance)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) { Aver.AreEqual("US", mb.CatalogReg.NavigateRegion("/US/East").ParentRegion.Name); Aver.AreEqual("US", mb.CatalogReg.NavigateRegion("/US/East.r").ParentRegion.Name); Aver.AreEqual("US", mb.CatalogReg.NavigateRegion("/US.r/East.r").ParentRegion.Name); Aver.AreEqual("East", mb.CatalogReg.NavigateNOC("/US/East/CLE").ParentRegion.Name); Aver.AreEqual("CLE", mb.CatalogReg.NavigateNOC("/US/East/CLE.noc").Name); Aver.AreEqual("A", mb.CatalogReg.NavigateZone("/US/East/CLE/A/I").ParentZone.Name); Aver.AreEqual("A", mb.CatalogReg.NavigateZone("/US/East/CLE/A.z/I").ParentZone.Name); Aver.AreEqual("A", mb.CatalogReg.NavigateZone("/US/East/CLE/A/I.z").ParentZone.Name); Aver.AreEqual("CLE", mb.CatalogReg.NavigateHost("/US/East/CLE/A/I/wmed0001").ParentZone.NOC.Name); Aver.AreEqual("CLE", mb.CatalogReg.NavigateHost("/US/East/CLE.noc/A.z/I.z/wmed0001.h").ParentZone.NOC.Name); Aver.AreEqual("CLE", mb.CatalogReg.NavigateHost("/US.r/East/CLE.noc/A/I.z/wmed0001.h").ParentZone.NOC.Name); } }
public void AppCat_RoleList_Parallel() { using (var fs = new LocalFileSystem(null)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) { Parallel.For(0, TestSources.PARALLEL_LOOP_TO, (i) => { Thread.SpinWait(ExternalRandomGenerator.Instance.NextScaledRandomInteger(100, 10000)); Aver.IsNotNull(mb.CatalogApp); Aver.IsTrue(mb.CatalogApp.IsSystem); Aver.IsNotNull(mb.CatalogApp.Roles); Aver.AreEqual(6, mb.CatalogApp.Roles.Count()); Aver.AreEqual("MixedServer", mb.CatalogApp.Roles["MixedServer"].Name); Aver.AreEqual("Single", mb.CatalogApp.Roles["Single"].Name); Aver.AreEqual("ZoneGovernor", mb.CatalogApp.Roles["ZoneGovernor"].Name); Aver.AreEqual("WWWServer", mb.CatalogApp.Roles["WWWServer"].Name); Aver.AreEqual("TestServer", mb.CatalogApp.Roles["TestServer"].Name); Aver.AreEqual("Agdida", mb.CatalogApp.Roles["Agdida"].Name); }); } }
public void AppCat_ApplicationList_Parallel() { using (var fs = new LocalFileSystem(null)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) { Parallel.For(0, TestSources.PARALLEL_LOOP_TO, (i) => { Thread.SpinWait(ExternalRandomGenerator.Instance.NextScaledRandomInteger(100, 10000)); Aver.IsNotNull(mb.CatalogApp); Aver.IsTrue(mb.CatalogApp.IsSystem); Aver.IsNotNull(mb.CatalogApp.Applications); Aver.AreEqual(8, mb.CatalogApp.Applications.Count()); Aver.AreEqual("WebApp1", mb.CatalogApp.Applications["WebApp1"].Name); Aver.AreEqual("AHGov", mb.CatalogApp.Applications["AHGov"].Name); Aver.AreEqual("AZGov", mb.CatalogApp.Applications["AZGov"].Name); Aver.AreEqual("AGDIDA", mb.CatalogApp.Applications["AGDIDA"].Name); Aver.AreEqual("TestApp", mb.CatalogApp.Applications["TestApp"].Name); Aver.AreEqual("WinFormsTest", mb.CatalogApp.Applications["WinFormsTest"].Name); }); } }
public void AppCat_Packages() { using (var fs = new LocalFileSystem(null)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) { var app = mb.CatalogApp.Applications["TestApp"]; var packages = app.Packages.ToList(); Aver.AreEqual("TestApp", app.Name); Aver.AreEqual("App for unit testing", app.Description); Aver.AreEqual(3, packages.Count); Aver.AreEqual("TestPackage1", packages[0].Name); Aver.AreEqual(Metabank.DEFAULT_PACKAGE_VERSION, packages[0].Version); Aver.AreEqual("TestPackage2", packages[1].Name); Aver.AreEqual("older", packages[1].Version); Aver.AreEqual("TestPackage3", packages[2].Name); Aver.AreEqual(Metabank.DEFAULT_PACKAGE_VERSION, packages[2].Version); } }
private Metabank mountMetabank() { var mNode = m_BootApplication.ConfigRoot[CONFIG_SKY_SECTION][CONFIG_METABASE_SECTION]; ensureMetabaseAppName(mNode); FileSystemSessionConnectParams fsSessionConnectParams; var fs = getFileSystem(mNode, out fsSessionConnectParams); m_IsMetabaseFSOwner = true; var fsRoot = mNode[CONFIG_FS_SECTION].AttrByName(CONFIG_ROOT_ATTR).Value; if (fsRoot.IsNullOrWhiteSpace()) { writeLog(MessageType.Info, "Metabase fs root is null in config, trying to take from machine env var {0}".Args(ENV_VAR_METABASE_FS_ROOT)); fsRoot = Environment.GetEnvironmentVariable(ENV_VAR_METABASE_FS_ROOT); } writeLog(MessageType.Info, "Metabase FS root: " + fsRoot); writeLog(MessageType.Info, "Mounting metabank..."); try { var result = new Metabank(m_BootApplication, m_Application, fs, fsSessionConnectParams, fsRoot); writeLog(MessageType.Info, "...Metabank mounted"); return(result); } catch (Exception error) { writeLog(MessageType.CatastrophicError, error.ToMessageWithType()); throw error; } }
internal static void Unload() { if (!s_Loaded) { return; } s_Loaded = false; s_SystemApplicationType = AppModel.SystemApplicationType.Unspecified; s_HostName = null; s_DynamicHostNameSuffix = null; s_ParentZoneGovernorPrimaryHostName = null; try { if (s_Metabase != null) { var mb = s_Metabase; var fs = mb.FileSystem; s_Metabase = null; try { mb.Dispose(); } finally { if (fs != null) { fs.Dispose(); } }//finally } } catch { //nowhere to log anymore as all loggers have stopped } }
static void run(string[] args) { using (var app = new AzosApplication(allowNesting: true, args: args, rootConfig: null)) { var silent = app.CommandArgs["s", "silent"].Exists; if (!silent) { ConsoleUtils.WriteMarkupContent(typeof(ProgramBody).GetText("Welcome.txt")); ConsoleUtils.Info("Build information:"); Console.WriteLine(" Azos: " + BuildInformation.ForFramework); Console.WriteLine(" Tool: " + new BuildInformation(typeof(amm.ProgramBody).Assembly)); } if (app.CommandArgs["?", "h", "help"].Exists) { ConsoleUtils.WriteMarkupContent(typeof(ProgramBody).GetText("Help.txt")); return; } var mbPath = app.CommandArgs .AttrByIndex(0) .ValueAsString(System.Environment.GetEnvironmentVariable(BootConfLoader.ENV_VAR_METABASE_FS_ROOT)); if (!Directory.Exists(mbPath)) { throw new Exception("Specified metabase path not found"); } var fromHost = app.CommandArgs["host", "from"].AttrByIndex(0).Value; if (fromHost.IsNullOrWhiteSpace()) { fromHost = System.Environment.GetEnvironmentVariable(BootConfLoader.ENV_VAR_HOST_NAME); } if (!silent) { ConsoleUtils.Info("Metabase path: " + mbPath); ConsoleUtils.Info("Host (this machine): " + fromHost); } var w = System.Diagnostics.Stopwatch.StartNew(); using (var fs = new LocalFileSystem(app)) using (var mb = new Metabank(fs, new FileSystemSessionConnectParams(), mbPath)) { //using (new BootConfLoader(SystemApplicationType.Tool, mb, fromHost)) using (var skyApp = new SkyApplication(app, SystemApplicationType.Tool, mb, fromHost, allowNesting: false, args: null, rootConfig: null)) { if (app.CommandArgs["gbm"].Exists) { generateManifests(mb, silent); } else { validate(mb, silent); } } } if (!silent) { Console.WriteLine(); ConsoleUtils.Info("Run time: " + w.Elapsed.ToString()); } }//using APP }
internal SecCatalog(Metabank bank) : base(bank, SEC_CATALOG) { }
public void RC_Various_Parallel() { using (var fs = new LocalFileSystem(NOPApplication.Instance)) using (var mb = new Metabank(fs, null, TestSources.RPATH)) { Parallel.For(0, TestSources.PARALLEL_LOOP_TO, (i) => { Thread.SpinWait(Ambient.Random.NextScaledRandomInteger(10, 1000)); Aver.IsTrue(mb.CatalogReg.IsSystem); Aver.IsNotNull(mb.CatalogReg.Regions["US"]); Aver.IsNotNull(mb.CatalogReg.Regions["Europe"]); Aver.AreEqual("US", mb.CatalogReg.Regions["US"].Name); Aver.AreEqual("Europe", mb.CatalogReg.Regions["Europe"].Name); Aver.AreEqual("US", mb.CatalogReg["/US"].Name); Aver.AreEqual("Europe", mb.CatalogReg["/Europe"].Name); Aver.AreEqual("East", mb.CatalogReg["/US/East"].Name); Aver.AreEqual("East", mb.CatalogReg["/US/East.r"].Name); Aver.AreEqual("East", mb.CatalogReg["/US.r/East"].Name); Aver.AreEqual("CLE", mb.CatalogReg["/US/East/CLE"].Name); Aver.AreEqual("CLE", mb.CatalogReg["/US/East/CLE.noc"].Name); Aver.AreEqual("CLE", mb.CatalogReg["/US.r/East/CLE.noc"].Name); Aver.AreEqual("CLE", mb.CatalogReg["/US.r/East.r/CLE.noc"].Name); Aver.AreEqual("I", mb.CatalogReg["/US/East/CLE/A/I"].Name); Aver.AreEqual("A", mb.CatalogReg["/US/East/CLE.noc/A.z"].Name); Aver.AreEqual("wmed0001", mb.CatalogReg["/US/East/CLE/A/I/wmed0001"].Name); Aver.AreEqual("wmed0001", mb.CatalogReg["/US/East/CLE.noc/A/I/wmed0001"].Name); Aver.AreEqual("/US/East/CLE/A/I/wmed0001", mb.CatalogReg["/US/East/CLE/A/I/wmed0001"].RegionPath); Aver.AreEqual("/US/East/CLE/A/I/wmed0001", mb.CatalogReg["/US.r/East/CLE.noc/a/i/wmed0001.h"].RegionPath); Aver.AreEqual("US", mb.CatalogReg.NavigateRegion("/US/East").ParentRegion.Name); Aver.AreEqual("US", mb.CatalogReg.NavigateRegion("/US/East.r").ParentRegion.Name); Aver.AreEqual("US", mb.CatalogReg.NavigateRegion("/US.r/East.r").ParentRegion.Name); Aver.AreEqual("East", mb.CatalogReg.NavigateNOC("/US/East/CLE").ParentRegion.Name); Aver.AreEqual("CLE", mb.CatalogReg.NavigateNOC("/US/East/CLE.noc").Name); Aver.AreEqual("A", mb.CatalogReg.NavigateZone("/US/East/CLE/A/I").ParentZone.Name); Aver.AreEqual("A", mb.CatalogReg.NavigateZone("/US/East/CLE/A.z/I").ParentZone.Name); Aver.AreEqual("A", mb.CatalogReg.NavigateZone("/US/East/CLE/A/I.z").ParentZone.Name); Aver.AreEqual("CLE", mb.CatalogReg.NavigateHost("/US/East/CLE/A/I/wmed0001").ParentZone.NOC.Name); Aver.AreEqual("CLE", mb.CatalogReg.NavigateHost("/US/East/CLE.noc/A.z/I.z/wmed0001.h").ParentZone.NOC.Name); Aver.AreEqual("CLE", mb.CatalogReg.NavigateHost("/US.r/East/CLE.noc/A/I.z/wmed0001.h").ParentZone.NOC.Name); var host = mb.CatalogReg.NavigateHost("/US.r/East/CLE.noc/A/I.z/wmed0001.h"); var list = host.ParentSectionsOnPath.ToList(); Aver.AreEqual(5, list.Count); Aver.AreEqual("US", list[0].Name); Aver.AreEqual("East", list[1].Name); Aver.AreEqual("CLE", list[2].Name); Aver.AreEqual("A", list[3].Name); Aver.AreEqual("I", list[4].Name); Aver.AreEqual(0, mb.CatalogReg.CountMatchingPathSegments("US/East/CLE/A/I", "Africa/Cairo")); Aver.AreEqual(2, mb.CatalogReg.CountMatchingPathSegments("US/East/CLE/A/I", "US/East/JFK")); Aver.AreEqual(4, mb.CatalogReg.CountMatchingPathSegments("US/East/CLE/A/I/wmed0001", "US/East/CLE/A/II/wmed0005")); Aver.AreEqual(0.5d, mb.CatalogReg.GetMatchingPathSegmentRatio("/US/East/CLE/A", "/US/East/JFK/A")); Aver.AreEqual(0d, mb.CatalogReg.GetMatchingPathSegmentRatio("Us", "Europe")); Aver.AreEqual(1d, mb.CatalogReg.GetMatchingPathSegmentRatio("EUROPE", "Europe.r")); }); } }