diff options
Diffstat (limited to 'src/migration-scripts/ospf')
| -rwxr-xr-x | src/migration-scripts/ospf/0-to-1 | 33 | 
1 files changed, 31 insertions, 2 deletions
| diff --git a/src/migration-scripts/ospf/0-to-1 b/src/migration-scripts/ospf/0-to-1 index ff3a84b2c..678569d9e 100755 --- a/src/migration-scripts/ospf/0-to-1 +++ b/src/migration-scripts/ospf/0-to-1 @@ -19,6 +19,24 @@  from sys import argv  from vyos.configtree import ConfigTree +def ospf_passive_migration(config, ospf_base): +    if config.exists(ospf_base): +        if config.exists(ospf_base + ['passive-interface']): +            default = False +            for interface in config.return_values(ospf_base + ['passive-interface']): +                if interface == 'default': +                    default = True +                    continue +                config.set(ospf_base + ['interface', interface, 'passive']) + +            config.delete(ospf_base + ['passive-interface']) +            config.set(ospf_base + ['passive-interface'], value='default') + +        if config.exists(ospf_base + ['passive-interface-exclude']): +            for interface in config.return_values(ospf_base + ['passive-interface-exclude']): +                config.set(ospf_base + ['interface', interface, 'passive', 'disable']) +            config.delete(ospf_base + ['passive-interface-exclude']) +  if (len(argv) < 1):      print("Must specify file name!")      exit(1) @@ -28,9 +46,9 @@ file_name = argv[1]  with open(file_name, 'r') as f:      config_file = f.read() -ospfv3_base = ['protocols', 'ospfv3']  config = ConfigTree(config_file) +ospfv3_base = ['protocols', 'ospfv3']  if config.exists(ospfv3_base):      area_base = ospfv3_base + ['area']      if config.exists(area_base): @@ -39,11 +57,22 @@ if config.exists(ospfv3_base):                  continue              for interface in config.return_values(area_base + [area, 'interface']): -                config.set(ospfv3_base + ['interface', interface, 'area', area]) +                config.set(ospfv3_base + ['interface', interface, 'area'], value=area)                  config.set_tag(ospfv3_base + ['interface'])              config.delete(area_base + [area, 'interface']) +# Migrate OSPF syntax in default VRF +ospf_base = ['protocols', 'ospf'] +ospf_passive_migration(config, ospf_base) + +vrf_base = ['vrf', 'name'] +if config.exists(vrf_base): +    for vrf in config.list_nodes(vrf_base): +        vrf_ospf_base = vrf_base + [vrf, 'protocols', 'ospf'] +        if config.exists(vrf_ospf_base): +            ospf_passive_migration(config, vrf_ospf_base) +  try:      with open(file_name, 'w') as f:          f.write(config.to_string()) | 
