diff options
| author | Oleksandr Kuchmystyi <o.kuchmystyi@vyos.io> | 2026-01-27 14:46:25 +0300 |
|---|---|---|
| committer | Oleksandr Kuchmystyi <o.kuchmystyi@vyos.io> | 2026-02-10 13:00:27 +0300 |
| commit | bc485cbd6a798604d4873c8c4bb28c46a3b5ed2a (patch) | |
| tree | 7e47f003ab9647a1219e8d41f2ee490208b87e66 /src/migration-scripts/dns-dynamic | |
| parent | 911f8653a813868f2cf805a3a1662eaf16375188 (diff) | |
| download | vyos-1x-bc485cbd6a798604d4873c8c4bb28c46a3b5ed2a.tar.gz vyos-1x-bc485cbd6a798604d4873c8c4bb28c46a3b5ed2a.zip | |
dns: T7924: Fix dns-dynamic migration error when `service` path is missing
Handle absent `service dns dynamic address <iface> service` nodes
during 1-to-2 migration to prevent ConfigTreeError.
Diffstat (limited to 'src/migration-scripts/dns-dynamic')
| -rw-r--r-- | src/migration-scripts/dns-dynamic/1-to-2 | 12 |
1 files changed, 7 insertions, 5 deletions
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 <interface> service <service> protocol dnsexit" # to "service dns dynamic address <interface> service <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') |
