summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/migration-scripts/ospf/0-to-133
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())