diff options
Diffstat (limited to 'src/migration-scripts/quagga/8-to-9')
| -rw-r--r-- | src/migration-scripts/quagga/8-to-9 | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/src/migration-scripts/quagga/8-to-9 b/src/migration-scripts/quagga/8-to-9 index eece6c15d..4c7089c52 100644 --- a/src/migration-scripts/quagga/8-to-9 +++ b/src/migration-scripts/quagga/8-to-9 @@ -1,4 +1,4 @@ -# Copyright 2021-2024 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright VyOS maintainers and contributors <maintainers@vyos.io>  #  # This library is free software; you can redistribute it and/or  # modify it under the terms of the GNU Lesser General Public @@ -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) | 
