summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2025-06-18 15:37:12 -0500
committerJohn Estabrook <jestabro@vyos.io>2025-06-18 18:07:51 -0500
commitf7ce71b4e464582450eada5112cdfbd86f39436d (patch)
tree82f403cb0f86e7186cf5dd9971a5dbb68378b51c /src
parent5ae3924234f9ffaa2ffda7e9fc52c2b3518a85e2 (diff)
downloadvyos-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-918
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)