From 5ebe6bc4fe19b9d6c05893df5973872d0a7b2247 Mon Sep 17 00:00:00 2001 From: Yifan Zhang Date: Tue, 14 Jun 2022 21:10:09 +0800 Subject: [PATCH 1/2] temp --- .../Models/PSNetworkRule.cs | 1 - .../Storage.Management.csproj | 4 - .../AddAzureStorageAccountNetworkRule.cs | 86 ++++++++----------- .../GetAzureStorageAccountNetworkRuleSet.cs | 22 ++--- .../RemoveAzureStorageAccountNetworkRule.cs | 84 ++++++++---------- ...UpdateAzureStorageAccountNetworkRuleSet.cs | 55 +++++++----- 6 files changed, 114 insertions(+), 138 deletions(-) diff --git a/src/Storage/Storage.Management/Models/PSNetworkRule.cs b/src/Storage/Storage.Management/Models/PSNetworkRule.cs index 0bc50bcbfcc8..31599ce10316 100644 --- a/src/Storage/Storage.Management/Models/PSNetworkRule.cs +++ b/src/Storage/Storage.Management/Models/PSNetworkRule.cs @@ -12,7 +12,6 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Management.Storage.Models; using System; using System.Collections.Generic; using Microsoft.WindowsAzure.Commands.Common.Attributes; diff --git a/src/Storage/Storage.Management/Storage.Management.csproj b/src/Storage/Storage.Management/Storage.Management.csproj index 8808a81da49d..faa96b846130 100644 --- a/src/Storage/Storage.Management/Storage.Management.csproj +++ b/src/Storage/Storage.Management/Storage.Management.csproj @@ -18,11 +18,7 @@ - - - - diff --git a/src/Storage/Storage.Management/StorageAccount/AddAzureStorageAccountNetworkRule.cs b/src/Storage/Storage.Management/StorageAccount/AddAzureStorageAccountNetworkRule.cs index 44712b031160..0cff35717611 100644 --- a/src/Storage/Storage.Management/StorageAccount/AddAzureStorageAccountNetworkRule.cs +++ b/src/Storage/Storage.Management/StorageAccount/AddAzureStorageAccountNetworkRule.cs @@ -12,15 +12,14 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System.Collections; -using System.Management.Automation; -using Microsoft.Azure.Commands.ResourceManager.Common.Tags; -using Microsoft.Azure.Management.Storage; -using Microsoft.Azure.Management.Storage.Models; -using StorageModels = Microsoft.Azure.Management.Storage.Models; using Microsoft.Azure.Commands.Management.Storage.Models; -using System.Collections.Generic; using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.ResourceManager.Common.Tags; +using System.Collections; +using System.Collections.Generic; +using System.Management.Automation; +using Track2 = Azure.ResourceManager.Storage; +using Track2Models = Azure.ResourceManager.Storage.Models; namespace Microsoft.Azure.Commands.Management.Storage { @@ -132,26 +131,23 @@ public override void ExecuteCmdlet() if (ShouldProcess(this.Name, "Add Storage Account NetworkRules")) { - var storageAccount = this.StorageClient.StorageAccounts.GetProperties( - this.ResourceGroupName, - this.Name); - NetworkRuleSet storageACL = storageAccount.NetworkRuleSet; + Track2.StorageAccountResource storageAccount = this.StorageClientTrack2 + .GetStorageAccount(this.ResourceGroupName, this.Name).Get(); + Track2Models.NetworkRuleSet storageACL = storageAccount.Data.NetworkRuleSet; if (storageACL == null) { - storageACL = new NetworkRuleSet(); + storageACL = new Track2Models.NetworkRuleSet(Track2Models.DefaultAction.Allow); } bool ruleChanged = false; switch (ParameterSetName) { case NetWorkRuleStringParameterSet: - if (storageACL.VirtualNetworkRules == null) - storageACL.VirtualNetworkRules = new List(); foreach (string s in VirtualNetworkResourceId) { bool ruleExist = false; - foreach (VirtualNetworkRule originRule in storageACL.VirtualNetworkRules) + foreach (Track2Models.VirtualNetworkRule originRule in storageACL.VirtualNetworkRules) { if (originRule.VirtualNetworkResourceId.Equals(s, System.StringComparison.InvariantCultureIgnoreCase)) { @@ -162,19 +158,17 @@ public override void ExecuteCmdlet() } if (!ruleExist) { - VirtualNetworkRule rule = new VirtualNetworkRule(s); + Track2Models.VirtualNetworkRule rule = new Track2Models.VirtualNetworkRule(s); storageACL.VirtualNetworkRules.Add(rule); ruleChanged = true; } } break; case IpRuleStringParameterSet: - if (storageACL.IpRules == null) - storageACL.IpRules = new List(); foreach (string s in IPAddressOrRange) { bool ruleExist = false; - foreach (IPRule originRule in storageACL.IpRules) + foreach (Track2Models.IPRule originRule in storageACL.IPRules) { if (originRule.IPAddressOrRange.Equals(s, System.StringComparison.InvariantCultureIgnoreCase)) { @@ -185,19 +179,15 @@ public override void ExecuteCmdlet() } if (!ruleExist) { - IPRule rule = new IPRule(s); - storageACL.IpRules.Add(rule); + Track2Models.IPRule rule = new Track2Models.IPRule(s); + storageACL.IPRules.Add(rule); ruleChanged = true; } } break; case ResourceAccessRuleStringParameterSet: - if (storageACL.ResourceAccessRules == null) - { - storageACL.ResourceAccessRules = new List(); - } bool ResourceAccessruleExist = false; - foreach (ResourceAccessRule originRule in storageACL.ResourceAccessRules) + foreach (Track2Models.ResourceAccessRule originRule in storageACL.ResourceAccessRules) { if (originRule.TenantId.Equals(this.TenantId, System.StringComparison.InvariantCultureIgnoreCase) && originRule.ResourceId.Equals(this.ResourceId, System.StringComparison.InvariantCultureIgnoreCase)) @@ -209,18 +199,19 @@ public override void ExecuteCmdlet() } if (!ResourceAccessruleExist) { - ResourceAccessRule rule = new ResourceAccessRule(this.TenantId, this.ResourceId); + Track2Models.ResourceAccessRule rule = new Track2Models.ResourceAccessRule{ + TenantId = this.TenantId, + ResourceId = this.ResourceId, + }; storageACL.ResourceAccessRules.Add(rule); ruleChanged = true; } break; case NetworkRuleObjectParameterSet: - if (storageACL.VirtualNetworkRules == null) - storageACL.VirtualNetworkRules = new List(); foreach (PSVirtualNetworkRule rule in VirtualNetworkRule) { bool ruleExist = false; - foreach (VirtualNetworkRule originRule in storageACL.VirtualNetworkRules) + foreach (Track2Models.VirtualNetworkRule originRule in storageACL.VirtualNetworkRules) { if (originRule.VirtualNetworkResourceId.Equals(rule.VirtualNetworkResourceId, System.StringComparison.InvariantCultureIgnoreCase)) { @@ -237,14 +228,10 @@ public override void ExecuteCmdlet() } break; case ResourceAccessRuleObjectParameterSet: - if (storageACL.ResourceAccessRules == null) - { - storageACL.ResourceAccessRules = new List(); - } foreach (PSResourceAccessRule rule in ResourceAccessRule) { bool ruleExist = false; - foreach (ResourceAccessRule originRule in storageACL.ResourceAccessRules) + foreach (Track2Models.ResourceAccessRule originRule in storageACL.ResourceAccessRules) { if (originRule.TenantId.Equals(rule.TenantId, System.StringComparison.InvariantCultureIgnoreCase) && originRule.ResourceId.Equals(rule.ResourceId, System.StringComparison.InvariantCultureIgnoreCase)) @@ -263,12 +250,10 @@ public override void ExecuteCmdlet() } break; case IpRuleObjectParameterSet: - if (storageACL.IpRules == null) - storageACL.IpRules = new List(); foreach (PSIpRule rule in IPRule) { bool ruleExist = false; - foreach (IPRule originRule in storageACL.IpRules) + foreach (Track2Models.IPRule originRule in storageACL.IPRules) { if (originRule.IPAddressOrRange.Equals(rule.IPAddressOrRange, System.StringComparison.InvariantCultureIgnoreCase)) { @@ -279,8 +264,7 @@ public override void ExecuteCmdlet() } if (!ruleExist) { - - storageACL.IpRules.Add(PSNetworkRuleSet.ParseStorageNetworkRuleIPRule(rule)); + storageACL.IPRules.Add(PSNetworkRuleSet.ParseStorageNetworkRuleIPRule(rule)); ruleChanged = true; } } @@ -289,30 +273,32 @@ public override void ExecuteCmdlet() if (ruleChanged) { - StorageAccountUpdateParameters updateParameters = new StorageAccountUpdateParameters(); - updateParameters.NetworkRuleSet = storageACL; + Track2Models.StorageAccountPatch patch = new Track2Models.StorageAccountPatch(); + patch.NetworkRuleSet = storageACL; - var updatedAccountResponse = this.StorageClient.StorageAccounts.Update( - this.ResourceGroupName, - this.Name, - updateParameters); + Track2.StorageAccountResource updatedStorageAccount = this.StorageClientTrack2 + .GetStorageAccount(this.ResourceGroupName, this.Name) + .Update(patch); - storageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); + storageAccount = this.StorageClientTrack2 + .GetStorageAccount(this.ResourceGroupName, this.Name) + .Get(); } switch (ParameterSetName) { case NetWorkRuleStringParameterSet: case NetworkRuleObjectParameterSet: - WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkRuleSet).VirtualNetworkRules); + WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet).VirtualNetworkRules); + WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet).VirtualNetworkRules); break; case IpRuleStringParameterSet: case IpRuleObjectParameterSet: - WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkRuleSet).IpRules); + WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet).IpRules); break; case ResourceAccessRuleStringParameterSet: case ResourceAccessRuleObjectParameterSet: - WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkRuleSet).ResourceAccessRules); + WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet).ResourceAccessRules); break; } } diff --git a/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccountNetworkRuleSet.cs b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccountNetworkRuleSet.cs index b7fec3ad1c9d..93a71c73ebec 100644 --- a/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccountNetworkRuleSet.cs +++ b/src/Storage/Storage.Management/StorageAccount/GetAzureStorageAccountNetworkRuleSet.cs @@ -12,15 +12,15 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Management.Storage.Models; +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.ResourceManager.Common.Tags; using System.Collections; +using System.Collections.Generic; using System.Management.Automation; -using Microsoft.Azure.Commands.ResourceManager.Common.Tags; -using Microsoft.Azure.Management.Storage; -using Microsoft.Azure.Management.Storage.Models; using StorageModels = Microsoft.Azure.Management.Storage.Models; -using Microsoft.Azure.Commands.Management.Storage.Models; -using System.Collections.Generic; -using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Track2 = Azure.ResourceManager.Storage; +using Track2Models = Azure.ResourceManager.Storage.Models; namespace Microsoft.Azure.Commands.Management.Storage { @@ -49,12 +49,12 @@ public override void ExecuteCmdlet() { base.ExecuteCmdlet(); - var storageAccount = this.StorageClient.StorageAccounts.GetProperties( - this.ResourceGroupName, - this.Name); - if (storageAccount.NetworkRuleSet != null) + Track2.StorageAccountResource account = this.StorageClientTrack2.GetStorageAccount(this.ResourceGroupName, this.Name) + .Get(); + + if (account.Data.NetworkRuleSet != null) { - WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkRuleSet)); + WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(account.Data.NetworkRuleSet)); } } } diff --git a/src/Storage/Storage.Management/StorageAccount/RemoveAzureStorageAccountNetworkRule.cs b/src/Storage/Storage.Management/StorageAccount/RemoveAzureStorageAccountNetworkRule.cs index ee4956c43ce3..a773e38acdcd 100644 --- a/src/Storage/Storage.Management/StorageAccount/RemoveAzureStorageAccountNetworkRule.cs +++ b/src/Storage/Storage.Management/StorageAccount/RemoveAzureStorageAccountNetworkRule.cs @@ -12,16 +12,16 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Management.Storage.Models; +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.ResourceManager.Common.Tags; +using System; using System.Collections; +using System.Collections.Generic; using System.Management.Automation; -using Microsoft.Azure.Commands.ResourceManager.Common.Tags; -using Microsoft.Azure.Management.Storage; -using Microsoft.Azure.Management.Storage.Models; using StorageModels = Microsoft.Azure.Management.Storage.Models; -using Microsoft.Azure.Commands.Management.Storage.Models; -using System.Collections.Generic; -using System; -using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Track2 = Azure.ResourceManager.Storage; +using Track2Models = Azure.ResourceManager.Storage.Models; namespace Microsoft.Azure.Commands.Management.Storage { @@ -132,51 +132,45 @@ public override void ExecuteCmdlet() if (ShouldProcess(this.Name, "Remove Storage Account Networkrules")) { - var storageAccount = this.StorageClient.StorageAccounts.GetProperties( - this.ResourceGroupName, - this.Name); - NetworkRuleSet storageACL = storageAccount.NetworkRuleSet; + Track2.StorageAccountResource storageAccount = this.StorageClientTrack2 + .GetStorageAccount(this.ResourceGroupName, this.Name) + .Get(); + Track2Models.NetworkRuleSet storageACL = storageAccount.Data.NetworkRuleSet; if (storageACL == null) { - storageACL = new NetworkRuleSet(); + storageACL = new Track2Models.NetworkRuleSet(Track2Models.DefaultAction.Allow); } switch (ParameterSetName) { case NetWorkRuleStringParameterSet: - if (storageACL.VirtualNetworkRules == null) - storageACL.VirtualNetworkRules = new List(); foreach (string s in VirtualNetworkResourceId) { - VirtualNetworkRule rule = new VirtualNetworkRule(s); + Track2Models.VirtualNetworkRule rule = new Track2Models.VirtualNetworkRule(s); if (!RemoveNetworkRule(storageACL.VirtualNetworkRules, rule)) throw new ArgumentOutOfRangeException("VirtualNetworkResourceId", String.Format("Can't remove VirtualNetworkRule with specific ResourceId since not exist: {0}", rule.VirtualNetworkResourceId)); } break; case IpRuleStringParameterSet: - if (storageACL.IpRules == null) - storageACL.IpRules = new List(); foreach (string s in IPAddressOrRange) { - IPRule rule = new IPRule(s); - if (!RemoveIpRule(storageACL.IpRules, rule)) + Track2Models.IPRule rule = new Track2Models.IPRule(s); + if (!RemoveIpRule(storageACL.IPRules, rule)) throw new ArgumentOutOfRangeException("IPAddressOrRange", String.Format("Can't remove IpRule with specific IPAddressOrRange since not exist: {0}", rule.IPAddressOrRange)); } break; case ResourceAccessRuleStringParameterSet: - if (storageACL.ResourceAccessRules == null) + Track2Models.ResourceAccessRule resourceaccessrule = new Track2Models.ResourceAccessRule { - storageACL.ResourceAccessRules = new List(); - } - ResourceAccessRule resourceaccessrule = new ResourceAccessRule(this.TenantId, this.ResourceId); + ResourceId = this.ResourceId, + TenantId = this.TenantId + }; if (!RemoveResourceAccessRule(storageACL.ResourceAccessRules, resourceaccessrule)) throw new ArgumentOutOfRangeException("TenantId, ResourceId", String.Format("Can't remove ResourceAccessRule since not exist, TenantId: {0}, ResourceId : {1}", resourceaccessrule.TenantId, resourceaccessrule.ResourceId)); break; case NetworkRuleObjectParameterSet: - if (storageACL.VirtualNetworkRules == null) - storageACL.VirtualNetworkRules = new List(); foreach (PSVirtualNetworkRule rule in VirtualNetworkRule) { if (!RemoveNetworkRule(storageACL.VirtualNetworkRules, PSNetworkRuleSet.ParseStorageNetworkRuleVirtualNetworkRule(rule))) @@ -184,19 +178,13 @@ public override void ExecuteCmdlet() } break; case IpRuleObjectParameterSet: - if (storageACL.IpRules == null) - storageACL.IpRules = new List(); foreach (PSIpRule rule in IPRule) { - if (!RemoveIpRule(storageACL.IpRules, PSNetworkRuleSet.ParseStorageNetworkRuleIPRule(rule))) + if (!RemoveIpRule(storageACL.IPRules, PSNetworkRuleSet.ParseStorageNetworkRuleIPRule(rule))) throw new ArgumentOutOfRangeException("IPRule", String.Format("Can't remove IpRule with specific IPAddressOrRange since not exist: {0}", rule.IPAddressOrRange)); } break; case ResourceAccessRuleObjectParameterSet: - if (storageACL.ResourceAccessRules == null) - { - storageACL.ResourceAccessRules = new List(); - } foreach (PSResourceAccessRule rule in this.ResourceAccessRule) { if (!RemoveResourceAccessRule(storageACL.ResourceAccessRules, PSNetworkRuleSet.ParseStorageResourceAccessRule(rule))) @@ -205,29 +193,27 @@ public override void ExecuteCmdlet() break; } - StorageAccountUpdateParameters updateParameters = new StorageAccountUpdateParameters(); - updateParameters.NetworkRuleSet = storageACL; - - var updatedAccountResponse = this.StorageClient.StorageAccounts.Update( - this.ResourceGroupName, - this.Name, - updateParameters); + Track2Models.StorageAccountPatch patch = new Track2Models.StorageAccountPatch(); + patch.NetworkRuleSet = storageACL; + var updatedStorageAccount = this.StorageClientTrack2 + .GetStorageAccount(this.ResourceGroupName, this.Name) + .Update(patch); - storageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); + storageAccount = this.StorageClientTrack2.GetStorageAccount(this.ResourceGroupName, this.Name).Get(); switch (ParameterSetName) { case NetWorkRuleStringParameterSet: case NetworkRuleObjectParameterSet: - WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkRuleSet).VirtualNetworkRules); + WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet).VirtualNetworkRules); break; case IpRuleStringParameterSet: case IpRuleObjectParameterSet: - WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkRuleSet).IpRules); + WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet).IpRules); break; case ResourceAccessRuleStringParameterSet: case ResourceAccessRuleObjectParameterSet: - WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkRuleSet).ResourceAccessRules); + WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet).ResourceAccessRules); break; } } @@ -239,9 +225,9 @@ public override void ExecuteCmdlet() /// The IpRule List /// The IP Rule to remove /// true if reove success - public bool RemoveIpRule(IList ruleList, IPRule ruleToRemove) + public bool RemoveIpRule(IList ruleList, Track2Models.IPRule ruleToRemove) { - foreach (IPRule rule in ruleList) + foreach (Track2Models.IPRule rule in ruleList) { if (rule.IPAddressOrRange == ruleToRemove.IPAddressOrRange) { @@ -258,9 +244,9 @@ public bool RemoveIpRule(IList ruleList, IPRule ruleToRemove) /// The ResourceAccessRule List /// The ResourceAccessRule to remove /// true if reove success - public bool RemoveResourceAccessRule(IList ruleList, ResourceAccessRule ruleToRemove) + public bool RemoveResourceAccessRule(IList ruleList, Track2Models.ResourceAccessRule ruleToRemove) { - foreach (ResourceAccessRule rule in ruleList) + foreach (Track2Models.ResourceAccessRule rule in ruleList) { if (rule.TenantId.Equals(ruleToRemove.TenantId, System.StringComparison.InvariantCultureIgnoreCase) && rule.ResourceId.Equals(ruleToRemove.ResourceId, System.StringComparison.InvariantCultureIgnoreCase)) @@ -278,9 +264,9 @@ public bool RemoveResourceAccessRule(IList ruleList, Resourc /// The NetworkRule List /// The NetworkRulee to remove /// true if reove success - public bool RemoveNetworkRule(IList ruleList, VirtualNetworkRule ruleToRemove) + public bool RemoveNetworkRule(IList ruleList, Track2Models.VirtualNetworkRule ruleToRemove) { - foreach (VirtualNetworkRule rule in ruleList) + foreach (Track2Models.VirtualNetworkRule rule in ruleList) { if (rule.VirtualNetworkResourceId == ruleToRemove.VirtualNetworkResourceId) { diff --git a/src/Storage/Storage.Management/StorageAccount/UpdateAzureStorageAccountNetworkRuleSet.cs b/src/Storage/Storage.Management/StorageAccount/UpdateAzureStorageAccountNetworkRuleSet.cs index e818602ecd87..8ca5c4cf14cb 100644 --- a/src/Storage/Storage.Management/StorageAccount/UpdateAzureStorageAccountNetworkRuleSet.cs +++ b/src/Storage/Storage.Management/StorageAccount/UpdateAzureStorageAccountNetworkRuleSet.cs @@ -12,16 +12,15 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System.Collections; -using System.Management.Automation; -using Microsoft.Azure.Commands.ResourceManager.Common.Tags; -using Microsoft.Azure.Management.Storage; -using Microsoft.Azure.Management.Storage.Models; -using StorageModels = Microsoft.Azure.Management.Storage.Models; using Microsoft.Azure.Commands.Management.Storage.Models; -using System.Collections.Generic; using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.ResourceManager.Common.Tags; using Microsoft.WindowsAzure.Commands.Common.CustomAttributes; +using System.Collections; +using System.Collections.Generic; +using System.Management.Automation; +using Track2 = Azure.ResourceManager.Storage; +using Track2Models = Azure.ResourceManager.Storage.Models; namespace Microsoft.Azure.Commands.Management.Storage { @@ -152,22 +151,20 @@ public override void ExecuteCmdlet() { throw new System.ArgumentNullException("IPRules, VirtualNetworkRules, Bypass, DefaultAction", "Request must specify an account NetworkRule property to update."); } - - var storageAccount = this.StorageClient.StorageAccounts.GetProperties( - this.ResourceGroupName, - this.Name); - NetworkRuleSet storageACL = storageAccount.NetworkRuleSet; + Track2.StorageAccountResource storageAccount = this.StorageClientTrack2 + .GetStorageAccount(this.ResourceGroupName, this.Name).Get(); + Track2Models.NetworkRuleSet storageACL = storageAccount.Data.NetworkRuleSet; if (storageACL == null) { - storageACL = new NetworkRuleSet(); + storageACL = new Track2Models.NetworkRuleSet(Track2Models.DefaultAction.Allow); } PSNetworkRuleSet psNetworkRule = PSNetworkRuleSet.ParsePSNetworkRule(storageACL); if (isIpRuleSet) { - psNetworkRule.IpRules = IPRule; + psNetworkRule.IpRules = IPRule; } if (isNetworkRuleSet) @@ -189,18 +186,30 @@ public override void ExecuteCmdlet() { psNetworkRule.DefaultAction = defaultAction.Value; } - - StorageAccountUpdateParameters updateParameters = new StorageAccountUpdateParameters(); - updateParameters.NetworkRuleSet = PSNetworkRuleSet.ParseStorageNetworkRule(psNetworkRule); - var updatedAccountResponse = this.StorageClient.StorageAccounts.Update( - this.ResourceGroupName, - this.Name, - updateParameters); + Track2Models.StorageAccountPatch patch = new Track2Models.StorageAccountPatch(); + patch.NetworkRuleSet = PSNetworkRuleSet.ParseStorageNetworkRule(psNetworkRule); + + if (patch.NetworkRuleSet.IPRules.Count == 0) + { + patch.NetworkRuleSet.IPRules.Clear(); + } + if (patch.NetworkRuleSet.VirtualNetworkRules.Count == 0) + { + patch.NetworkRuleSet.VirtualNetworkRules.Clear(); + } + if (patch.NetworkRuleSet.ResourceAccessRules.Count == 0) + { + patch.NetworkRuleSet.ResourceAccessRules.Clear(); + } - storageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); + var updatedStorageAccount = this.StorageClientTrack2 + .GetStorageAccount(this.ResourceGroupName, this.Name) + .Update(patch); - WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkRuleSet)); + storageAccount = this.StorageClientTrack2 + .GetStorageAccount(this.ResourceGroupName, this.Name).Get(); + WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet)); } } } From bc9e4009b826d7b3b5b7347738234c1f76106616 Mon Sep 17 00:00:00 2001 From: Yifan Zhang Date: Tue, 14 Jun 2022 21:46:53 +0800 Subject: [PATCH 2/2] remove duplicated line --- .../StorageAccount/AddAzureStorageAccountNetworkRule.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Storage/Storage.Management/StorageAccount/AddAzureStorageAccountNetworkRule.cs b/src/Storage/Storage.Management/StorageAccount/AddAzureStorageAccountNetworkRule.cs index 0cff35717611..57f060f70d88 100644 --- a/src/Storage/Storage.Management/StorageAccount/AddAzureStorageAccountNetworkRule.cs +++ b/src/Storage/Storage.Management/StorageAccount/AddAzureStorageAccountNetworkRule.cs @@ -289,7 +289,6 @@ public override void ExecuteCmdlet() { case NetWorkRuleStringParameterSet: case NetworkRuleObjectParameterSet: - WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet).VirtualNetworkRules); WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.Data.NetworkRuleSet).VirtualNetworkRules); break; case IpRuleStringParameterSet: