Example #1
0
 public async Task <IEnumerable <Instance> > Get()
 {
     using (DuplicatiContext db = new DuplicatiContext())
     {
         return(await db.Instances.OrderBy(i => i.Name).ToListAsync());
     }
 }
 public BackupReport GetBackup(int id, int backupId)
 {
     using (DuplicatiContext db = new DuplicatiContext())
     {
         return(db.BackupReports.FirstOrDefault(b => b.Id == backupId));
     }
 }
Example #3
0
        /// <summary>
        /// Success:
        /// message=Duplicati%20Backup%20report%20for%20test%0D%0A%0D%0ADeletedFiles%3A%200%0D%0ADeletedFolders%3A%200%0D%0AModifiedFiles%3A%200%0D%0AExaminedFiles%3A%206%0D%0AOpenedFiles%3A%200%0D%0AAddedFiles%3A%200%0D%0ASizeOfModifiedFiles%3A%200%0D%0ASizeOfAddedFiles%3A%200%0D%0ASizeOfExaminedFiles%3A%2013919%0D%0ASizeOfOpenedFiles%3A%200%0D%0ANotProcessedFiles%3A%200%0D%0AAddedFolders%3A%200%0D%0ATooLargeFiles%3A%200%0D%0AFilesWithError%3A%200%0D%0AModifiedFolders%3A%200%0D%0AModifiedSymlinks%3A%200%0D%0AAddedSymlinks%3A%200%0D%0ADeletedSymlinks%3A%200%0D%0APartialBackup%3A%20False%0D%0ADryrun%3A%20False%0D%0AMainOperation%3A%20Backup%0D%0AParsedResult%3A%20Success%0D%0AVerboseOutput%3A%20False%0D%0AVerboseErrors%3A%20False%0D%0AEndTime%3A%201%2F8%2F2018%2010%3A09%3A16%20PM%0D%0ABeginTime%3A%201%2F8%2F2018%2010%3A09%3A16%20PM%0D%0ADuration%3A%2000%3A00%3A00.2339903%0D%0AMessages%3A%20%5B%0D%0A%20%20%20%20No%20remote%20filesets%20were%20deleted%2C%0D%0A%20%20%20%20removing%20file%20listed%20as%20Temporary%3A%20duplicati-b01323d5f20f448ef98247929ca38a32f.dblock.zip.aes%2C%0D%0A%20%20%20%20removing%20file%20listed%20as%20Temporary%3A%20duplicati-if782675db40345d4a4da546c19c08ddd.dindex.zip.aes%0D%0A%5D%0D%0AWarnings%3A%20%5B%5D%0D%0AErrors%3A%20%5B%5D
        ///
        /// Error:
        /// message=Duplicati%20Backup%20report%20for%20test%0D%0A%0D%0AFailed%3A%20The%20AWS%20Access%20Key%20Id%20you%20provided%20does%20not%20exist%20in%20our%20records.%0D%0ADetails%3A%20Amazon.S3.AmazonS3Exception%3A%20The%20AWS%20Access%20Key%20Id%20you%20provided%20does%20not%20exist%20in%20our%20records.%20---%3E%20Amazon.Runtime.Internal.HttpErrorResponseException%3A%20The%20remote%20server%20returned%20an%20error%3A%20%28403%29%20Forbidden.%20---%3E%20System.Net.WebException%3A%20The%20remote%20server%20returned%20an%20error%3A%20%28403%29%20Forbidden.%0D%0A%20%20%20at%20System.Net.HttpWebRequest.GetResponse%28%29%0D%0A%20%20%20at%20Amazon.Runtime.Internal.HttpRequest.GetResponse%28%29%0D%0A%20%20%20---%20End%20of%20inner%20exception%20stack%20trace%20---%0D%0A%20%20%20at%20Amazon.Runtime.Internal.HttpRequest.GetResponse%28%29%0D%0A%20%20%20at%20Amazon.Runtime.Internal.HttpHandler%601.InvokeSync%28IExecutionContext%20executionContext%29%0D%0A%20%20%20at%20Amazon.Runtime.Internal.RedirectHandler.InvokeSync%28IExecutionContext%20executionContext%29%0D%0A%20%20%20at%20Amazon.Runtime.Internal.Unmarshaller.InvokeSync%28IExecutionContext%20executionContext%29%0D%0A%20%20%20at%20Amazon.S3.Internal.AmazonS3ResponseHandler.InvokeSync%28IExecutionContext%20executionContext%29%0D%0A%20%20%20at%20Amazon.Runtime.Internal.ErrorHandler.InvokeSync%28IExecutionContext%20executionContext%29%0D%0A%20%20%20---%20End%20of%20inner%20exception%20stack%20trace%20---%0D%0A%20%20%20at%20Duplicati.Library.Main.BackendManager.List%28%29%0D%0A%20%20%20at%20Duplicati.Library.Main.Operation.FilelistProcessor.RemoteListAnalysis%28BackendManager%20backend%2C%20Options%20options%2C%20LocalDatabase%20database%2C%20IBackendWriter%20log%2C%20String%20protectedfile%29%0D%0A%20%20%20at%20Duplicati.Library.Main.Operation.FilelistProcessor.VerifyRemoteList%28BackendManager%20backend%2C%20Options%20options%2C%20LocalDatabase%20database%2C%20IBackendWriter%20log%2C%20String%20protectedfile%29%0D%0A%20%20%20at%20Duplicati.Library.Main.Operation.BackupHandler.PreBackupVerify%28BackendManager%20backend%2C%20String%20protectedfile%29%0D%0A%20%20%20at%20Duplicati.Library.Main.Operation.BackupHandler.Run%28String%5B%5D%20sources%2C%20IFilter%20filter%29%0D%0A%20%20%20at%20Duplicati.Library.Main.Controller.%3C%3Ec__DisplayClass16_0.%3CBackup%3Eb__0%28BackupResults%20result%29%0D%0A%20%20%20at%20Duplicati.Library.Main.Controller.RunAction%5BT%5D%28T%20result%2C%20String%5B%5D%26%20paths%2C%20IFilter%26%20filter%2C%20Action%601%20method%29%0D%0A
        /// </summary>
        /// <returns></returns>
        public async Task Post(int id, [FromBody] DuplicatiReportRequest message)
        {
            BackupReport report = null;

            try
            {
                //save to disk
                using (DuplicatiContext db = new DuplicatiContext())
                {
                    var instance = db.Instances.FirstOrDefault(c => c.Id == id);
                    report            = ParseDuplicatiReportMessage(message.Message, instance);
                    report.InstanceId = id;
                    db.BackupReports.Add(report);
                    await db.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                if (report == null)
                {
                    report = new BackupReport();
                }
                File.WriteAllText(HttpContext.Current.Server.MapPath("/app_data/report_errors.txt"), JsonConvert.SerializeObject(ex) + JsonConvert.SerializeObject(report));
                throw ex;
            }
        }
Example #4
0
 public async Task Post(Instance instance)
 {
     using (DuplicatiContext db = new DuplicatiContext())
     {
         db.Instances.Add(instance);
         await db.SaveChangesAsync();
     }
 }
 public IEnumerable <Backup> Latest()
 {
     using (DuplicatiContext db = new DuplicatiContext())
     {
         return(db.Instances
                .OrderBy(i => i.Name)
                .ToList()
                .Select(GetLastestBackupInfo)
                .ToList()
                .OrderByDescending(b => b.ShouldBeFlagged));
     }
 }
Example #6
0
        public async Task Delete(int id)
        {
            using (DuplicatiContext db = new DuplicatiContext())
            {
                var instance = db.Instances.FirstOrDefault(i => i.Id == id);

                var reports = instance.BackupReports.ToList();

                foreach (var report in reports)
                {
                    db.BackupReports.Remove(report);
                }
                db.Instances.Remove(instance);
                await db.SaveChangesAsync();
            }
        }
        public BackupDetailed Get(int id)
        {
            using (DuplicatiContext db = new DuplicatiContext())
            {
                var instance = db.Instances.First(i => i.Id == id);

                var backup = new BackupDetailed
                {
                    InstanceId      = instance.Id,
                    InstanceName    = instance.Name,
                    Url             = instance.Url,
                    PreviousReports = instance.BackupReports.OrderByDescending(b => b.Id).Take(30).ToList(),
                };
                backup.LatestReport = backup.PreviousReports.FirstOrDefault();

                return(backup);
            }
        }