private static CSMWeeklyRetentionSchedule ConvertToCSMWeeklyRetentionObject(AzureBackupWeeklyRetentionPolicy retentionPolicy, IList<DateTime> RetentionTimes) { CSMWeeklyRetentionSchedule csmWeeklyRetention = new CSMWeeklyRetentionSchedule(); csmWeeklyRetention.DaysOfTheWeek = retentionPolicy.DaysOfWeek; csmWeeklyRetention.CSMRetentionDuration = new CSMRetentionDuration(); csmWeeklyRetention.CSMRetentionDuration.Count = retentionPolicy.Retention; csmWeeklyRetention.CSMRetentionDuration.DurationType = RetentionDurationType.Weeks; csmWeeklyRetention.RetentionTimes = RetentionTimes; return csmWeeklyRetention; }
private static void ValidateWeeklyRetention(AzureBackupWeeklyRetentionPolicy weeklyRetention) { if (weeklyRetention.Retention < MinRetention || weeklyRetention.Retention > MaxRetentionInWeeks) { var exception = new ArgumentException(string.Format(Resources.WeeklyRetentionPolicyValueException, MinRetention, MaxRetentionInWeeks)); throw exception; } if(weeklyRetention.DaysOfWeek == null || weeklyRetention.DaysOfWeek.Count == 0) { var exception = new ArgumentException(Resources.WeeklyRetentionPolicyDaysOfWeekException); throw exception; } }
private static AzureBackupWeeklyRetentionPolicy ConvertToPowershellWeeklyRetentionObject(CSMWeeklyRetentionSchedule WeeklySchedule) { if (WeeklySchedule == null) return null; AzureBackupWeeklyRetentionPolicy weeklyRetention = new AzureBackupWeeklyRetentionPolicy("Weekly", WeeklySchedule.CSMRetentionDuration.Count, WeeklySchedule.DaysOfTheWeek); weeklyRetention.RetentionTimes = WeeklySchedule.RetentionTimes; return weeklyRetention; }
public override void ExecuteCmdlet() { ExecutionBlock(() => { base.ExecuteCmdlet(); if (DailyRetention != false) { AzureRMBackupRetentionPolicy retentionPolicy = new AzureBackupDailyRetentionPolicy(RetentionType.Daily.ToString(), Retention); ProtectionPolicyHelpers.ValidateRetentionPolicy(new List<AzureRMBackupRetentionPolicy> { retentionPolicy }); WriteObject(retentionPolicy); } if (WeeklyRetention != false) { List<DayOfWeek> daysofWeekList = ConvertDaysOfWeek(DaysOfWeek); AzureRMBackupRetentionPolicy retentionPolicy = new AzureBackupWeeklyRetentionPolicy(RetentionType.Weekly.ToString(), Retention, daysofWeekList); ProtectionPolicyHelpers.ValidateRetentionPolicy(new List<AzureRMBackupRetentionPolicy> { retentionPolicy }); WriteObject(retentionPolicy); } if (MonthlyRetentionInDailyFormat != false) { AzureRMBackupRetentionPolicy retentionPolicy = new AzureBackupMonthlyRetentionPolicy(RetentionType.Monthly.ToString(), Retention, RetentionFormat.Daily, DaysOfMonth, null, null); ProtectionPolicyHelpers.ValidateRetentionPolicy(new List<AzureRMBackupRetentionPolicy> { retentionPolicy }); WriteObject(retentionPolicy); } if (MonthlyRetentionInWeeklyFormat != false) { List<DayOfWeek> daysofWeekList = ConvertDaysOfWeek(DaysOfWeek); List<WeekNumber> weekNumbers = ConvertWeekNumbers(WeekNumber); AzureRMBackupRetentionPolicy retentionPolicy = new AzureBackupMonthlyRetentionPolicy(RetentionType.Monthly.ToString(), Retention, RetentionFormat.Weekly, DaysOfMonth, weekNumbers, daysofWeekList); ProtectionPolicyHelpers.ValidateRetentionPolicy(new List<AzureRMBackupRetentionPolicy> { retentionPolicy }); WriteObject(retentionPolicy); } if (YearlyRetentionInDailyFormat != false) { List<Month> monthsOfYear = ConvertMonthsOfYear(MonthsOfYear); AzureRMBackupRetentionPolicy retentionPolicy = new AzureBackupYearlyRetentionPolicy(RetentionType.Yearly.ToString(), Retention, monthsOfYear, RetentionFormat.Daily, DaysOfMonth, null, null); ProtectionPolicyHelpers.ValidateRetentionPolicy(new List<AzureRMBackupRetentionPolicy> { retentionPolicy }); WriteObject(retentionPolicy); } if (YearlyRetentionInWeeklyFormat != false) { List<DayOfWeek> daysofWeekList = ConvertDaysOfWeek(DaysOfWeek); List<WeekNumber> weekNumbers = ConvertWeekNumbers(WeekNumber); List<Month> monthsOfYear = ConvertMonthsOfYear(MonthsOfYear); AzureRMBackupRetentionPolicy retentionPolicy = new AzureBackupYearlyRetentionPolicy(RetentionType.Yearly.ToString(), Retention, monthsOfYear, RetentionFormat.Weekly, DaysOfMonth, weekNumbers, daysofWeekList); ProtectionPolicyHelpers.ValidateRetentionPolicy(new List<AzureRMBackupRetentionPolicy> { retentionPolicy }); WriteObject(retentionPolicy); } }); }