public void TestManifestLoadingFromByteStream() { string sequenceToCheck = "<provider name=\"TestEventSource\" guid=\"{0d468d81-a713-4c16-a8a3-a3d0d3535eae}\""; string workDirectory = Directory.GetCurrentDirectory(); ManifestCache manifestCache = new ManifestCache(workDirectory); manifestCache.LoadManifest(manifestInBytes); string manifestFilePath = Path.Combine(workDirectory, "WFDynMan", "0d468d81-a713-4c16-a8a3-a3d0d3535eae.man"); // Verify if manifest was generated Assert.IsTrue(File.Exists(manifestFilePath), "Dynamic manifest was not created at " + manifestFilePath); // Verify the sanity of dynamic manifest Assert.IsTrue(File.ReadLines(manifestFilePath).Any(line => line.Contains(sequenceToCheck)), "Dynamic manifest is malformed, check the contents of " + manifestFilePath); }
/// <summary> /// <remarks>Adapted from DCA</remarks> /// </summary> private static void LoadManifestCache() { try { string manifestFileDirectory = FabricEnvironment.GetCodePath(); // Get the Windows Fabric manifest file string manifestFile = Path.Combine( manifestFileDirectory, WindowsFabricManifestFileName); // Load the manifest manifestCache = new ManifestCache(Path.Combine(GetLogRoot(), WorkFolder)); manifestCache.LoadManifest(manifestFile); } catch (Exception e) { Console.WriteLine(StringResources.EventStoreError_EventManifestLoadFailure, e.Message); } }
public ManifestCache LoadManifests(string manifestPath, string cacheLocation, Version version) { string versionString = $"{version.Major}.{version.Minor}.{version.Build}.{version.Revision}"; if (ManifestCache == null) { ManifestCache = new ManifestCache(cacheLocation); } ManifestLoader manifest = new ManifestLoader(); if (Directory.Exists(manifestPath) && Directory.Exists(cacheLocation)) { List <string> manifestFiles = Directory.GetFiles(manifestPath, $"*{Constants.EtwManifestExtension}").ToList(); Log.Info("manifest files:", manifestFiles); if (version != new Version()) { manifestFiles = manifestFiles.Where(x => Regex.IsMatch(x, Regex.Escape(versionString))).ToList(); } else { Log.Info("getting latest version"); string versionPattern = @"_(\d+?\.\d+?\.\d+?\.\d+?)(?:_|\.)"; Version maxVersion = new Version(); List <string> versionedManifestFiles = manifestFiles.Where(x => Regex.IsMatch(x, versionPattern)).ToList(); List <string> unVersionedManifestFiles = manifestFiles.Where(x => !Regex.IsMatch(x, versionPattern)).ToList(); foreach (string file in versionedManifestFiles) { Version fileVersion = new Version(Regex.Match(file, versionPattern).Groups[1].Value); if (fileVersion > maxVersion) { Log.Info($"setting maxVersion:{maxVersion} -> {fileVersion}"); maxVersion = fileVersion; } } versionedManifestFiles = manifestFiles.Where(x => Regex.IsMatch(x, $@"_{maxVersion.Major}\.{maxVersion.Minor}\.{maxVersion.Build}\.{maxVersion.Revision}(?:_|\.)")).ToList(); unVersionedManifestFiles.AddRange(versionedManifestFiles); manifestFiles = unVersionedManifestFiles; } Log.Info("filtered manifest files:", ConsoleColor.Cyan, null, manifestFiles); foreach (string manifestFile in manifestFiles) { ManifestDefinitionDescription description = manifest.LoadManifest(manifestFile); List <ProviderDefinitionDescription> manifestProviderList = description.Providers.ToList(); if (!ManifestCache.ProviderDefinitions.Keys.Any(x => manifestProviderList.Any(y => y.Guid == x))) { ManifestCache.LoadManifest(manifestFile); } else { Log.Warning($"manifest already loaded:{manifestFile}"); } } } else { Log.Error($"manifest path does not exist:{manifestPath} or cachelocation does not exist:{cacheLocation}"); } return(ManifestCache); }
public static void AzureTableUploaderTestSetup(object testContext) { Verify.IsTrue(EntityDeletionAgeMinutes > 0); string assemblyLocation = Assembly.GetExecutingAssembly().Location; string manifestDir = Path.GetDirectoryName(assemblyLocation); // Prepare the manifest cache manifestCache = new ManifestCache(manifestDir); string manifestFullPath = Path.Combine(manifestDir, ManifestFileName); manifestCache.LoadManifest(manifestFullPath); // Create the table name prefix TableNamePrefix = String.Concat("CIT", Guid.NewGuid().ToString("N")); // Create the test data directory const string testDataDirectoryName = "AzureTableUploader.Test.Data"; testDataDirectory = Path.Combine(Directory.GetCurrentDirectory(), testDataDirectoryName); Directory.CreateDirectory(testDataDirectory); var accountKey = GetTestStorageAccountKey(); var escapedAccountKey = accountKey.Replace("=", @"\="); // Create the config file for the test string configFileFullPath = Path.Combine( testDataDirectory, configFileName); string configFileContentsFormatted = String.Format( CultureInfo.InvariantCulture, configFileContents, accountName, escapedAccountKey, TableNamePrefix, EntityDeletionAgeMinutes, ManifestFileName); byte[] configFileBytes = Encoding.ASCII.GetBytes(configFileContentsFormatted); File.WriteAllBytes(configFileFullPath, configFileBytes); Environment.SetEnvironmentVariable("FabricConfigFileName", configFileFullPath); // Initialize config store Utility.InitializeConfigStore((IConfigStoreUpdateHandler)null); Utility.InitializeTracing(); Utility.TraceSource = new FabricEvents.ExtensionsEvents(FabricEvents.Tasks.FabricDCA); HealthClient.Disabled = true; Utility.TraceSource.WriteInfo( TraceType, "Table name prefix: {0}", TableNamePrefix); // Create the table client StorageCredentials credentials = new StorageCredentials(accountName, accountKey); CloudStorageAccount storageAccount = new CloudStorageAccount(credentials, true); tableClient = storageAccount.CreateCloudTableClient(); }