mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Merge pull request #669 from rreichel3/rreichel3/lazy-load-azuredns-client
Modify Azure DNS Client logic to lazy load
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user