Browse Source

Implement populate exists for AzureProvider

pull/177/head
Ross McFarland 8 years ago
parent
commit
720e8eb434
No known key found for this signature in database GPG Key ID: 61C10C4FC8FE4A89
2 changed files with 10 additions and 3 deletions
  1. +6
    -1
      octodns/provider/azuredns.py
  2. +4
    -2
      tests/test_octodns_provider_azuredns.py

+ 6
- 1
octodns/provider/azuredns.py View File

@ -322,6 +322,8 @@ class AzureProvider(BaseProvider):
:type return: void :type return: void
''' '''
self.log.debug('populate: name=%s', zone.name) self.log.debug('populate: name=%s', zone.name)
exists = False
before = len(zone.records) before = len(zone.records)
zone_name = zone.name[:len(zone.name) - 1] zone_name = zone.name[:len(zone.name) - 1]
@ -331,6 +333,7 @@ class AzureProvider(BaseProvider):
_records = set() _records = set()
records = self._dns_client.record_sets.list_by_dns_zone records = self._dns_client.record_sets.list_by_dns_zone
if self._check_zone(zone_name): if self._check_zone(zone_name):
exists = True
for azrecord in records(self._resource_group, zone_name): for azrecord in records(self._resource_group, zone_name):
if _parse_azure_type(azrecord.type) in self.SUPPORTS: if _parse_azure_type(azrecord.type) in self.SUPPORTS:
_records.add(azrecord) _records.add(azrecord)
@ -344,7 +347,9 @@ class AzureProvider(BaseProvider):
record = Record.new(zone, record_name, data, source=self) record = Record.new(zone, record_name, data, source=self)
zone.add_record(record) zone.add_record(record)
self.log.info('populate: found %s records', len(zone.records) - before)
self.log.info('populate: found %s records, exists=%s',
len(zone.records) - before, exists)
return exists
def _data_for_A(self, azrecord): def _data_for_A(self, azrecord):
return {'values': [ar.ipv4_address for ar in azrecord.arecords]} return {'values': [ar.ipv4_address for ar in azrecord.arecords]}


+ 4
- 2
tests/test_octodns_provider_azuredns.py View File

@ -302,7 +302,8 @@ class TestAzureDnsProvider(TestCase):
record_list = provider._dns_client.record_sets.list_by_dns_zone record_list = provider._dns_client.record_sets.list_by_dns_zone
record_list.return_value = rs record_list.return_value = rs
provider.populate(zone)
exists = provider.populate(zone)
self.assertTrue(exists)
self.assertEquals(len(zone.records), 16) self.assertEquals(len(zone.records), 16)
@ -377,6 +378,7 @@ class TestAzureDnsProvider(TestCase):
_get = provider._dns_client.zones.get _get = provider._dns_client.zones.get
_get.side_effect = CloudError(Mock(status=404), err_msg) _get.side_effect = CloudError(Mock(status=404), err_msg)
provider.populate(Zone('unit3.test.', []))
exists = provider.populate(Zone('unit3.test.', []))
self.assertFalse(exists)
self.assertEquals(len(zone.records), 0) self.assertEquals(len(zone.records), 0)

Loading…
Cancel
Save