1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

Use null/empty instead of garbage values to invalidate broken dynamic records

This commit is contained in:
Viranch Mehta
2021-10-21 13:24:45 -07:00
parent 6d4461e6d9
commit 5b93048e07
2 changed files with 24 additions and 30 deletions

View File

@@ -650,14 +650,12 @@ class AzureProvider(BaseProvider):
if azrecord.a_records 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
self.log.warn('_data_for_A: Missing Traffic Manager '
'alias for dynamic A record %s, forcing '
're-link by setting an invalid value',
azrecord.fqdn)
return {'values': ['255.255.255.255']}
# dynamic record alias is broken, return dummy value and apply
# will likely overwrite/fix it
self.log.warn('_data_for_A: Missing Traffic Manager alias for '
'dynamic record %s', azrecord.fqdn)
return {'values': []}
return {'values': [ar.ipv4_address for ar in azrecord.a_records]}
@@ -665,14 +663,12 @@ class AzureProvider(BaseProvider):
if azrecord.aaaa_records 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
self.log.warn('_data_for_AAAA: Missing Traffic Manager '
'alias for dynamic AAAA record %s, forcing '
're-link by setting an invalid value',
azrecord.fqdn)
return {'values': ['::1']}
# dynamic record alias is broken, return dummy value and apply
# will likely overwrite/fix it
self.log.warn('_data_for_AAAA: Missing Traffic Manager alias for '
'dynamic record %s', azrecord.fqdn)
return {'values': []}
return {'values': [ar.ipv6_address for ar in azrecord.aaaa_records]}
@@ -692,14 +688,12 @@ class AzureProvider(BaseProvider):
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
self.log.warn('_data_for_CNAME: Missing Traffic Manager '
'alias for dynamic CNAME record %s, forcing '
're-link by setting an invalid value',
azrecord.fqdn)
return {'value': 'iam.invalid.'}
# dynamic record alias is broken, return dummy value and apply
# will likely overwrite/fix it
self.log.warn('_data_for_CNAME: Missing Traffic Manager alias for '
'dynamic record %s', azrecord.fqdn)
return {'value': None}
return {'value': _check_endswith_dot(azrecord.cname_record.cname)}

View File

@@ -1934,8 +1934,8 @@ class TestAzureDnsProvider(TestCase):
ttl=60, target_resource=SubResource(id=None))
azrecord.name = record.name or '@'
azrecord.type = f'Microsoft.Network/dnszones/{record._type}'
record2 = provider._populate_record(zone, azrecord)
self.assertEqual(record2.values, ['255.255.255.255'])
record2 = provider._populate_record(zone, azrecord, lenient=True)
self.assertEqual(record2.values, [])
# test that same record gets populated back from traffic managers
tm_list = provider._tm_client.profiles.list_by_resource_group
@@ -2016,8 +2016,8 @@ class TestAzureDnsProvider(TestCase):
ttl=60, target_resource=SubResource(id=None))
azrecord.name = record.name or '@'
azrecord.type = f'Microsoft.Network/dnszones/{record._type}'
record2 = provider._populate_record(zone, azrecord)
self.assertEqual(record2.values, ['::1'])
record2 = provider._populate_record(zone, azrecord, lenient=True)
self.assertEqual(record2.values, [])
# test that same record gets populated back from traffic managers
tm_list = provider._tm_client.profiles.list_by_resource_group
@@ -2259,8 +2259,8 @@ class TestAzureDnsProvider(TestCase):
azrecord.name = record1.name or '@'
azrecord.type = f'Microsoft.Network/dnszones/{record1._type}'
record2 = provider._populate_record(zone, azrecord)
self.assertEqual(record2.value, 'iam.invalid.')
record2 = provider._populate_record(zone, azrecord, lenient=True)
self.assertIsNone(record2.value)
change = Update(record2, record1)
provider._apply_Update(change)