/// <summary> /// Creates firewall rule for given server name and IP address range. Throws exception if operation fails /// </summary> public async Task <FirewallRuleResponse> CreateFirewallRuleAsync(string serverName, IPAddress startIpAddress, IPAddress endIpAddress) { try { FirewallRuleResponse firewallRuleResponse = new FirewallRuleResponse() { Created = false }; CommonUtil.CheckStringForNullOrEmpty(serverName, "serverName"); CommonUtil.CheckForNull(startIpAddress, "startIpAddress"); CommonUtil.CheckForNull(endIpAddress, "endIpAddress"); IAzureAuthenticationManager authenticationManager = AuthenticationManager; if (authenticationManager != null && !await authenticationManager.GetUserNeedsReauthenticationAsync()) { FirewallRuleResource firewallRuleResource = await FindAzureResourceAsync(serverName); firewallRuleResponse = await CreateFirewallRule(firewallRuleResource, startIpAddress, endIpAddress); } if (firewallRuleResponse == null || !firewallRuleResponse.Created) { throw new FirewallRuleException(SR.FirewallRuleCreationFailed); } return(firewallRuleResponse); } catch (ServiceExceptionBase) { throw; } catch (Exception ex) { throw new FirewallRuleException(string.Format(CultureInfo.CurrentCulture, SR.FirewallRuleCreationFailedWithError, ex.Message), ex); } }
/// <summary> /// Creates firewall rule for given subscription and IP address range /// </summary> private async Task <FirewallRuleResponse> CreateFirewallRule(FirewallRuleResource firewallRuleResource, IPAddress startIpAddress, IPAddress endIpAddress) { CommonUtil.CheckForNull(firewallRuleResource, "firewallRuleResource"); try { if (firewallRuleResource.IsValid) { FirewallRuleRequest request = new FirewallRuleRequest() { StartIpAddress = startIpAddress, EndIpAddress = endIpAddress }; using (IAzureResourceManagementSession session = await ResourceManager.CreateSessionAsync(firewallRuleResource.SubscriptionContext)) { return(await ResourceManager.CreateFirewallRuleAsync( session, firewallRuleResource.AzureResource, request)); } } } catch (ServiceExceptionBase) { throw; } catch (Exception ex) { throw new FirewallRuleException(string.Format(CultureInfo.CurrentCulture, SR.FirewallRuleCreationFailedWithError, ex.Message), ex); } return(new FirewallRuleResponse() { Created = false }); }