Skip to content

Commit b7d5520

Browse files
committed
minor fixes in policy cmdlets
1 parent bf8afba commit b7d5520

File tree

5 files changed

+30
-21
lines changed

5 files changed

+30
-21
lines changed

src/ResourceManager/RecoveryServices.Backup/Cmdlets/Container/GetAzureRmBackupManagementServer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
2727
/// <summary>
2828
/// Get list of containers
2929
/// </summary>
30-
[Cmdlet(VerbsCommon.Get, "AzureRmRecoveryServicesContainer"), OutputType(typeof(List<AzureRmRecoveryServicesContainerBase>), typeof(AzureRmRecoveryServicesContainerBase))]
30+
[Cmdlet(VerbsCommon.Get, "AzureRmBackupManagementServer"), OutputType(typeof(List<AzureRmRecoveryServicesContainerBase>), typeof(AzureRmRecoveryServicesContainerBase))]
3131
public class GetAzureRmBackupManagementServer : RecoveryServicesBackupCmdletBase
3232
{
3333
[Parameter(Mandatory = true, HelpMessage = ParamHelpMsg.Container.Name)]

src/ResourceManager/RecoveryServices.Backup/Cmdlets/ProtectionPolicy/NewAzureRmRecoveryServicesPolicy.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ public override void ExecuteCmdlet()
7878
PsBackupProviderManager providerManager = new PsBackupProviderManager(new Dictionary<System.Enum, object>()
7979
{
8080
{PolicyParams.PolicyName, Name},
81-
{PolicyParams.WorkloadType, WorkloadType},
82-
{PolicyParams.BackupManagementType, BackupManagementType},
81+
{PolicyParams.WorkloadType, WorkloadType},
8382
{PolicyParams.RetentionPolicy, RetentionPolicy},
8483
{PolicyParams.SchedulePolicy, SchedulePolicy},
8584
}, HydraAdapter);

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Helpers/Validations/PolicyValidations.cs

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424
namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Helpers
2525
{
2626
public partial class PolicyHelpers
27-
{
27+
{
2828
public static void ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy(
2929
AzureRmRecoveryServicesLongTermRetentionPolicy ltrPolicy,
3030
AzureRmRecoveryServicesSimpleSchedulePolicy schPolicy)
3131
{
3232
// for daily schedule, daily retention policy is required
33-
if(schPolicy.ScheduleRunFrequency == ScheduleRunType.Daily &&
33+
if (schPolicy.ScheduleRunFrequency == ScheduleRunType.Daily &&
3434
ltrPolicy.DailySchedule == null)
3535
{
3636
throw new ArgumentException(Resources.DailyRetentionScheduleNullException);
@@ -45,24 +45,27 @@ public static void ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy(
4545
}
4646

4747
// validate daily retention schedule with schPolicy
48-
if(ltrPolicy.DailySchedule != null)
48+
if (ltrPolicy.DailySchedule != null)
4949
{
50-
ValidateRetentionAndBackupTimes(schPolicy.ScheduleRunTimes, ltrPolicy.DailySchedule.RetentionTimes);
50+
ValidateRetentionAndBackupTimes(schPolicy.ScheduleRunTimes, ltrPolicy.DailySchedule.RetentionTimes);
5151
}
5252

5353
// validate weekly retention schedule with schPolicy
5454
if (ltrPolicy.WeeklySchedule != null)
5555
{
5656
ValidateRetentionAndBackupTimes(schPolicy.ScheduleRunTimes, ltrPolicy.WeeklySchedule.RetentionTimes);
5757

58-
// count of daysOfWeek should match for weekly schedule
59-
if(ltrPolicy.WeeklySchedule.DaysOfTheWeek.Count != schPolicy.ScheduleRunDays.Count)
58+
if (schPolicy.ScheduleRunFrequency == ScheduleRunType.Weekly)
6059
{
61-
throw new ArgumentException(Resources.DaysofTheWeekInWeeklyRetentionException);
60+
// count of daysOfWeek should match for weekly schedule
61+
if (ltrPolicy.WeeklySchedule.DaysOfTheWeek.Count != schPolicy.ScheduleRunDays.Count)
62+
{
63+
throw new ArgumentException(Resources.DaysofTheWeekInWeeklyRetentionException);
64+
}
65+
66+
// validate days of week
67+
ValidateRetentionAndScheduleDaysOfWeek(schPolicy.ScheduleRunDays, ltrPolicy.WeeklySchedule.DaysOfTheWeek);
6268
}
63-
64-
// validate days of week
65-
ValidateRetentionAndScheduleDaysOfWeek(schPolicy.ScheduleRunDays, ltrPolicy.WeeklySchedule.DaysOfTheWeek);
6669
}
6770

6871
// validate monthly retention schedule with schPolicy
@@ -71,16 +74,17 @@ public static void ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy(
7174
ValidateRetentionAndBackupTimes(schPolicy.ScheduleRunTimes, ltrPolicy.MonthlySchedule.RetentionTimes);
7275

7376
// if backupSchedule is weekly, then user cannot choose 'Daily Retention format'
74-
if(schPolicy.ScheduleRunFrequency == ScheduleRunType.Weekly &&
77+
if (schPolicy.ScheduleRunFrequency == ScheduleRunType.Weekly &&
7578
ltrPolicy.MonthlySchedule.RetentionScheduleFormatType == Cmdlets.Models.RetentionScheduleFormat.Daily)
7679
{
7780
throw new ArgumentException(Resources.MonthlyYearlyInvalidDailyRetentionFormatTypeException);
7881
}
7982

8083
// for monthly and weeklyFormat, validate days of week
81-
if(ltrPolicy.MonthlySchedule.RetentionScheduleFormatType == Cmdlets.Models.RetentionScheduleFormat.Weekly)
84+
if (ltrPolicy.MonthlySchedule.RetentionScheduleFormatType == Cmdlets.Models.RetentionScheduleFormat.Weekly &&
85+
schPolicy.ScheduleRunFrequency == ScheduleRunType.Weekly)
8286
{
83-
ValidateRetentionAndScheduleDaysOfWeek(schPolicy.ScheduleRunDays,
87+
ValidateRetentionAndScheduleDaysOfWeek(schPolicy.ScheduleRunDays,
8488
ltrPolicy.MonthlySchedule.RetentionScheduleWeekly.DaysOfTheWeek);
8589
}
8690
}
@@ -98,7 +102,8 @@ public static void ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy(
98102
}
99103

100104
// for yearly and weeklyFormat, validate days of week
101-
if (ltrPolicy.YearlySchedule.RetentionScheduleFormatType == Cmdlets.Models.RetentionScheduleFormat.Weekly)
105+
if (ltrPolicy.YearlySchedule.RetentionScheduleFormatType == Cmdlets.Models.RetentionScheduleFormat.Weekly &&
106+
schPolicy.ScheduleRunFrequency == ScheduleRunType.Weekly)
102107
{
103108
ValidateRetentionAndScheduleDaysOfWeek(schPolicy.ScheduleRunDays,
104109
ltrPolicy.YearlySchedule.RetentionScheduleWeekly.DaysOfTheWeek);

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Providers/Commands.RecoveryServices.Backup.Providers.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@
8484
<Project>{b758fec1-35c1-4f93-a954-66dd33f6e0ec}</Project>
8585
<Name>Commands.RecoveryServices.Backup.HydraAdapter</Name>
8686
</ProjectReference>
87+
<ProjectReference Include="..\Commands.RecoveryServices.Backup.Logger\Commands.RecoveryServices.Backup.Logger.csproj">
88+
<Project>{5e675749-6139-464a-904c-59c0ffdfec82}</Project>
89+
<Name>Commands.RecoveryServices.Backup.Logger</Name>
90+
</ProjectReference>
8791
<ProjectReference Include="..\Commands.RecoveryServices.Backup.Models\Commands.RecoveryServices.Backup.Models.csproj">
8892
<Project>{30b92759-50b3-494e-b9f0-ec9a2ce9d57b}</Project>
8993
<Name>Commands.RecoveryServices.Backup.Models</Name>

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Providers/Providers/IaasVmPsBackupProvider.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,7 @@ public ProtectionPolicyResponse CreatePolicy()
193193
{
194194
string policyName = (string)ProviderData.ProviderParameters[PolicyParams.PolicyName];
195195
Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models.WorkloadType workloadType =
196-
(Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models.WorkloadType)ProviderData.ProviderParameters[PolicyParams.WorkloadType];
197-
BackupManagementType backupManagementType = (BackupManagementType)ProviderData.ProviderParameters[
198-
PolicyParams.BackupManagementType];
196+
(Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models.WorkloadType)ProviderData.ProviderParameters[PolicyParams.WorkloadType];
199197
AzureRmRecoveryServicesRetentionPolicyBase retentionPolicy = (AzureRmRecoveryServicesRetentionPolicyBase)
200198
ProviderData.ProviderParameters[PolicyParams.RetentionPolicy];
201199
AzureRmRecoveryServicesSchedulePolicyBase schedulePolicy = (AzureRmRecoveryServicesSchedulePolicyBase)
@@ -204,18 +202,21 @@ public ProtectionPolicyResponse CreatePolicy()
204202
// do validations
205203
ValidateAzureVMWorkloadType(workloadType);
206204
ValidateAzureVMSchedulePolicy(schedulePolicy);
205+
Logger.Instance.WriteDebug("Validation of Schedule policy is successful");
207206

208207
// update the retention times from backupSchedule to retentionPolicy after converting to UTC
209208
CopyScheduleTimeToRetentionTimes((AzureRmRecoveryServicesLongTermRetentionPolicy)retentionPolicy,
210209
(AzureRmRecoveryServicesSimpleSchedulePolicy)schedulePolicy);
211210

212211
// validate RetentionPolicy
213-
ValidateAzureVMRetentionPolicy(retentionPolicy);
212+
ValidateAzureVMRetentionPolicy(retentionPolicy);
213+
Logger.Instance.WriteDebug("Validation of Retention policy is successful");
214214

215215
// Now validate both RetentionPolicy and SchedulePolicy together
216216
PolicyHelpers.ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy(
217217
(AzureRmRecoveryServicesLongTermRetentionPolicy)retentionPolicy,
218218
(AzureRmRecoveryServicesSimpleSchedulePolicy)schedulePolicy);
219+
Logger.Instance.WriteDebug("Validation of Retention policy with Schedule policy is successful");
219220

220221
// construct Hydra policy request
221222
ProtectionPolicyRequest hydraRequest = new ProtectionPolicyRequest()

0 commit comments

Comments
 (0)