diff options
author | John Estabrook <jestabro@vyos.io> | 2025-06-18 15:37:12 -0500 |
---|---|---|
committer | John Estabrook <jestabro@vyos.io> | 2025-06-18 18:07:51 -0500 |
commit | f7ce71b4e464582450eada5112cdfbd86f39436d (patch) | |
tree | 82f403cb0f86e7186cf5dd9971a5dbb68378b51c /src | |
parent | 5ae3924234f9ffaa2ffda7e9fc52c2b3518a85e2 (diff) | |
download | vyos-1x-f7ce71b4e464582450eada5112cdfbd86f39436d.tar.gz vyos-1x-f7ce71b4e464582450eada5112cdfbd86f39436d.zip |
migration: T6968: check for ip address as next-hop-interface in 1.3.x
1.3.x did not disallow an ip address as value of:
protocols static route addr next-hop-interface
Consequently, the case should be checked and handled during migration.
Diffstat (limited to 'src')
-rw-r--r-- | src/migration-scripts/quagga/8-to-9 | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/migration-scripts/quagga/8-to-9 b/src/migration-scripts/quagga/8-to-9 index eece6c15d..c28e07e5c 100644 --- a/src/migration-scripts/quagga/8-to-9 +++ b/src/migration-scripts/quagga/8-to-9 @@ -16,6 +16,7 @@ # - T2450: drop interface-route and interface-route6 from "protocols static" from vyos.configtree import ConfigTree +from vyos.template import is_ip def migrate_interface_route(config, base, path, route_route6): """ Generic migration function which can be called on every instance of @@ -31,11 +32,18 @@ def migrate_interface_route(config, base, path, route_route6): tmp = base + path + [route, 'next-hop-interface'] for interface in config.list_nodes(tmp): - new_base = base + [route_route6, route, 'interface'] - config.set(new_base) - config.set_tag(base + [route_route6]) - config.set_tag(new_base) - config.copy(tmp + [interface], new_base + [interface]) + if is_ip(interface): # not prohibited in 1.3.x, hence allowed + new_base = base + [route_route6, route, 'next-hop'] + config.set(new_base) + config.set_tag(base + [route_route6]) + config.set_tag(new_base) + config.copy(tmp + [interface], new_base + [interface]) + else: + new_base = base + [route_route6, route, 'interface'] + config.set(new_base) + config.set_tag(base + [route_route6]) + config.set_tag(new_base) + config.copy(tmp + [interface], new_base + [interface]) config.delete(base + path) |