From 8d29b5e639b25bb57b43e9e85bbe78e51d70b493 Mon Sep 17 00:00:00 2001 From: Ivan Schaller Date: Fri, 1 Mar 2024 22:48:14 +0100 Subject: [PATCH] revert: change from repr to string in changeset Signed-off-by: Ivan Schaller --- dev/zones/example.com.yaml | 22 +++++++++++++++++----- src/octodns_netbox_dns/__init__.py | 15 ++++++++------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/dev/zones/example.com.yaml b/dev/zones/example.com.yaml index a3c3971..24f2633 100644 --- a/dev/zones/example.com.yaml +++ b/dev/zones/example.com.yaml @@ -1,10 +1,22 @@ --- ? '' -: ttl: 172800 - type: NS - values: - - ns1.example.com. - - ns3.example.com. +: - ttl: 172800 + type: NS + values: + - ns1.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: type: A value: 192.168.1.1 diff --git a/src/octodns_netbox_dns/__init__.py b/src/octodns_netbox_dns/__init__.py index 55f8ce6..d2db2d8 100644 --- a/src/octodns_netbox_dns/__init__.py +++ b/src/octodns_netbox_dns/__init__.py @@ -96,7 +96,7 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider): return fixed 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}'") return fixed @@ -317,18 +317,19 @@ class NetBoxDNSProvider(octodns.provider.base.BaseProvider): """ match change: case octodns.record.ValueMixin(): - changeset = {str(change.value)} + changeset = {repr(change.value)[1:-1]} case octodns.record.ValuesMixin(): - changeset = {str(v) for v in change.values} - + changeset = {repr(v)[1:-1] for v in change.values} case _: raise ValueError if change._type not in ["TXT", "SPF"]: + self.log.debug(f"{changeset=}") return changeset - escaped_changeset = {self._unescape_semicolon(n) for n in changeset} - return escaped_changeset + unescaped_changeset = {self._unescape_semicolon(n) for n in changeset} + self.log.debug(f"{unescaped_changeset=}") + return unescaped_changeset def _include_change(self, change: octodns.record.change.Change) -> bool: """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() if nb_record.value in to_update: 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.save()