Browse Source

Use Zone.root_ns to avoid lookping/searching

pull/876/head
Ross McFarland 4 years ago
parent
commit
14fc137788
No known key found for this signature in database GPG Key ID: 943B179E15D3B22A
2 changed files with 19 additions and 17 deletions
  1. +17
    -17
      octodns/provider/base.py
  2. +2
    -0
      tests/test_octodns_manager.py

+ 17
- 17
octodns/provider/base.py View File

@ -94,14 +94,15 @@ class BaseProvider(BaseSource):
record = record.copy() record = record.copy()
record.values = [record.value] record.values = [record.value]
desired.add_record(record, replace=True) desired.add_record(record, replace=True)
elif record._type == 'NS' and record.name == '' and \
not self.SUPPORTS_ROOT_NS:
# ignore, we can't manage root NS records
msg = \
f'root NS record not supported for {record.fqdn}'
fallback = 'ignoring it'
self.supports_warn_or_except(msg, fallback)
desired.remove_record(record)
record = desired.root_ns
if record and not self.SUPPORTS_ROOT_NS:
# ignore, we can't manage root NS records
msg = \
f'root NS record not supported for {record.fqdn}'
fallback = 'ignoring it'
self.supports_warn_or_except(msg, fallback)
desired.remove_record(record)
return desired return desired
@ -124,15 +125,14 @@ class BaseProvider(BaseSource):
provider configuration. provider configuration.
''' '''
for record in existing.records:
if record._type == 'NS' and record.name == '' and \
not self.SUPPORTS_ROOT_NS:
# ignore, we can't manage root NS records
msg = \
f'root NS record not supported for {record.fqdn}'
fallback = 'ignoring it'
self.supports_warn_or_except(msg, fallback)
existing.remove_record(record)
record = existing.root_ns
if record and not self.SUPPORTS_ROOT_NS:
# ignore, we can't manage root NS records
msg = \
f'root NS record not supported for {record.fqdn}'
fallback = 'ignoring it'
self.supports_warn_or_except(msg, fallback)
existing.remove_record(record)
return existing return existing


+ 2
- 0
tests/test_octodns_manager.py View File

@ -216,6 +216,8 @@ class TestManager(TestCase):
with open(join(tmpdir.dirname, 'unit.tests.yaml'), 'w') as fh: with open(join(tmpdir.dirname, 'unit.tests.yaml'), 'w') as fh:
fh.write('---\n{}') fh.write('---\n{}')
# compare doesn't use _process_desired_zone and thus doesn't filter
# out root NS records, that seems fine/desirable
changes = manager.compare(['in'], ['dump'], 'unit.tests.') changes = manager.compare(['in'], ['dump'], 'unit.tests.')
self.assertEqual(21, len(changes)) self.assertEqual(21, len(changes))


Loading…
Cancel
Save