mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Merge pull request #984 from dethmetaljeff/je/arpa-matching-fix
prepend zone_name with . to ensure it matches on address boundary
This commit is contained in:
@@ -54,7 +54,7 @@ class AutoArpa(BaseProcessor):
|
|||||||
zone_name = zone.name
|
zone_name = zone.name
|
||||||
n = len(zone_name) + 1
|
n = len(zone_name) + 1
|
||||||
for arpa, fqdns in self._records.items():
|
for arpa, fqdns in self._records.items():
|
||||||
if arpa.endswith(zone_name):
|
if arpa.endswith(f'.{zone_name}'):
|
||||||
name = arpa[:-n]
|
name = arpa[:-n]
|
||||||
fqdns = sorted(fqdns)
|
fqdns = sorted(fqdns)
|
||||||
record = Record.new(
|
record = Record.new(
|
||||||
|
|||||||
@@ -201,3 +201,29 @@ class TestAutoArpa(TestCase):
|
|||||||
self.assertEqual('4.3.2.1.in-addr.arpa.', ptr.fqdn)
|
self.assertEqual('4.3.2.1.in-addr.arpa.', ptr.fqdn)
|
||||||
self.assertEqual([record1.fqdn, record2.fqdn], ptr.values)
|
self.assertEqual([record1.fqdn, record2.fqdn], ptr.values)
|
||||||
self.assertEqual(3600, ptr.ttl)
|
self.assertEqual(3600, ptr.ttl)
|
||||||
|
|
||||||
|
def test_address_boundaries(self):
|
||||||
|
zone = Zone('unit.tests.', [])
|
||||||
|
record = Record.new(
|
||||||
|
zone, 'a', {'ttl': 32, 'type': 'A', 'value': '10.20.3.4'}
|
||||||
|
)
|
||||||
|
zone.add_record(record)
|
||||||
|
aa = AutoArpa('auto-arpa')
|
||||||
|
aa.process_source_zone(zone, [])
|
||||||
|
self.assertEqual(
|
||||||
|
{'4.3.20.10.in-addr.arpa.': {'a.unit.tests.'}}, aa._records
|
||||||
|
)
|
||||||
|
|
||||||
|
# matching zone
|
||||||
|
arpa = Zone('20.10.in-addr.arpa.', [])
|
||||||
|
aa.populate(arpa)
|
||||||
|
self.assertEqual(1, len(arpa.records))
|
||||||
|
(ptr,) = arpa.records
|
||||||
|
self.assertEqual('4.3.20.10.in-addr.arpa.', ptr.fqdn)
|
||||||
|
self.assertEqual(record.fqdn, ptr.value)
|
||||||
|
self.assertEqual(3600, ptr.ttl)
|
||||||
|
|
||||||
|
# non-matching boundary edge case
|
||||||
|
arpa = Zone('0.10.in-addr.arpa.', [])
|
||||||
|
aa.populate(arpa)
|
||||||
|
self.assertEqual(0, len(arpa.records))
|
||||||
|
|||||||
Reference in New Issue
Block a user