//Parse wrapped PSNetworkRuleSet to storage NetworkRule object in SDK public static StorageNetworkAcls ParseStorageNetworkRule(PSNetworkRuleSet rules) { if (rules == null) { return(null); } StorageNetworkAcls returnRules = new StorageNetworkAcls(); returnRules.Bypass = ParseStorageNetworkRuleBypass(rules.Bypass); returnRules.DefaultAction = ParseStorageNetworkRuleDefaultAction(rules.DefaultAction); List <IPRule> ipRuleList = new List <IPRule>(); if (rules.IpRules != null) { foreach (var ipRule in rules.IpRules) { ipRuleList.Add(ParseStorageNetworkRuleIPRule(ipRule)); } returnRules.IpRules = ipRuleList.ToArray(); } List <VirtualNetworkRule> virtualNetworkList = new List <VirtualNetworkRule>(); if (rules.VirtualNetworkRules != null) { foreach (var virtualNetworkRule in rules.VirtualNetworkRules) { virtualNetworkList.Add(ParseStorageNetworkRuleVirtualNetworkRule(virtualNetworkRule)); } returnRules.VirtualNetworkRules = virtualNetworkList.ToArray(); } return(returnRules); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); if (ShouldProcess(this.Name, "Update Storage Account NetworkRule")) { if (IPRule == null && VirtualNetworkRule == null && bypass == null && defaultAction == null) { 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); StorageNetworkAcls storageACL = storageAccount.NetworkAcls; if (storageACL == null) { storageACL = new StorageNetworkAcls(); } PSNetworkRuleSet psNetworkRule = PSNetworkRuleSet.ParsePSNetworkRule(storageACL); if (isIpRuleSet) { psNetworkRule.IpRules = IPRule; } if (isNetworkRuleSet) { psNetworkRule.VirtualNetworkRules = VirtualNetworkRule; } if (bypass != null) { psNetworkRule.Bypass = bypass; } if (defaultAction != null) { psNetworkRule.DefaultAction = defaultAction.Value; } StorageAccountUpdateParameters updateParameters = new StorageAccountUpdateParameters(); updateParameters.NetworkAcls = PSNetworkRuleSet.ParseStorageNetworkRule(psNetworkRule); var updatedAccountResponse = this.StorageClient.StorageAccounts.Update( this.ResourceGroupName, this.Name, updateParameters); storageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkAcls)); } }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); if (ShouldProcess(this.Name, "Remove Storage Account Networkrules")) { var storageAccount = this.StorageClient.StorageAccounts.GetProperties( this.ResourceGroupName, this.Name); StorageNetworkAcls storageACL = storageAccount.NetworkAcls; if (storageACL == null) { storageACL = new StorageNetworkAcls(); } switch (ParameterSetName) { case NetWorkRuleStringParameterSet: if (storageACL.VirtualNetworkRules == null) { storageACL.VirtualNetworkRules = new List <VirtualNetworkRule>(); } foreach (string s in VirtualNetworkResourceId) { VirtualNetworkRule rule = new 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 <IPRule>(); } foreach (string s in IPAddressOrRange) { IPRule rule = new 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 NetworkRuleObjectParameterSet: if (storageACL.VirtualNetworkRules == null) { storageACL.VirtualNetworkRules = new List <VirtualNetworkRule>(); } foreach (PSVirtualNetworkRule rule in VirtualNetworkRule) { if (!RemoveNetworkRule(storageACL.VirtualNetworkRules, PSNetworkRuleSet.ParseStorageNetworkRuleVirtualNetworkRule(rule))) { throw new ArgumentOutOfRangeException("VirtualNetworkRule", String.Format("Can't remove VirtualNetworkRule with specific ResourceId since not exist: {0}", rule.VirtualNetworkResourceId)); } } break; case IpRuleObjectParameterSet: if (storageACL.IpRules == null) { storageACL.IpRules = new List <IPRule>(); } foreach (PSIpRule rule in IPRule) { 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; } StorageAccountUpdateParameters updateParameters = new StorageAccountUpdateParameters(); updateParameters.NetworkAcls = storageACL; var updatedAccountResponse = this.StorageClient.StorageAccounts.Update( this.ResourceGroupName, this.Name, updateParameters); storageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); switch (ParameterSetName) { case NetWorkRuleStringParameterSet: case NetworkRuleObjectParameterSet: WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkAcls).VirtualNetworkRules); break; case IpRuleStringParameterSet: case IpRuleObjectParameterSet: WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkAcls).IpRules); break; } } }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); if (ShouldProcess(this.Name, "Add Storage Account NetworkRules")) { var storageAccount = this.StorageClient.StorageAccounts.GetProperties( this.ResourceGroupName, this.Name); StorageNetworkAcls storageACL = storageAccount.NetworkAcls; if (storageACL == null) { storageACL = new StorageNetworkAcls(); } switch (ParameterSetName) { case NetWorkRuleStringParameterSet: if (storageACL.VirtualNetworkRules == null) { storageACL.VirtualNetworkRules = new List <VirtualNetworkRule>(); } foreach (string s in VirtualNetworkResourceId) { VirtualNetworkRule rule = new VirtualNetworkRule(s); storageACL.VirtualNetworkRules.Add(rule); } break; case IpRuleStringParameterSet: if (storageACL.IpRules == null) { storageACL.IpRules = new List <IPRule>(); } foreach (string s in IPAddressOrRange) { IPRule rule = new IPRule(s); storageACL.IpRules.Add(rule); } break; case NetworkRuleObjectParameterSet: if (storageACL.VirtualNetworkRules == null) { storageACL.VirtualNetworkRules = new List <VirtualNetworkRule>(); } foreach (PSVirtualNetworkRule rule in VirtualNetworkRule) { storageACL.VirtualNetworkRules.Add(PSNetworkRuleSet.ParseStorageNetworkRuleVirtualNetworkRule(rule)); } break; case IpRuleObjectParameterSet: if (storageACL.IpRules == null) { storageACL.IpRules = new List <IPRule>(); } foreach (PSIpRule rule in IPRule) { storageACL.IpRules.Add(PSNetworkRuleSet.ParseStorageNetworkRuleIPRule(rule)); } break; } StorageAccountUpdateParameters updateParameters = new StorageAccountUpdateParameters(); updateParameters.NetworkAcls = storageACL; var updatedAccountResponse = this.StorageClient.StorageAccounts.Update( this.ResourceGroupName, this.Name, updateParameters); storageAccount = this.StorageClient.StorageAccounts.GetProperties(this.ResourceGroupName, this.Name); switch (ParameterSetName) { case NetWorkRuleStringParameterSet: case NetworkRuleObjectParameterSet: WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkAcls).VirtualNetworkRules); break; case IpRuleStringParameterSet: case IpRuleObjectParameterSet: WriteObject(PSNetworkRuleSet.ParsePSNetworkRule(storageAccount.NetworkAcls).IpRules); break; } } }