/// <summary> /// Returns a list of azure databases given subscription resource group name and server name /// </summary> /// <param name="azureResourceManagementSession">Subscription Context which includes credentials to use in the resource manager</param> /// <param name="resourceGroupName">Resource Group Name</param> /// <param name="serverName">Server name</param> /// <returns>The list of databases</returns> public async Task <IEnumerable <IAzureResource> > GetAzureDatabasesAsync( IAzureResourceManagementSession azureResourceManagementSession, string resourceGroupName, string serverName) { CommonUtil.CheckForNull(azureResourceManagementSession, "azureResourceManagerSession"); try { AzureResourceManagementSession vsAzureResourceManagementSession = azureResourceManagementSession as AzureResourceManagementSession; if (vsAzureResourceManagementSession != null) { IEnumerable <Database> databaseListResponse = await ExecuteCloudRequest( () => vsAzureResourceManagementSession.SqlManagementClient.Databases.ListByServerAsync(resourceGroupName, serverName), SR.FailedToGetAzureDatabasesErrorMessage); return(databaseListResponse.Select(x => new AzureResourceWrapper(x) { ResourceGroupName = resourceGroupName })); } } catch (Exception ex) { Logger.Write(LogLevel.Error, string.Format(CultureInfo.CurrentCulture, "Failed to get databases {0}", ex.Message)); throw; } return(null); }
/// <summary> /// Returns a list of azure servers given subscription /// </summary> /// <param name="azureResourceManagementSession">Subscription Context which includes credentials to use in the resource manager</param> /// <returns>The list of Sql server resources</returns> public async Task <IEnumerable <IAzureSqlServerResource> > GetSqlServerAzureResourcesAsync( IAzureResourceManagementSession azureResourceManagementSession) { CommonUtil.CheckForNull(azureResourceManagementSession, "azureResourceManagerSession"); List <IAzureSqlServerResource> sqlServers = new List <IAzureSqlServerResource>(); try { AzureResourceManagementSession vsAzureResourceManagementSession = azureResourceManagementSession as AzureResourceManagementSession; if (vsAzureResourceManagementSession != null) { IServersOperations serverOperations = vsAzureResourceManagementSession.SqlManagementClient.Servers; IPage <Server> servers = await ExecuteCloudRequest( () => serverOperations.ListAsync(), SR.FailedToGetAzureSqlServersWithError); if (servers != null) { sqlServers.AddRange(servers.Select(server => { var serverResource = new SqlAzureResource(server); // TODO ResourceGroup name return(serverResource); })); } } } catch (Exception ex) { TraceException(TraceEventType.Error, (int)TraceId.AzureResource, ex, "Failed to get servers"); throw; } return(sqlServers); }
public async Task <FirewallRuleResponse> CreateFirewallRuleAsync( IAzureResourceManagementSession azureResourceManagementSession, IAzureSqlServerResource azureSqlServer, FirewallRuleRequest firewallRuleRequest) { CommonUtil.CheckForNull(azureResourceManagementSession, "azureResourceManagerSession"); CommonUtil.CheckForNull(firewallRuleRequest, "firewallRuleRequest"); CommonUtil.CheckForNull(azureSqlServer, "azureSqlServer"); try { AzureResourceManagementSession vsAzureResourceManagementSession = azureResourceManagementSession as AzureResourceManagementSession; if (vsAzureResourceManagementSession != null) { var firewallRule = new RestFirewallRule() { EndIpAddress = firewallRuleRequest.EndIpAddress.ToString(), StartIpAddress = firewallRuleRequest.StartIpAddress.ToString() }; IFirewallRulesOperations firewallRuleOperations = vsAzureResourceManagementSession.SqlManagementClient.FirewallRules; var firewallRuleResponse = await ExecuteCloudRequest( () => firewallRuleOperations.CreateOrUpdateWithHttpMessagesAsync( azureSqlServer.ResourceGroupName ?? string.Empty, azureSqlServer.Name, firewallRuleRequest.FirewallRuleName, firewallRule, GetCustomHeaders()), SR.FirewallRuleCreationFailedWithError); var response = firewallRuleResponse.Body; return(new FirewallRuleResponse() { StartIpAddress = response.StartIpAddress, EndIpAddress = response.EndIpAddress, Created = true }); } // else respond with failure case return(new FirewallRuleResponse() { Created = false }); } catch (Exception ex) { TraceException(TraceEventType.Error, (int)TraceId.AzureResource, ex, "Failed to create firewall rule"); throw; } }