public void Execute() { VaultInventory vaultInventory = VaultInventoryParser.Parse(_vaultInventoryFile); NasFiles nasFiles = NasBackup.GetFiles(_nasPath); IEnumerable <GlacierFile> glacierFiles = vaultInventory.ArchiveList; IEnumerable <File> localFiles = nasFiles.Files; GlacierFile[] glacierExtraFiles = FileMatcher.GetGlacierExtraFiles(glacierFiles, localFiles) .ToArray(); int glacierFilesCount = vaultInventory.ArchiveList.Count(); int nasFilesCount = nasFiles.Files.Count(); int glacierExtraFilesCount = glacierExtraFiles.Count(); var result = new GlacierExtraResult(glacierFilesCount, nasFilesCount, glacierExtraFilesCount, glacierExtraFiles); ConsoleView.Show(result); }
public static void Show(VaultInventory inventory) { ShowInfo(new[] { "", string.Format(" Vault ARN: {0}", inventory.VaultArn), string.Format(" Inventory Date: {0}", inventory.InventoryDate), string.Format("Archive List Count: {0:n0}", inventory.ArchiveList.Count()) }); }
public void Execute() { VaultInventory vaultInventory = VaultInventoryParser.Parse(_vaultInventoryFile); NasFiles nasFiles = NasBackup.GetFiles(_nasPath); IEnumerable <GlacierFile> glacierFiles = vaultInventory.ArchiveList; IEnumerable <File> localFiles = nasFiles.Files; IEnumerable <GlacierFile> glacierExtraAgeFiles = FileMatcher.GetGlacierExtraFiles(glacierFiles, localFiles, _glacierOlderThan); var deleteFileResults = new List <GlacierDeleteFileResult>(); using (var mgr = new ArchiveTransferManager(RegionEndpoint.USWest2)) { foreach (GlacierFile g in glacierExtraAgeFiles) { string deleteFailure = null; bool isOldEnough = g.AgeDays > 90; if (isOldEnough) { try { mgr.DeleteArchive(vaultName: "backup-home", archiveId: g.ArchiveId); } catch (Exception ex) { deleteFailure = ex.Message; } } else { deleteFailure = string.Format("File is not old enough to be deleted. Age: [{0}]", g.AgeDays); } var deleteFileResult = new GlacierDeleteFileResult(g.NormalizedFilePath, deleteFailure, g.SizeBytes); deleteFileResults.Add(deleteFileResult); } } var result = new DeleteGlacierFilesResult(deleteFileResults); ConsoleView.Show(result); }
public static void DisplayVaultInventory() { string json = File.ReadAllText(s_filePath); var results = JsonConvert.DeserializeObject <dynamic>(json); /* "Predefined type 'Microsoft.CSharp.RuntimeBinder.Binder' is not defined or imported" * Console.WriteLine(results.VaultARN); * Console.WriteLine(results["VaultARN"]); */ // Seems to require .NET 4, which is not supported in VS2010 // "Predefined type 'Microsoft.CSharp.RuntimeBinder.Binder' is not defined or imported" // Newtonsoft.Json.Linq.JObject results = JsonConvert.DeserializeObject<dynamic>(json); VaultInventory vaultInventory = JsonConvert.DeserializeObject <VaultInventory>(json); int archiveCount = 0; WriteLogConsole("Vault Inventory:"); WriteLogConsole("VaultARN: " + vaultInventory.VaultARN); WriteLogConsole("InventoryDate: " + vaultInventory.InventoryDate); WriteLogConsole(""); WriteLogConsole("ArchiveList:"); WriteLogConsole(""); foreach (Archive archive in vaultInventory.ArchiveList) { WriteLogConsole("Name\t" + archive.ArchiveDescription); WriteLogConsole("ID\t" + archive.ArchiveId); WriteLogConsole("CreationDate\t'" + archive.CreationDate); WriteLogConsole("Size\t" + string.Format("{0:N2}", Int64.Parse(archive.Size) / 1024.0 / 1024.0 / 1024.0)); WriteLogConsole(""); ++archiveCount; } WriteLogConsole(string.Format("Archive count: {0}", archiveCount)); }
public void Execute() { VaultInventory inventory = VaultInventoryParser.Parse(_vaultInventoryFile); ConsoleView.Show(inventory); }