From 78eb4724a054f58bd1e958a4c442121d11666f84 Mon Sep 17 00:00:00 2001 From: Zim Kalinowski Date: Thu, 30 Aug 2018 12:44:36 +0800 Subject: [PATCH] Adding sql client to common (#44825) --- lib/ansible/module_utils/azure_rm_common.py | 10 ++++++++ .../cloud/azure/azure_rm_sqldatabase.py | 24 ++++++++----------- .../modules/cloud/azure/azure_rm_sqlserver.py | 18 ++++++-------- .../cloud/azure/azure_rm_sqlserver_facts.py | 9 +++---- 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/lib/ansible/module_utils/azure_rm_common.py b/lib/ansible/module_utils/azure_rm_common.py index fb97186b54..b4eb4d37a9 100644 --- a/lib/ansible/module_utils/azure_rm_common.py +++ b/lib/ansible/module_utils/azure_rm_common.py @@ -153,6 +153,7 @@ try: from azure.mgmt.trafficmanager import TrafficManagerManagementClient from azure.storage.cloudstorageaccount import CloudStorageAccount from adal.authentication_context import AuthenticationContext + from azure.mgmt.sql import SqlManagementClient from azure.mgmt.rdbms.postgresql import PostgreSQLManagementClient from azure.mgmt.rdbms.mysql import MySQLManagementClient from azure.mgmt.containerregistry import ContainerRegistryManagementClient @@ -283,6 +284,7 @@ class AzureRMModuleBase(object): self._web_client = None self._marketplace_client = None self._containerservice_client = None + self._sql_client = None self._mysql_client = None self._postgresql_client = None self._containerregistry_client = None @@ -1073,6 +1075,14 @@ class AzureRMModuleBase(object): base_url=self._cloud_environment.endpoints.resource_manager) return self._containerservice_client + @property + def sql_client(self): + self.log('Getting SQL client') + if not self._sql_client: + self._sql_client = self.get_mgmt_svc_client(SqlManagementClient, + base_url=self._cloud_environment.endpoints.resource_manager) + return self._sql_client + @property def postgresql_client(self): self.log('Getting PostgreSQL client') diff --git a/lib/ansible/modules/cloud/azure/azure_rm_sqldatabase.py b/lib/ansible/modules/cloud/azure/azure_rm_sqldatabase.py index 345da65368..cf9328d748 100644 --- a/lib/ansible/modules/cloud/azure/azure_rm_sqldatabase.py +++ b/lib/ansible/modules/cloud/azure/azure_rm_sqldatabase.py @@ -303,7 +303,6 @@ class AzureRMDatabases(AzureRMModuleBase): self.parameters = dict() self.results = dict(changed=False) - self.mgmt_client = None self.state = None self.to_do = Actions.NoAction @@ -351,9 +350,6 @@ class AzureRMDatabases(AzureRMModuleBase): old_response = None response = None - self.mgmt_client = self.get_mgmt_svc_client(SqlManagementClient, - base_url=self._cloud_environment.endpoints.resource_manager) - resource_group = self.get_resource_group(self.resource_group) if "location" not in self.parameters: @@ -432,10 +428,10 @@ class AzureRMDatabases(AzureRMModuleBase): self.log("Creating / Updating the SQL Database instance {0}".format(self.name)) try: - response = self.mgmt_client.databases.create_or_update(resource_group_name=self.resource_group, - server_name=self.server_name, - database_name=self.name, - parameters=self.parameters) + response = self.sql_client.databases.create_or_update(resource_group_name=self.resource_group, + server_name=self.server_name, + database_name=self.name, + parameters=self.parameters) if isinstance(response, AzureOperationPoller): response = self.get_poller_result(response) @@ -452,9 +448,9 @@ class AzureRMDatabases(AzureRMModuleBase): ''' self.log("Deleting the SQL Database instance {0}".format(self.name)) try: - response = self.mgmt_client.databases.delete(resource_group_name=self.resource_group, - server_name=self.server_name, - database_name=self.name) + response = self.sql_client.databases.delete(resource_group_name=self.resource_group, + server_name=self.server_name, + database_name=self.name) except CloudError as e: self.log('Error attempting to delete the SQL Database instance.') self.fail("Error deleting the SQL Database instance: {0}".format(str(e))) @@ -470,9 +466,9 @@ class AzureRMDatabases(AzureRMModuleBase): self.log("Checking if the SQL Database instance {0} is present".format(self.name)) found = False try: - response = self.mgmt_client.databases.get(resource_group_name=self.resource_group, - server_name=self.server_name, - database_name=self.name) + response = self.sql_client.databases.get(resource_group_name=self.resource_group, + server_name=self.server_name, + database_name=self.name) found = True self.log("Response : {0}".format(response)) self.log("SQL Database instance : {0} found".format(response.name)) diff --git a/lib/ansible/modules/cloud/azure/azure_rm_sqlserver.py b/lib/ansible/modules/cloud/azure/azure_rm_sqlserver.py index 46c833f6fa..fa74d286b0 100644 --- a/lib/ansible/modules/cloud/azure/azure_rm_sqlserver.py +++ b/lib/ansible/modules/cloud/azure/azure_rm_sqlserver.py @@ -165,7 +165,6 @@ class AzureRMServers(AzureRMModuleBase): self.parameters = dict() self.results = dict(changed=False) - self.mgmt_client = None self.state = None self.to_do = Actions.NoAction @@ -195,9 +194,6 @@ class AzureRMServers(AzureRMModuleBase): response = None results = dict() - self.mgmt_client = self.get_mgmt_svc_client(SqlManagementClient, - base_url=self._cloud_environment.endpoints.resource_manager) - resource_group = self.get_resource_group(self.resource_group) if "location" not in self.parameters: @@ -268,9 +264,9 @@ class AzureRMServers(AzureRMModuleBase): self.log("Creating / Updating the SQL Server instance {0}".format(self.name)) try: - response = self.mgmt_client.servers.create_or_update(self.resource_group, - self.name, - self.parameters) + response = self.sql_client.servers.create_or_update(self.resource_group, + self.name, + self.parameters) if isinstance(response, AzureOperationPoller): response = self.get_poller_result(response) @@ -287,8 +283,8 @@ class AzureRMServers(AzureRMModuleBase): ''' self.log("Deleting the SQL Server instance {0}".format(self.name)) try: - response = self.mgmt_client.servers.delete(self.resource_group, - self.name) + response = self.sql_client.servers.delete(self.resource_group, + self.name) except CloudError as e: self.log('Error attempting to delete the SQL Server instance.') self.fail("Error deleting the SQL Server instance: {0}".format(str(e))) @@ -304,8 +300,8 @@ class AzureRMServers(AzureRMModuleBase): self.log("Checking if the SQL Server instance {0} is present".format(self.name)) found = False try: - response = self.mgmt_client.servers.get(self.resource_group, - self.name) + response = self.sql_client.servers.get(self.resource_group, + self.name) found = True self.log("Response : {0}".format(response)) self.log("SQL Server instance : {0} found".format(response.name)) diff --git a/lib/ansible/modules/cloud/azure/azure_rm_sqlserver_facts.py b/lib/ansible/modules/cloud/azure/azure_rm_sqlserver_facts.py index 3a22f1bc48..139fec0a6f 100644 --- a/lib/ansible/modules/cloud/azure/azure_rm_sqlserver_facts.py +++ b/lib/ansible/modules/cloud/azure/azure_rm_sqlserver_facts.py @@ -139,7 +139,6 @@ class AzureRMServersFacts(AzureRMModuleBase): changed=False, ansible_facts=dict() ) - self.mgmt_client = None self.resource_group = None self.server_name = None super(AzureRMServersFacts, self).__init__(self.module_arg_spec) @@ -147,8 +146,6 @@ class AzureRMServersFacts(AzureRMModuleBase): def exec_module(self, **kwargs): for key in self.module_arg_spec: setattr(self, key, kwargs[key]) - self.mgmt_client = self.get_mgmt_svc_client(SqlManagementClient, - base_url=self._cloud_environment.endpoints.resource_manager) if (self.resource_group is not None and self.server_name is not None): @@ -166,8 +163,8 @@ class AzureRMServersFacts(AzureRMModuleBase): response = None results = {} try: - response = self.mgmt_client.servers.get(resource_group_name=self.resource_group, - server_name=self.server_name) + response = self.sql_client.servers.get(resource_group_name=self.resource_group, + server_name=self.server_name) self.log("Response : {0}".format(response)) except CloudError as e: self.log('Could not get facts for Servers.') @@ -186,7 +183,7 @@ class AzureRMServersFacts(AzureRMModuleBase): response = None results = {} try: - response = self.mgmt_client.servers.list_by_resource_group(resource_group_name=self.resource_group) + response = self.sql_client.servers.list_by_resource_group(resource_group_name=self.resource_group) self.log("Response : {0}".format(response)) except CloudError as e: self.log('Could not get facts for Servers.')