Skip to content

Commit 7bd93c0

Browse files
committed
Merge pull request AzureRT#200 from MabOneSdk/dev1-sudreddy
Minor fixes in policy error messages, added execution block
2 parents 208bac0 + 517161e commit 7bd93c0

File tree

13 files changed

+481
-287
lines changed

13 files changed

+481
-287
lines changed

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

Lines changed: 77 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
using Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ProviderModel;
2323
using Microsoft.Azure.Management.RecoveryServices.Backup.Models;
2424
using Microsoft.Azure.Commands.RecoveryServices.Backup.Helpers;
25+
using Microsoft.Azure.Commands.RecoveryServices.Backup.Properties;
2526

2627
namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
2728
{
@@ -32,7 +33,7 @@ namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
3233
public class GetAzureRmRecoveryServicesProtectionPolicy : RecoveryServicesBackupCmdletBase
3334
{
3435
protected const string PolicyNameParamSet = "PolicyNameParamSet";
35-
protected const string WorkloadParamSet = "WorkloadParamSet";
36+
protected const string WorkloadParamSet = "WorkloadParamSet";
3637
protected const string NoParamSet = "NoParamSet";
3738
protected const string WorkloadBackupMangementTypeParamSet = "WorkloadBackupManagementTypeParamSet";
3839

@@ -51,42 +52,89 @@ public class GetAzureRmRecoveryServicesProtectionPolicy : RecoveryServicesBackup
5152

5253
public override void ExecuteCmdlet()
5354
{
54-
base.ExecuteCmdlet();
55+
ExecutionBlock(() =>
56+
{
57+
base.ExecuteCmdlet();
5558

56-
string rgName = ""; // TBD
57-
string resourceName = ""; // TBD
58-
List<AzureRmRecoveryServicesPolicyBase> respList = new List<AzureRmRecoveryServicesPolicyBase>();
59+
List<AzureRmRecoveryServicesPolicyBase> policyList = new List<AzureRmRecoveryServicesPolicyBase>();
5960

60-
switch(this.ParameterSetName)
61-
{
62-
case PolicyNameParamSet:
63-
// validate policyName
64-
PolicyCmdletHelpers.ValidateProtectionPolicyName(Name);
61+
if (this.ParameterSetName == PolicyNameParamSet)
62+
{
63+
// validate policyName
64+
PolicyCmdletHelpers.ValidateProtectionPolicyName(Name);
6565

66-
// query service
67-
ProtectionPolicyResponse policy = PolicyCmdletHelpers.GetProtectionPolicyByName(
68-
Name,
69-
HydraAdapter,
70-
rgName,
71-
resourceName);
72-
respList.Add(ConversionHelpers.GetPolicyModel(policy.Item));
73-
break;
66+
// query service
67+
ProtectionPolicyResponse policy = PolicyCmdletHelpers.GetProtectionPolicyByName(
68+
Name,
69+
HydraAdapter);
70+
if (policy == null)
71+
{
72+
throw new ArgumentException(string.Format(Resources.PolicyNotFound, Name));
73+
}
74+
policyList.Add(ConversionHelpers.GetPolicyModel(policy.Item));
75+
}
76+
else
77+
{
78+
string hydraProviderType = null;
79+
string hydraDataSourceType = null;
7480

75-
// below cases TBD
76-
case WorkloadParamSet:
77-
break;
81+
switch (this.ParameterSetName)
82+
{
83+
case WorkloadParamSet:
84+
if (WorkloadType == Models.WorkloadType.AzureVM)
85+
{
86+
hydraProviderType = HydraHelpers.GetHydraProviderType(WorkloadType);
87+
}
88+
break;
7889

79-
case WorkloadBackupMangementTypeParamSet:
80-
break;
90+
case WorkloadBackupMangementTypeParamSet:
91+
if (WorkloadType == Models.WorkloadType.AzureVM)
92+
{
93+
if (BackupManagementType != Models.BackupManagementType.AzureVM)
94+
{
95+
throw new ArgumentException(Resources.AzureVMUnsupportedBackupManagementTypeException);
96+
}
97+
hydraProviderType = HydraHelpers.GetHydraProviderType(WorkloadType);
98+
}
99+
else
100+
{
101+
throw new ArgumentException(string.Format(
102+
Resources.UnsupportedWorkloadBackupManagementTypeException,
103+
WorkloadType.ToString(),
104+
BackupManagementType.ToString()));
105+
}
106+
break;
81107

82-
case NoParamSet:
83-
break;
108+
case NoParamSet:
109+
// query params should be null by default
110+
break;
84111

85-
default:
86-
break;
87-
}
112+
default:
113+
break;
114+
}
88115

89-
WriteObject(respList);
116+
ProtectionPolicyQueryParameters queryParams = new ProtectionPolicyQueryParameters()
117+
{
118+
DataSourceType = hydraDataSourceType,
119+
ProviderType = hydraProviderType
120+
};
121+
ProtectionPolicyListResponse respList = HydraAdapter.ListProtectionPolicy(queryParams);
122+
if (respList != null && respList.ItemList != null &&
123+
respList.ItemList.Value != null && respList.ItemList.Value.Count != 0)
124+
{
125+
foreach (ProtectionPolicyResource policy in respList.ItemList.Value)
126+
{
127+
AzureRmRecoveryServicesPolicyBase psModel = ConversionHelpers.GetPolicyModel(policy);
128+
if (psModel != null)
129+
{
130+
policyList.Add(ConversionHelpers.GetPolicyModel(policy));
131+
}
132+
}
133+
}
134+
}
135+
136+
WriteObject(policyList);
137+
});
90138
}
91139
}
92140
}

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

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
using Microsoft.Azure.Management.RecoveryServices.Backup.Models;
2323
using Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models;
2424
using Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ProviderModel;
25+
using Microsoft.Azure.Commands.RecoveryServices.Backup.Properties;
2526

2627
namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
2728
{
@@ -53,39 +54,38 @@ public class NewAzureRmRecoveryServicesProtectionPolicy : RecoveryServicesBackup
5354

5455
public override void ExecuteCmdlet()
5556
{
56-
base.ExecuteCmdlet();
57+
ExecutionBlock(() =>
58+
{
59+
base.ExecuteCmdlet();
5760

58-
// validate policy name
59-
PolicyCmdletHelpers.ValidateProtectionPolicyName(Name);
61+
// validate policy name
62+
PolicyCmdletHelpers.ValidateProtectionPolicyName(Name);
6063

61-
// Validate if policy already exists
62-
string rgName = ""; // TBD
63-
string resourceName = ""; // TBD
64-
if(PolicyCmdletHelpers.GetProtectionPolicyByName(Name, HydraAdapter, rgName, resourceName) != null)
65-
{
66-
throw new ArgumentException("Policy already exists with this name:" + Name);
67-
}
64+
// Validate if policy already exists
65+
if (PolicyCmdletHelpers.GetProtectionPolicyByName(Name, HydraAdapter) != null)
66+
{
67+
throw new ArgumentException(string.Format(Resources.PolicyAlreadyExist, Name));
68+
}
6869

69-
PsBackupProviderManager providerManager = new PsBackupProviderManager(new Dictionary<System.Enum, object>()
70-
{
71-
{PolicyParams.PolicyName, Name},
72-
{PolicyParams.WorkloadType, WorkloadType},
73-
{PolicyParams.BackupManagementType, BackupManagementType},
74-
{PolicyParams.RetentionPolicy, RetentionPolicy},
75-
{PolicyParams.SchedulePolicy, SchedulePolicy},
76-
}, HydraAdapter);
70+
PsBackupProviderManager providerManager = new PsBackupProviderManager(new Dictionary<System.Enum, object>()
71+
{
72+
{PolicyParams.PolicyName, Name},
73+
{PolicyParams.WorkloadType, WorkloadType},
74+
{PolicyParams.BackupManagementType, BackupManagementType},
75+
{PolicyParams.RetentionPolicy, RetentionPolicy},
76+
{PolicyParams.SchedulePolicy, SchedulePolicy},
77+
}, HydraAdapter);
7778

78-
IPsBackupProvider psBackupProvider = providerManager.GetProviderInstance(WorkloadType, BackupManagementType);
79-
psBackupProvider.CreatePolicy();
79+
IPsBackupProvider psBackupProvider = providerManager.GetProviderInstance(WorkloadType, BackupManagementType);
80+
psBackupProvider.CreatePolicy();
8081

81-
// now get the created policy and return
82-
ProtectionPolicyResponse policy = PolicyCmdletHelpers.GetProtectionPolicyByName(
83-
Name,
84-
HydraAdapter,
85-
rgName,
86-
resourceName);
87-
// now convert hydraPolicy to PSObject
88-
WriteObject(ConversionHelpers.GetPolicyModel(policy.Item));
82+
// now get the created policy and return
83+
ProtectionPolicyResponse policy = PolicyCmdletHelpers.GetProtectionPolicyByName(
84+
Name,
85+
HydraAdapter);
86+
// now convert hydraPolicy to PSObject
87+
WriteObject(ConversionHelpers.GetPolicyModel(policy.Item));
88+
});
8989
}
9090
}
9191
}

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

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
using Microsoft.Azure.Management.RecoveryServices.Backup.Models;
2424
using Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models;
2525
using Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ProviderModel;
26+
using Microsoft.Azure.Commands.RecoveryServices.Backup.Properties;
2627

2728
namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
2829
{
@@ -35,31 +36,23 @@ public static void ValidateProtectionPolicyName(string policyName)
3536
if (policyName.Length < PolicyConstants.MinPolicyNameLength ||
3637
policyName.Length > PolicyConstants.MaxPolicyNameLength)
3738
{
38-
throw new ArgumentException(string.Format(
39-
"PolicyName length exception - should be within {0} and {1}",
40-
PolicyConstants.MinPolicyNameLength,
41-
PolicyConstants.MaxPolicyNameLength));
39+
throw new ArgumentException(Resources.ProtectionPolicyNameLengthException);
4240
}
4341

4442
if (!rgx.IsMatch(policyName))
4543
{
46-
var exception = new ArgumentException(
47-
"The protection policy name should contain alphanumeric characters " +
48-
"and cannot start with a number");
49-
throw exception;
44+
throw new ArgumentException(Resources.ProtectionPolicyNameException);
5045
}
5146
}
5247

5348
public static ProtectionPolicyResponse GetProtectionPolicyByName(string policyName,
54-
HydraAdapter.HydraAdapter hydraAdapter,
55-
string resourceGroupName,
56-
string resourceName)
49+
HydraAdapter.HydraAdapter hydraAdapter)
5750
{
5851
ProtectionPolicyResponse response = null;
5952

6053
try
6154
{
62-
response = hydraAdapter.GetProtectionPolicy(resourceGroupName, resourceName, policyName);
55+
response = hydraAdapter.GetProtectionPolicy(policyName);
6356
}
6457
catch
6558
{

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

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
using Microsoft.Azure.Commands.RecoveryServices.Backup.Helpers;
2323
using Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models;
2424
using Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ProviderModel;
25+
using Microsoft.Azure.Commands.RecoveryServices.Backup.Properties;
2526

2627
namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
2728
{
@@ -45,32 +46,33 @@ public class SetAzureRmRecoveryServicesProtectionPolicy : RecoveryServicesBackup
4546

4647
public override void ExecuteCmdlet()
4748
{
48-
base.ExecuteCmdlet();
49+
ExecutionBlock(() =>
50+
{
51+
base.ExecuteCmdlet();
4952

50-
// Validate policy name
51-
PolicyCmdletHelpers.ValidateProtectionPolicyName(Policy.Name);
53+
// Validate policy name
54+
PolicyCmdletHelpers.ValidateProtectionPolicyName(Policy.Name);
5255

53-
// Validate if policy already exists
54-
string rgName = ""; // TBD
55-
string resourceName = ""; // TBD
56-
ProtectionPolicyResponse servicePolicy = PolicyCmdletHelpers.GetProtectionPolicyByName(
57-
Policy.Name, HydraAdapter, rgName, resourceName);
58-
if (servicePolicy == null)
59-
{
60-
throw new ArgumentException("Policy doesn't exist with this name:" + Policy.Name);
61-
}
56+
// Validate if policy already exists
57+
ProtectionPolicyResponse servicePolicy = PolicyCmdletHelpers.GetProtectionPolicyByName(
58+
Policy.Name, HydraAdapter);
59+
if (servicePolicy == null)
60+
{
61+
throw new ArgumentException(string.Format(Resources.PolicyNotFound, Policy.Name));
62+
}
6263

63-
PsBackupProviderManager providerManager = new PsBackupProviderManager(new Dictionary<System.Enum, object>()
64-
{
65-
{PolicyParams.ProtectionPolicy, Policy},
66-
{PolicyParams.RetentionPolicy, RetentionPolicy},
67-
{PolicyParams.SchedulePolicy, SchedulePolicy},
68-
}, HydraAdapter);
64+
PsBackupProviderManager providerManager = new PsBackupProviderManager(new Dictionary<System.Enum, object>()
65+
{
66+
{PolicyParams.ProtectionPolicy, Policy},
67+
{PolicyParams.RetentionPolicy, RetentionPolicy},
68+
{PolicyParams.SchedulePolicy, SchedulePolicy},
69+
}, HydraAdapter);
6970

70-
IPsBackupProvider psBackupProvider = providerManager.GetProviderInstance(Policy.WorkloadType,
71-
Policy.BackupManagementType);
72-
// now convert hydraPolicy to PSObject
73-
WriteObject(psBackupProvider.ModifyPolicy());
71+
IPsBackupProvider psBackupProvider = providerManager.GetProviderInstance(Policy.WorkloadType,
72+
Policy.BackupManagementType);
73+
// now convert hydraPolicy to PSObject
74+
WriteObject(psBackupProvider.ModifyPolicy());
75+
});
7476
}
7577
}
7678
}

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,6 @@
8181
<Compile Include="CmdletWarningAndErrorMessages.cs" />
8282
<Compile Include="Constants.cs" />
8383
<Compile Include="Properties\AssemblyInfo.cs" />
84-
<Compile Include="Properties\Resources.Designer.cs">
85-
<AutoGen>True</AutoGen>
86-
<DesignTime>True</DesignTime>
87-
<DependentUpon>Resources.resx</DependentUpon>
88-
</Compile>
8984
<Compile Include="RecoveryServicesBackupVaultCmdletBase.cs" />
9085
<Compile Include="RecoveryServicesBackupCmdletBase.cs" />
9186
<Compile Include="CmdletParameterHelpMessages.cs" />
@@ -126,12 +121,6 @@
126121
<Name>Commands.RecoveryServices.Backup.Providers</Name>
127122
</ProjectReference>
128123
</ItemGroup>
129-
<ItemGroup>
130-
<EmbeddedResource Include="Properties\Resources.resx">
131-
<Generator>ResXFileCodeGenerator</Generator>
132-
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
133-
</EmbeddedResource>
134-
</ItemGroup>
135124
<ItemGroup>
136125
<None Include="AzureRM.RecoveryServices.Backup.psd1">
137126
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

0 commit comments

Comments
 (0)