Compare commits
2 commits
96d4bff5ff
...
9efd4faea1
Author | SHA1 | Date | |
---|---|---|---|
9efd4faea1 | |||
|
f1f6602985 |
2 changed files with 28 additions and 5 deletions
|
@ -75,14 +75,18 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider):
|
||||||
self.make_absolute = make_absolute
|
self.make_absolute = make_absolute
|
||||||
self.disable_ptr = disable_ptr
|
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
|
"""return dns name with trailing dot to make it absolute
|
||||||
|
|
||||||
@param value: dns record value
|
@param value: dns record value
|
||||||
|
@param force: when `True`, disregard configuration option `make_absolute`
|
||||||
|
|
||||||
@return: absolute dns record value
|
@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
|
return value
|
||||||
|
|
||||||
absolute_value = value + "."
|
absolute_value = value + "."
|
||||||
|
@ -438,5 +442,6 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider):
|
||||||
"""
|
"""
|
||||||
query_params = {"status": "active", **self.nb_view}
|
query_params = {"status": "active", **self.nb_view}
|
||||||
zones = self.api.plugins.netbox_dns.zones.filter(**query_params)
|
zones = self.api.plugins.netbox_dns.zones.filter(**query_params)
|
||||||
|
absolute_zones = [self._make_absolute(z.name, True) for z in zones]
|
||||||
|
|
||||||
return sorted([self._make_absolute(z.name) for z in zones])
|
return sorted(absolute_zones)
|
||||||
|
|
|
@ -11,7 +11,7 @@ DEFAULT_CONFIG = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def test1():
|
def test_absolute():
|
||||||
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
|
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
|
||||||
rcd = "example.com"
|
rcd = "example.com"
|
||||||
absolute = nbdns._make_absolute(rcd)
|
absolute = nbdns._make_absolute(rcd)
|
||||||
|
@ -19,9 +19,27 @@ def test1():
|
||||||
assert absolute == "example.com."
|
assert absolute == "example.com."
|
||||||
|
|
||||||
|
|
||||||
def test2():
|
def test_noop():
|
||||||
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
|
nbdns = NetBoxDNSProvider(**DEFAULT_CONFIG)
|
||||||
rcd = "example.com."
|
rcd = "example.com."
|
||||||
absolute = nbdns._make_absolute(rcd)
|
absolute = nbdns._make_absolute(rcd)
|
||||||
|
|
||||||
assert absolute == "example.com."
|
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