Browse Source

handle broken alias to ATM for dynamic records

pull/724/head
Viranch Mehta 5 years ago
parent
commit
5a943f0b13
No known key found for this signature in database GPG Key ID: D83D1392AE9F93B4
2 changed files with 28 additions and 2 deletions
  1. +7
    -2
      octodns/provider/azuredns.py
  2. +21
    -0
      tests/test_octodns_provider_azuredns.py

+ 7
- 2
octodns/provider/azuredns.py View File

@ -613,8 +613,13 @@ class AzureProvider(BaseProvider):
:type return: dict
'''
if azrecord.cname_record is None and azrecord.target_resource.id:
return self._data_for_dynamic(azrecord)
if azrecord.cname_record is None:
if azrecord.target_resource.id:
return self._data_for_dynamic(azrecord)
else:
# dynamic record alias is broken, return dummy value and apply
# will likely overwrite/fix it
return {'value': 'iam.invalid.'}
return {'value': _check_endswith_dot(azrecord.cname_record.cname)}


+ 21
- 0
tests/test_octodns_provider_azuredns.py View File

@ -1677,6 +1677,27 @@ class TestAzureDnsProvider(TestCase):
dns_update.assert_not_called()
tm_delete.assert_called_once()
# both are dynamic but alias is broken
provider, existing, record1 = self._get_dynamic_package()
azrecord = RecordSet(
ttl=record1.ttl, target_resource=SubResource(id=None))
azrecord.name = record1.name or '@'
azrecord.type = 'Microsoft.Network/dnszones/{}'.format(record1._type)
record2 = provider._populate_record(zone, azrecord)
self.assertEqual(record2.value, 'iam.invalid.')
change = Update(record2, record1)
provider._apply_Update(change)
tm_sync, dns_update, tm_delete = (
provider._tm_client.profiles.create_or_update,
provider._dns_client.record_sets.create_or_update,
provider._tm_client.profiles.delete
)
tm_sync.assert_not_called()
dns_update.assert_called_once()
tm_delete.assert_not_called()
def test_apply_delete_dynamic(self):
provider, existing, record = self._get_dynamic_package()
provider._populate_traffic_managers()


Loading…
Cancel
Save