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); } }
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(); } }
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)); } }
/// <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; }