From db09fd70be7507d5490abb8d5a2e49df638a2d0b Mon Sep 17 00:00:00 2001 From: d_ev Date: Wed, 15 Jul 2026 22:38:08 +0300 Subject: [PATCH] Fix get_or_create tuple unpacking in catalog_zone_manager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v1.5.6 fixed the wrong RelatedObjectDoesNotExist import and the catz member-identifier creation, but two get_or_create() calls still used the returned value directly instead of unpacking the (obj, created) tuple: - increment_soa_serial(): `soa_serial_obj.value` on a tuple - _create_soa_rdataset(): `.get_or_create(...).value` on a tuple Both raised `'tuple' object has no attribute 'value'` at runtime — the first on every zone save, the second on every catalog-zone (catz) query. Unpack the tuple in both places. --- netbox_dns_bridge/catalog_zone_manager.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/netbox_dns_bridge/catalog_zone_manager.py b/netbox_dns_bridge/catalog_zone_manager.py index 162fb1e..d5d43cf 100644 --- a/netbox_dns_bridge/catalog_zone_manager.py +++ b/netbox_dns_bridge/catalog_zone_manager.py @@ -15,7 +15,7 @@ LOGGER = get_logger(__name__) def increment_soa_serial() -> int: with transaction.atomic(): try: - soa_serial_obj = ( + soa_serial_obj, _ = ( IntegerKeyValueSetting.objects.select_for_update().get_or_create( key="catalog-zone-soa-serial", defaults={"value": 1}, @@ -137,9 +137,10 @@ def update_member_identifier(zone: NBZone) -> None: def _create_soa_rdataset() -> dns.rdataset: try: - serial = IntegerKeyValueSetting.objects.get_or_create( + serial_obj, _ = IntegerKeyValueSetting.objects.get_or_create( key="catalog-zone-soa-serial", defaults={"value": 1} - ).value + ) + serial = serial_obj.value # SOA Record components ttl = 0