Merge pull request #669 from rreichel3/rreichel3/lazy-load-azuredns-client

Modify Azure DNS Client logic to lazy load
This commit is contained in:
Ross McFarland
2021-02-02 12:45:53 -08:00
committed by GitHub
co-authored by GitHub
2 changed files with 28 additions and 6 deletions
+22 -4
View File
@@ -329,13 +329,31 @@ class AzureProvider(BaseProvider):
'key=***, directory_id:%s', id, client_id, directory_id)
super(AzureProvider, self).__init__(id, *args, **kwargs)
credentials = ServicePrincipalCredentials(
client_id, secret=key, tenant=directory_id
)
self._dns_client = DnsManagementClient(credentials, sub_id)
# Store necessary initialization params
self._dns_client_handle = None
self._dns_client_client_id = client_id
self._dns_client_key = key
self._dns_client_directory_id = directory_id
self._dns_client_subscription_id = sub_id
self.__dns_client = None
self._resource_group = resource_group
self._azure_zones = set()
@property
def _dns_client(self):
if self.__dns_client is None:
credentials = ServicePrincipalCredentials(
self._dns_client_client_id,
secret=self._dns_client_key,
tenant=self._dns_client_directory_id
)
self.__dns_client = DnsManagementClient(
credentials,
self._dns_client_subscription_id
)
return self.__dns_client
def _populate_zones(self):
self.log.debug('azure_zones: loading')
list_zones = self._dns_client.zones.list_by_resource_group
+6 -2
View File
@@ -388,8 +388,12 @@ class TestAzureDnsProvider(TestCase):
:type return: AzureProvider
'''
return AzureProvider('mock_id', 'mock_client', 'mock_key',
'mock_directory', 'mock_sub', 'mock_rg')
provider = AzureProvider('mock_id', 'mock_client', 'mock_key',
'mock_directory', 'mock_sub', 'mock_rg'
)
# Fetch the client to force it to load the creds
provider._dns_client
return provider
def test_populate_records(self):
provider = self._get_provider()