revert: change from repr to string in changeset
Some checks failed
check code / check-code (push) Failing after 27s

Signed-off-by: Ivan Schaller <ivan@schaller.sh>
This commit is contained in:
Ivan Schaller 2024-03-01 22:48:14 +01:00
parent 696d2a2532
commit 8d29b5e639
2 changed files with 25 additions and 12 deletions

View file

@ -1,10 +1,22 @@
--- ---
? '' ? ''
: ttl: 172800 : - ttl: 172800
type: NS type: NS
values: values:
- ns1.example.com. - ns1.example.com.
- ns3.example.com. - ns2.example.com.
- type: TXT
value: v=spf1 include:example.com -all
_ts3._udp:
type: SRV
value:
port: 9987
priority: 0
target: example.com.
weight: 5
abc:
type: CNAME
value: def.example.com.
ns1: ns1:
type: A type: A
value: 192.168.1.1 value: 192.168.1.1

View file

@ -96,7 +96,7 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider):
return fixed return fixed
def _unescape_semicolon(self, value: str) -> str: def _unescape_semicolon(self, value: str) -> str:
fixed = value.replace(r"\;", ";") fixed = value.replace(r"\\", "\\").replace(r"\;", ";")
self.log.debug(rf"in='{value}', unescaped='{fixed}'") self.log.debug(rf"in='{value}', unescaped='{fixed}'")
return fixed return fixed
@ -317,18 +317,19 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider):
""" """
match change: match change:
case octodns.record.ValueMixin(): case octodns.record.ValueMixin():
changeset = {str(change.value)} changeset = {repr(change.value)[1:-1]}
case octodns.record.ValuesMixin(): case octodns.record.ValuesMixin():
changeset = {str(v) for v in change.values} changeset = {repr(v)[1:-1] for v in change.values}
case _: case _:
raise ValueError raise ValueError
if change._type not in ["TXT", "SPF"]: if change._type not in ["TXT", "SPF"]:
self.log.debug(f"{changeset=}")
return changeset return changeset
escaped_changeset = {self._unescape_semicolon(n) for n in changeset} unescaped_changeset = {self._unescape_semicolon(n) for n in changeset}
return escaped_changeset self.log.debug(f"{unescaped_changeset=}")
return unescaped_changeset
def _include_change(self, change: octodns.record.change.Change) -> bool: def _include_change(self, change: octodns.record.change.Change) -> bool:
"""filter out record types which the provider can't create in netbox """filter out record types which the provider can't create in netbox
@ -414,7 +415,7 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider):
nb_record.delete() nb_record.delete()
if nb_record.value in to_update: if nb_record.value in to_update:
self.log.debug( self.log.debug(
rf"MODIFY {nb_record.type} {nb_record.name} {nb_record.value}" rf"MODIFY (ttl) {nb_record.type} {nb_record.name} {nb_record.value}"
) )
nb_record.ttl = change.new.ttl nb_record.ttl = change.new.ttl
nb_record.save() nb_record.save()