コード例 #1
0
        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);
        }
コード例 #2
0
 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())
     });
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        public void Execute()
        {
            VaultInventory inventory = VaultInventoryParser.Parse(_vaultInventoryFile);

            ConsoleView.Show(inventory);
        }