make some records absolute
This commit is contained in:
parent
ac395e84e2
commit
c77cef64ee
|
@ -11,6 +11,12 @@ import pynetbox.core.api
|
||||||
import pynetbox.core.response as pynb_resp
|
import pynetbox.core.response as pynb_resp
|
||||||
|
|
||||||
|
|
||||||
|
def make_absolute(value: str) -> str:
|
||||||
|
if value[-1] == ".":
|
||||||
|
return value
|
||||||
|
return value + "."
|
||||||
|
|
||||||
|
|
||||||
class NetBoxDNSSource(octodns.provider.base.BaseProvider):
|
class NetBoxDNSSource(octodns.provider.base.BaseProvider):
|
||||||
"""
|
"""
|
||||||
NetBoxDNS source for OctoDNS.
|
NetBoxDNS source for OctoDNS.
|
||||||
|
@ -125,10 +131,6 @@ class NetBoxDNSSource(octodns.provider.base.BaseProvider):
|
||||||
rcd_name: str = nb_record.name if nb_record.name != "@" else ""
|
rcd_name: str = nb_record.name if nb_record.name != "@" else ""
|
||||||
rcd_value: str = nb_record.value if nb_record.value != "@" else nb_record.zone.name
|
rcd_value: str = nb_record.value if nb_record.value != "@" else nb_record.zone.name
|
||||||
|
|
||||||
# make CNAME record absolute
|
|
||||||
if nb_record.type == "CNAME" and rcd_value[-1] != ".":
|
|
||||||
rcd_value = rcd_value + "."
|
|
||||||
|
|
||||||
if nb_record.ttl:
|
if nb_record.ttl:
|
||||||
nb_ttl = nb_record.ttl
|
nb_ttl = nb_record.ttl
|
||||||
elif nb_record.type == "NS":
|
elif nb_record.type == "NS":
|
||||||
|
@ -147,7 +149,10 @@ class NetBoxDNSSource(octodns.provider.base.BaseProvider):
|
||||||
case "A" | "AAAA":
|
case "A" | "AAAA":
|
||||||
value = rdata.address
|
value = rdata.address
|
||||||
|
|
||||||
case "CNAME" | "DNAME" | "NS" | "PTR":
|
case "CNAME":
|
||||||
|
value = make_absolute(rdata.target.to_text())
|
||||||
|
|
||||||
|
case "DNAME" | "NS" | "PTR":
|
||||||
value = rdata.target.to_text()
|
value = rdata.target.to_text()
|
||||||
|
|
||||||
case "CAA":
|
case "CAA":
|
||||||
|
@ -176,7 +181,7 @@ class NetBoxDNSSource(octodns.provider.base.BaseProvider):
|
||||||
case "MX":
|
case "MX":
|
||||||
value = {
|
value = {
|
||||||
"preference": rdata.preference,
|
"preference": rdata.preference,
|
||||||
"exchange": rdata.exchange.to_text(),
|
"exchange": make_absolute(rdata.exchange.to_text()),
|
||||||
}
|
}
|
||||||
|
|
||||||
case "NAPTR":
|
case "NAPTR":
|
||||||
|
@ -208,7 +213,7 @@ class NetBoxDNSSource(octodns.provider.base.BaseProvider):
|
||||||
"priority": rdata.priority,
|
"priority": rdata.priority,
|
||||||
"weight": rdata.weight,
|
"weight": rdata.weight,
|
||||||
"port": rdata.port,
|
"port": rdata.port,
|
||||||
"target": rdata.target.to_text(),
|
"target": make_absolute(rdata.target.to_text()),
|
||||||
}
|
}
|
||||||
|
|
||||||
case _:
|
case _:
|
||||||
|
|
Loading…
Reference in New Issue