Skip to content

Commit deb54e3

Browse files
committed
working on cmdlets
1 parent 27505b6 commit deb54e3

15 files changed

+509
-327
lines changed

src/Resources/ResourceManager/Implementation/DeploymentStacks/GetAzManagementGroupDeploymentStack.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class GetAzManagementGroupDeploymentStack : DeploymentStacksCmdletBase
3232
internal const string ListByManagementGroupIdParameterSetName = "ListByManagmentGroupId";
3333

3434
[Alias("StackName")]
35-
[Parameter(Position = 1, Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = GetByManagementGroupIdAndStackNameParameterSetName,
35+
[Parameter(Position = 0, Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = GetByManagementGroupIdAndStackNameParameterSetName,
3636
HelpMessage = "The name of the DeploymentStack to get")]
3737
[ValidateNotNullOrEmpty]
3838
public string Name { get; set; }
@@ -45,7 +45,7 @@ public class GetAzManagementGroupDeploymentStack : DeploymentStacksCmdletBase
4545

4646
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = ListByManagementGroupIdParameterSetName,
4747
HelpMessage = "The id of the ManagementGroup where the DeploymentStack is deployed")]
48-
[Parameter(Position = 0, Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = GetByManagementGroupIdAndStackNameParameterSetName,
48+
[Parameter(Position = 1, Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = GetByManagementGroupIdAndStackNameParameterSetName,
4949
HelpMessage = "The id of the ManagementGroup where the DeploymentStack is deployed")]
5050
[ValidateNotNullOrEmpty]
5151
public string ManagementGroupId { get; set; }

src/Resources/ResourceManager/Implementation/DeploymentStacks/GetAzResourceGroupDeploymentStack.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ public class GetAzResourceGroupDeploymentStack : DeploymentStacksCmdletBase
4141

4242
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = ListByResourceGroupNameParameterSetName,
4343
HelpMessage = "The id of the ResourceGroup where the DeploymentStack is deployed")]
44-
[Parameter(Position = 0, Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = GetByDeploymentStackNameParameterSetName,
44+
[Parameter(Position = 1, Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = GetByDeploymentStackNameParameterSetName,
4545
HelpMessage = "The id of the ResourceGroup where the DeploymentStack is deployed")]
4646
[ResourceGroupCompleter]
4747
[ValidateNotNullOrEmpty]
4848
public string ResourceGroupName { get; set; }
4949

5050
[Alias("StackName")]
51-
[Parameter(Position = 1, Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = GetByDeploymentStackNameParameterSetName,
51+
[Parameter(Position = 0, Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = GetByDeploymentStackNameParameterSetName,
5252
HelpMessage = "The name of the DeploymentStack to get")]
5353
[ValidateNotNullOrEmpty]
5454
public string Name { get; set; }

src/Resources/ResourceManager/Implementation/DeploymentStacks/NewAzManagementGroupDeploymentStack.cs

Lines changed: 62 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -50,60 +50,60 @@ public class NewAzManagementGroupDeploymentStack : DeploymentStacksCmdletBase
5050
internal const string ParameterObjectTemplateSpecParameterSetName = "ByTemplateSpecWithParameterObject";
5151

5252
[Alias("StackName")]
53-
[Parameter(Position = 0, Mandatory = true, ValueFromPipelineByPropertyName = true,
54-
HelpMessage = "The name of the deploymentStack to create")]
53+
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true,
54+
HelpMessage = "The name of the deploymentStack to create.")]
5555
[ValidateNotNullOrEmpty]
5656
public string Name { get; set; }
5757

58-
[Parameter(Position = 1, Mandatory = true, ValueFromPipelineByPropertyName = true,
59-
HelpMessage = "The id of the management group that the deploymentStack will be deployed into")]
58+
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true,
59+
HelpMessage = "The id of the management group that the deploymentStack will be deployed into.")]
6060
[ValidateNotNullOrEmpty]
6161
public string ManagementGroupId { get; set; }
6262

63-
[Parameter(Position = 2, ParameterSetName = ParameterFileTemplateFileParameterSetName,
64-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "TemplateFile to be used to create the stack")]
65-
[Parameter(Position = 2, ParameterSetName = ParameterUriTemplateFileParameterSetName,
66-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "TemplateFile to be used to create the stack")]
67-
[Parameter(Position = 2, ParameterSetName = ParameterObjectTemplateFileParameterSetName,
68-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "TemplateFile to be used to create the stack")]
69-
[Parameter(Position = 2, ParameterSetName = ParameterlessTemplateFileParameterSetName,
70-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "TemplateFile to be used to create the stack")]
63+
[Parameter(ParameterSetName = ParameterFileTemplateFileParameterSetName,
64+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "TemplateFile to be used to create the stack.")]
65+
[Parameter(ParameterSetName = ParameterUriTemplateFileParameterSetName,
66+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "TemplateFile to be used to create the stack.")]
67+
[Parameter(ParameterSetName = ParameterObjectTemplateFileParameterSetName,
68+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "TemplateFile to be used to create the stack.")]
69+
[Parameter(ParameterSetName = ParameterlessTemplateFileParameterSetName,
70+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "TemplateFile to be used to create the stack.")]
7171
public string TemplateFile { get; set; }
7272

73-
[Parameter(Position = 2, ParameterSetName = ParameterFileTemplateUriParameterSetName,
74-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Template to be used to create the stack")]
75-
[Parameter(Position = 2, ParameterSetName = ParameterUriTemplateUriParameterSetName,
76-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Template to be used to create the stack")]
77-
[Parameter(Position = 2, ParameterSetName = ParameterObjectTemplateUriParameterSetName,
78-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Template to be used to create the stack")]
79-
[Parameter(Position = 2, ParameterSetName = ParameterlessTemplateUriParameterSetName,
80-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Template to be used to create the stack")]
73+
[Parameter(ParameterSetName = ParameterFileTemplateUriParameterSetName,
74+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Template to be used to create the stack.")]
75+
[Parameter(ParameterSetName = ParameterUriTemplateUriParameterSetName,
76+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Template to be used to create the stack.")]
77+
[Parameter(ParameterSetName = ParameterObjectTemplateUriParameterSetName,
78+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Template to be used to create the stack.")]
79+
[Parameter(ParameterSetName = ParameterlessTemplateUriParameterSetName,
80+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Template to be used to create the stack.")]
8181
public string TemplateUri { get; set; }
8282

83-
[Parameter(Position = 2, ParameterSetName = ParameterFileTemplateSpecParameterSetName,
84-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack")]
85-
[Parameter(Position = 2, ParameterSetName = ParameterUriTemplateSpecParameterSetName,
86-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack")]
87-
[Parameter(Position = 2, ParameterSetName = ParameterObjectTemplateSpecParameterSetName,
88-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack")]
89-
[Parameter(Position = 2, ParameterSetName = ParameterlessTemplateSpecParameterSetName,
90-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack")]
83+
[Parameter(ParameterSetName = ParameterFileTemplateSpecParameterSetName,
84+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack.")]
85+
[Parameter(ParameterSetName = ParameterUriTemplateSpecParameterSetName,
86+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack.")]
87+
[Parameter(ParameterSetName = ParameterObjectTemplateSpecParameterSetName,
88+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack.")]
89+
[Parameter(ParameterSetName = ParameterlessTemplateSpecParameterSetName,
90+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack.")]
9191
public string TemplateSpecId { get; set; }
9292

93-
[Parameter(Position = 3, ParameterSetName = ParameterFileTemplateFileParameterSetName,
94-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Parameter file to use for the template")]
95-
[Parameter(Position = 3, ParameterSetName = ParameterFileTemplateUriParameterSetName,
96-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Parameter file to use for the template")]
97-
[Parameter(Position = 3, ParameterSetName = ParameterFileTemplateSpecParameterSetName,
98-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Parameter file to use for the template")]
93+
[Parameter(ParameterSetName = ParameterFileTemplateFileParameterSetName,
94+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Parameter file to use for the template.")]
95+
[Parameter(ParameterSetName = ParameterFileTemplateUriParameterSetName,
96+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Parameter file to use for the template.")]
97+
[Parameter(ParameterSetName = ParameterFileTemplateSpecParameterSetName,
98+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Parameter file to use for the template.")]
9999
public string TemplateParameterFile { get; set; }
100100

101-
[Parameter(Position = 3, ParameterSetName = ParameterUriTemplateFileParameterSetName,
102-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Parameter file to use for the template")]
103-
[Parameter(Position = 3, ParameterSetName = ParameterUriTemplateUriParameterSetName,
104-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Parameter file to use for the template")]
105-
[Parameter(Position = 3, ParameterSetName = ParameterUriTemplateSpecParameterSetName,
106-
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Parameter file to use for the template")]
101+
[Parameter(ParameterSetName = ParameterUriTemplateFileParameterSetName,
102+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Parameter file to use for the template.")]
103+
[Parameter(ParameterSetName = ParameterUriTemplateUriParameterSetName,
104+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Parameter file to use for the template.")]
105+
[Parameter(ParameterSetName = ParameterUriTemplateSpecParameterSetName,
106+
Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "Location of the Parameter file to use for the template.")]
107107
public string TemplateParameterUri { get; set; }
108108

109109
[Parameter(ParameterSetName = ParameterObjectTemplateFileParameterSetName,
@@ -160,7 +160,7 @@ public class NewAzManagementGroupDeploymentStack : DeploymentStacksCmdletBase
160160
HelpMessage = "Do not ask for confirmation when overwriting an existing stack.")]
161161
public SwitchParameter Force { get; set; }
162162

163-
[Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")]
163+
[Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background.")]
164164
public SwitchParameter AsJob { get; set; }
165165

166166
#endregion
@@ -173,6 +173,7 @@ protected override void OnProcessRecord()
173173
{
174174
Hashtable parameters = new Hashtable();
175175
string filePath = "";
176+
string parameterFilePath = "";
176177
switch (ParameterSetName)
177178
{
178179
case ParameterlessTemplateFileParameterSetName:
@@ -188,7 +189,13 @@ protected override void OnProcessRecord()
188189
break;
189190
case ParameterFileTemplateSpecParameterSetName:
190191
case ParameterFileTemplateUriParameterSetName:
191-
parameters = this.GetParameterObject(TemplateParameterFile);
192+
parameterFilePath = this.TryResolvePath(TemplateParameterFile);
193+
if (!File.Exists(parameterFilePath))
194+
{
195+
throw new PSInvalidOperationException(
196+
string.Format(ProjectResources.InvalidFilePath, TemplateParameterFile));
197+
}
198+
parameters = this.GetParameterObject(parameterFilePath);
192199
break;
193200
case ParameterFileTemplateFileParameterSetName:
194201
filePath = this.TryResolvePath(TemplateFile);
@@ -198,7 +205,14 @@ protected override void OnProcessRecord()
198205
string.Format(ProjectResources.InvalidFilePath, TemplateFile));
199206
}
200207
filePath = ResolveBicepFile(filePath);
201-
parameters = this.GetParameterObject(TemplateParameterFile);
208+
209+
parameterFilePath = this.TryResolvePath(TemplateParameterFile);
210+
if (!File.Exists(parameterFilePath))
211+
{
212+
throw new PSInvalidOperationException(
213+
string.Format(ProjectResources.InvalidFilePath, TemplateParameterFile));
214+
}
215+
parameters = this.GetParameterObject(parameterFilePath);
202216
TemplateUri = filePath;
203217
break;
204218
case ParameterObjectTemplateFileParameterSetName:
@@ -221,6 +235,10 @@ protected override void OnProcessRecord()
221235
var shouldDeleteResources = (DeleteAll.ToBool() || DeleteResources.ToBool()) ? true : false;
222236
var shouldDeleteResourceGroups = (DeleteAll.ToBool() || DeleteResourceGroups.ToBool()) ? true : false;
223237

238+
239+
// construct deploymentScope if ResourceGroup was provided
240+
var deploymentScope = "/subscriptions/" + DeploymentSubscriptionId;
241+
224242
Action createOrUpdateAction = () =>
225243
{
226244
var deploymentStack = DeploymentStacksSdkClient.ManagementGroupCreateOrUpdateDeploymentStack(
@@ -235,7 +253,7 @@ protected override void OnProcessRecord()
235253
resourcesCleanupAction: shouldDeleteResources ? "delete" : "detach",
236254
resourceGroupsCleanupAction: shouldDeleteResourceGroups ? "delete" : "detach",
237255
managementGroupsCleanupAction: "detach",
238-
DeploymentSubscriptionId,
256+
deploymentScope,
239257
DenySettingsMode.ToString(),
240258
DenySettingsExcludedPrincipals,
241259
DenySettingsExcludedActions,

0 commit comments

Comments
 (0)