always normalize zones
This commit is contained in:
parent
96d4bff5ff
commit
f1f6602985
2 changed files with 27 additions and 5 deletions
|
@ -75,14 +75,19 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider):
|
|||
self.make_absolute = make_absolute
|
||||
self.disable_ptr = disable_ptr
|
||||
|
||||
def _make_absolute(self, value: str) -> str:
|
||||
def _make_absolute(self, value: str, force : bool = False) -> str:
|
||||
"""return dns name with trailing dot to make it absolute
|
||||
|
||||
@param value: dns record value
|
||||
|
||||
@param force: when `True`, disregard configuration option `make_absolute`
|
||||
|
||||
@return: absolute dns record value
|
||||
"""
|
||||
if not self.make_absolute or value.endswith("."):
|
||||
if value.endswith("."):
|
||||
return value
|
||||
|
||||
if not (self.make_absolute or force):
|
||||
return value
|
||||
|
||||
absolute_value = value + "."
|
||||
|
@ -438,5 +443,6 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider):
|
|||
"""
|
||||
query_params = {"status": "active", **self.nb_view}
|
||||
zones = self.api.plugins.netbox_dns.zones.filter(**query_params)
|
||||
zones = [self._make_absolute(z.name, True) for z in zones]
|
||||
|
||||
return sorted([self._make_absolute(z.name) for z in zones])
|
||||
return sorted(zones)
|
||||
|
|
|
@ -11,7 +11,7 @@ DEFAULT_CONFIG = {
|
|||
}
|
||||
|
||||
|
||||
def test1():
|
||||
def test_absolute():
|
||||
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
|
||||
rcd = "example.com"
|
||||
absolute = nbdns._make_absolute(rcd)
|
||||
|
@ -19,9 +19,25 @@ def test1():
|
|||
assert absolute == "example.com."
|
||||
|
||||
|
||||
def test2():
|
||||
def test_noop():
|
||||
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
|
||||
rcd = "example.com."
|
||||
absolute = nbdns._make_absolute(rcd)
|
||||
|
||||
assert absolute == "example.com."
|
||||
|
||||
def test_disabled():
|
||||
args = {**DEFAULT_CONFIG, "make_absolute": False}
|
||||
nbdns = NetBoxDNSProvider(**args)
|
||||
rcd = "example.com"
|
||||
relative = nbdns._make_absolute(rcd, force=False)
|
||||
|
||||
assert relative == "example.com"
|
||||
|
||||
def test_force():
|
||||
args = {**DEFAULT_CONFIG, "make_absolute": False}
|
||||
nbdns = NetBoxDNSProvider(**args)
|
||||
rcd = "example.com"
|
||||
absolute = nbdns._make_absolute(rcd, force=True)
|
||||
|
||||
assert absolute == "example.com."
|
Loading…
Reference in a new issue