From bc485cbd6a798604d4873c8c4bb28c46a3b5ed2a Mon Sep 17 00:00:00 2001 From: Oleksandr Kuchmystyi Date: Tue, 27 Jan 2026 14:46:25 +0300 Subject: dns: T7924: Fix dns-dynamic migration error when `service` path is missing Handle absent `service dns dynamic address service` nodes during 1-to-2 migration to prevent ConfigTreeError. --- src/migration-scripts/dns-dynamic/1-to-2 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/migration-scripts') diff --git a/src/migration-scripts/dns-dynamic/1-to-2 b/src/migration-scripts/dns-dynamic/1-to-2 index 6398b902f..424d4fa85 100644 --- a/src/migration-scripts/dns-dynamic/1-to-2 +++ b/src/migration-scripts/dns-dynamic/1-to-2 @@ -51,8 +51,10 @@ def migrate(config: ConfigTree) -> None: # Migrate "service dns dynamic address service protocol dnsexit" # to "service dns dynamic address service protocol dnsexit2" for address in config.list_nodes(address_path): - for svc_cfg in config.list_nodes(address_path + [address, 'service']): - if config.exists(address_path + [address, 'service', svc_cfg, 'protocol']): - protocol = config.return_value(address_path + [address, 'service', svc_cfg, 'protocol']) - if protocol == 'dnsexit': - config.set(address_path + [address, 'service', svc_cfg, 'protocol'], 'dnsexit2') + service_path = address_path + [address, 'service'] + if config.exists(service_path): + for svc_cfg in config.list_nodes(service_path): + if config.exists(service_path + [svc_cfg, 'protocol']): + protocol = config.return_value(service_path + [svc_cfg, 'protocol']) + if protocol == 'dnsexit': + config.set(service_path + [svc_cfg, 'protocol'], 'dnsexit2') -- cgit v1.2.3