Example #1
0
        private static void ExecuteRestore(DatabaseRestoreTargetConfigurationElement target)
        {
            try
            {
                RestoreTask task = new RestoreTask(target);
                task.DecompressComplete += new EventHandler <RestoreDatabaseTargetEventArgs>(RestoreDecompressComplete);
                task.DecompressStart    += new EventHandler <RestoreDatabaseTargetEventArgs>(RestoreDecompressStart);
                task.RestoreComplete    += new EventHandler <RestoreDatabaseTargetEventArgs>(RestoreComplete);
                task.RestoreStart       += new EventHandler <RestoreDatabaseTargetEventArgs>(RestoreStart);
                task.TransferComplete   += new EventHandler <RestoreDatabaseTargetEventArgs>(RestoreTransferComplete);
                task.TransferProgress   += new EventHandler <RestoreDatabaseTargetEventArgs>(RestoreTransferProgress);
                task.TransferStart      += new EventHandler <RestoreDatabaseTargetEventArgs>(RestoreTransferStart);

                var result = task.Execute();

                if (!result.Success)
                {
                    WriteError(result.Exception);
                }
            }
            catch (Exception ex)
            {
                WriteError(ex);
            }
        }
Example #2
0
        public static void Initialize(TestContext context)
        {
            lock (locker)
            {
                var q = (from DatabaseTargetConfigurationElement be in SThreeQLConfiguration.Section.BackupTargets
                         join DatabaseRestoreTargetConfigurationElement re in SThreeQLConfiguration.Section.RestoreTargets on be.CatalogName equals re.CatalogName
                         select new
                {
                    BackupConfig = be,
                    RestoreConfig = re
                }).First();

                restoreConfig = q.RestoreConfig;
                new BackupTask(q.BackupConfig).Execute();
            }
        }
Example #3
0
        private void ExecuteSchedule(object schd)
        {
            ScheduleConfigurationElement schedule = (ScheduleConfigurationElement)schd;

            this.Fire(this.ScheduleStart, schedule, null, null);

            foreach (ScheduleTargetConfigurationElement target in schedule.BackupTargets)
            {
                DatabaseTargetConfigurationElement config = null;

                try
                {
                    config = SThreeQLConfiguration.Section.BackupTargets[target.Name];

                    BackupTask task = new BackupTask(config);
                    task.BackupComplete   += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupComplete);
                    task.BackupStart      += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupStart);
                    task.CompressComplete += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupCompressComplete);
                    task.CompressStart    += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupCompressStart);
                    task.TransferComplete += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupTransferComplete);
                    task.TransferProgress += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupTransferProgress);
                    task.TransferStart    += new EventHandler <DatabaseTargetEventArgs>(this.OnTransferStart);

                    task.Execute();
                }
                catch (Exception ex)
                {
                    this.Fire(this.ScheduleError, schedule, config, ex);
                }
            }

            foreach (ScheduleTargetConfigurationElement target in schedule.RestoreTargets)
            {
                DatabaseRestoreTargetConfigurationElement config = null;

                try
                {
                    config = SThreeQLConfiguration.Section.RestoreTargets[target.Name];

                    RestoreTask task = new RestoreTask(config);
                    task.DecompressComplete += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreDecompressComplete);
                    task.DecompressStart    += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreDecompressStart);
                    task.RestoreComplete    += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreComplete);
                    task.RestoreStart       += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreStart);
                    task.TransferComplete   += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreTransferComplete);
                    task.TransferProgress   += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreTransferProgress);
                    task.TransferStart      += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreTransferStart);

                    task.Execute();
                }
                catch (Exception ex)
                {
                    this.Fire(this.ScheduleError, schedule, config, ex);
                }
            }

            this.Fire(this.ScheduleComplete, schedule, null, null);

            lock (this)
            {
                this.inProgress.Remove(schedule.Name);
                this.pending.Add(schedule.Name, GetNextExecuteDate(schedule));
            }
        }
Example #4
0
 /// <summary>
 /// Initializes a new instance of the RestoreTask class.
 /// </summary>
 /// <param name="target">The restore target to execute.</param>
 public RestoreTask(DatabaseRestoreTargetConfigurationElement target)
     : base(SThreeQLConfiguration.Section.AwsTargets[target.AwsBucketName])
 {
     this.Target = target;
 }