Skip to content

Commit b83c2bd

Browse files
committed
cherrypick Azure#5
1 parent df074a2 commit b83c2bd

File tree

1 file changed

+29
-33
lines changed

1 file changed

+29
-33
lines changed

src/Network/Network/BYOIP/MasterCustomIpPrefix/SetAzureMasterCustomIpPrefixCommand.cs renamed to src/Network/Network/BYOIP/MasterCustomIpPrefix/UpdateAzureMasterCustomIpPrefixTagsCommand.cs

Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,26 @@ namespace Microsoft.Azure.Commands.Network
1919
using Microsoft.Azure.Commands.ResourceManager.Common.Tags;
2020
using Microsoft.Azure.Management.Internal.Resources.Utilities.Models;
2121
using Microsoft.Azure.Management.Network;
22+
using Microsoft.Azure.Management.Network.Models;
2223
using Microsoft.WindowsAzure.Commands.Utilities.Common;
2324
using System;
2425
using System.Collections;
2526
using System.Management.Automation;
2627
using MNM = Microsoft.Azure.Management.Network.Models;
2728

28-
[Cmdlet(VerbsCommon.Set, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "MasterCustomIpPrefix", SupportsShouldProcess = true), OutputType(typeof(PSMasterCustomIpPrefix))]
29-
public class SetAzureMasterCustomIpPrefixCommand : MasterCustomIpPrefixBaseCmdlet
29+
[Cmdlet(VerbsData.Update, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "MasterCustomIpPrefixTags", SupportsShouldProcess = true), OutputType(typeof(PSMasterCustomIpPrefix))]
30+
public class UpdateAzureMasterCustomIpPrefixTagsCommand : MasterCustomIpPrefixBaseCmdlet
3031
{
31-
private const string SetByNameParameterSet = "SetByNameParameterSet";
32-
private const string SetByInputObjectParameterSet = "SetByInputObjectParameterSet";
33-
private const string SetByResourceIdParameterSet = "SetByResourceIdParameterSet";
32+
private const string UpdateByNameParameterSet = "UpdateByNameParameterSet";
33+
private const string UpdateByInputObjectParameterSet = "UpdateByInputObjectParameterSet";
34+
private const string UpdateByResourceIdParameterSet = "UpdateByResourceIdParameterSet";
3435

36+
[Alias("ResourceName")]
3537
[Parameter(
3638
Mandatory = false,
3739
ValueFromPipelineByPropertyName = true,
3840
HelpMessage = "The resource name.",
39-
ParameterSetName = SetByNameParameterSet)]
41+
ParameterSetName = UpdateByNameParameterSet)]
4042
[ResourceNameCompleter("Microsoft.Network/masterCustomIpPrefix", "ResourceGroupName")]
4143
[ValidateNotNullOrEmpty]
4244
[SupportsWildcards]
@@ -46,7 +48,7 @@ public class SetAzureMasterCustomIpPrefixCommand : MasterCustomIpPrefixBaseCmdle
4648
Mandatory = false,
4749
ValueFromPipelineByPropertyName = true,
4850
HelpMessage = "The resource group name.",
49-
ParameterSetName = SetByNameParameterSet)]
51+
ParameterSetName = UpdateByNameParameterSet)]
5052
[ValidateNotNullOrEmpty]
5153
[SupportsWildcards]
5254
public virtual string ResourceGroupName { get; set; }
@@ -55,35 +57,25 @@ public class SetAzureMasterCustomIpPrefixCommand : MasterCustomIpPrefixBaseCmdle
5557
Mandatory = false,
5658
ValueFromPipeline = true,
5759
HelpMessage = "The MasterCustomIpPrefix to set.",
58-
ParameterSetName = SetByInputObjectParameterSet)]
60+
ParameterSetName = UpdateByInputObjectParameterSet)]
5961
public PSMasterCustomIpPrefix InputObject { get; set; }
6062

6163
[Parameter(
6264
Mandatory = false,
6365
ValueFromPipelineByPropertyName = true,
6466
HelpMessage = "The resource Id.",
65-
ParameterSetName = SetByResourceIdParameterSet)]
67+
ParameterSetName = UpdateByResourceIdParameterSet)]
6668
[ValidateNotNullOrEmpty]
6769
[SupportsWildcards]
6870
public virtual string ResourceId { get; set; }
6971

70-
[Parameter(
71-
Mandatory = true,
72-
ValueFromPipelineByPropertyName = true,
73-
HelpMessage = "The MasterCustomIpPrefix location.",
74-
ParameterSetName = SetByResourceIdParameterSet)]
75-
[Parameter(Mandatory = false, ParameterSetName = SetByInputObjectParameterSet)]
76-
[LocationCompleter("Microsoft.Network/masterCustomIpPrefix")]
77-
[ValidateNotNullOrEmpty]
78-
public string Location { get; set; }
79-
8072
[Parameter(
8173
Mandatory = true,
8274
ValueFromPipelineByPropertyName = true,
8375
HelpMessage = "A hashtable which represents resource tags.",
84-
ParameterSetName = SetByNameParameterSet)]
85-
[Parameter(Mandatory = true, ParameterSetName = SetByResourceIdParameterSet)]
86-
[Parameter(Mandatory = false, ParameterSetName = SetByInputObjectParameterSet)]
76+
ParameterSetName = UpdateByNameParameterSet)]
77+
[Parameter(Mandatory = true, ParameterSetName = UpdateByResourceIdParameterSet)]
78+
[Parameter(Mandatory = false, ParameterSetName = UpdateByInputObjectParameterSet)]
8779
public Hashtable Tag { get; set; }
8880

8981
[Parameter(Mandatory = false, HelpMessage = "Run cmdlet in the background")]
@@ -103,21 +95,24 @@ public override void Execute()
10395
{
10496
this.ResourceGroupName = InputObject.ResourceGroupName;
10597
this.Name = InputObject.Name;
106-
this.Location = this.IsParameterBound(c => c.Location) ? Location : InputObject.Location;
10798
}
10899

109-
if (!NetworkBaseCmdlet.IsResourcePresent(() => GetMasterCustomIpPrefix(this.ResourceGroupName, this.Name)))
100+
PSMasterCustomIpPrefix psModel;
101+
if (this.IsParameterBound(c => c.InputObject))
110102
{
111-
throw new ArgumentException(Microsoft.Azure.Commands.Network.Properties.Resources.ResourceNotFound);
103+
psModel = InputObject;
112104
}
113-
114-
115-
var psModel = new PSMasterCustomIpPrefix()
105+
else
116106
{
117-
Name = InputObject.Name,
118-
ResourceGroupName = InputObject.ResourceGroupName,
119-
Location = this.Location,
120-
};
107+
var existingPsModel = GetMasterCustomIpPrefix(this.ResourceGroupName, this.Name);
108+
109+
psModel = new PSMasterCustomIpPrefix()
110+
{
111+
Name = this.Name,
112+
ResourceGroupName = this.ResourceGroupName,
113+
Location = existingPsModel.Location,
114+
};
115+
}
121116
var sdkModel = NetworkResourceManagerProfile.Mapper.Map<MNM.MasterCustomIpPrefix>(psModel);
122117

123118
if (this.IsParameterBound(c => c.InputObject))
@@ -132,7 +127,8 @@ public override void Execute()
132127
if (this.ShouldProcess($"Name: {this.Name} ResourceGroup: {this.ResourceGroupName}", "Set existing MasterCustomIpPrefix"))
133128
{
134129
// Execute the PUT MasterCustomIpPrefix Policy call
135-
var modifiedSdkModel = this.MasterCustomIpPrefixClient.CreateOrUpdate(this.ResourceGroupName, this.Name, sdkModel);
130+
TagsObject tagsObj = new TagsObject(sdkModel.Tags);
131+
var modifiedSdkModel = this.MasterCustomIpPrefixClient.UpdateTags(this.ResourceGroupName, this.Name, tagsObj);
136132
var modifiedPsModel = this.ToPsMasterCustomIpPrefix(modifiedSdkModel);
137133
modifiedPsModel.ResourceGroupName = NetworkBaseCmdlet.GetResourceGroup(modifiedPsModel.Id);
138134
WriteObject(modifiedPsModel);

0 commit comments

Comments
 (0)