summaryrefslogtreecommitdiff
path: root/src/migration-scripts/interfaces/9-to-10
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-05-26 20:54:07 +0200
committerChristian Poessinger <christian@poessinger.com>2020-05-26 20:54:07 +0200
commit825059e83237dd389d461257e1b46625084702df (patch)
tree47d50cde1195279ab5b6367b84ff60568620262a /src/migration-scripts/interfaces/9-to-10
parent62fd70e83c2f147f84f8fb3def5b384d4f56695d (diff)
parent8ff6d2ed6025fb113a180e3c23be83dac7169658 (diff)
downloadvyos-1x-825059e83237dd389d461257e1b46625084702df.tar.gz
vyos-1x-825059e83237dd389d461257e1b46625084702df.zip
Merge branch 'dhcpv6-pd-t2506' of github.com:c-po/vyos-1x into current
* 'dhcpv6-pd-t2506' of github.com:c-po/vyos-1x: dhcpv6-pd: T2506: use common dictionary definition for config parameters dhcpv6-pd: T2506: add option to request specific prefix length dhcpv6-pd: pppoe: T2506: restructure CLI
Diffstat (limited to 'src/migration-scripts/interfaces/9-to-10')
-rwxr-xr-xsrc/migration-scripts/interfaces/9-to-1065
1 files changed, 65 insertions, 0 deletions
diff --git a/src/migration-scripts/interfaces/9-to-10 b/src/migration-scripts/interfaces/9-to-10
new file mode 100755
index 000000000..ce28627b8
--- /dev/null
+++ b/src/migration-scripts/interfaces/9-to-10
@@ -0,0 +1,65 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2020 VyOS maintainers and contributors
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 or later as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# - rename CLI node 'dhcpv6-options delgate' to 'dhcpv6-options prefix-delegation
+# interface'
+# - rename CLI node 'interface-id' for prefix-delegation to 'address' as it
+# represents the local interface IPv6 address assigned by DHCPv6-PD
+
+from sys import exit, argv
+from vyos.configtree import ConfigTree
+
+if __name__ == '__main__':
+ if (len(argv) < 1):
+ print("Must specify file name!")
+ exit(1)
+
+ file_name = argv[1]
+ with open(file_name, 'r') as f:
+ config_file = f.read()
+
+ config = ConfigTree(config_file)
+
+ for intf_type in config.list_nodes(['interfaces']):
+ for intf in config.list_nodes(['interfaces', intf_type]):
+ # cache current config tree
+ base_path = ['interfaces', intf_type, intf, 'dhcpv6-options',
+ 'delegate']
+
+ if config.exists(base_path):
+ # cache new config tree
+ new_path = ['interfaces', intf_type, intf, 'dhcpv6-options',
+ 'prefix-delegation']
+ if not config.exists(new_path):
+ config.set(new_path)
+
+ # copy to new node
+ config.copy(base_path, new_path + ['interface'])
+ print(new_path + ['interface'])
+
+ # rename interface-id to address
+ for interface in config.list_nodes(new_path + ['interface']):
+ config.rename(new_path + ['interface', interface, 'interface-id'], 'address')
+
+ # delete old noe
+ config.delete(base_path)
+
+ try:
+ with open(file_name, 'w') as f:
+ f.write(config.to_string())
+ except OSError as e:
+ print("Failed to save the modified config: {}".format(e))
+ exit(1)