summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interface-definitions/pppoe-server.xml29
-rwxr-xr-xsrc/migration-scripts/pppoe-server/0-to-135
2 files changed, 48 insertions, 16 deletions
diff --git a/interface-definitions/pppoe-server.xml b/interface-definitions/pppoe-server.xml
index 2fac4ec5a..510bfeb3b 100644
--- a/interface-definitions/pppoe-server.xml
+++ b/interface-definitions/pppoe-server.xml
@@ -64,25 +64,22 @@
</tagNode>
</children>
</node>
- <node name="mode">
+ <leafNode name="mode">
<properties>
<help>Authentication mode for PPPoE Server</help>
+ <valueHelp>
+ <format>local</format>
+ <description>Use local username/password configuration</description>
+ </valueHelp>
+ <valueHelp>
+ <format>radius</format>
+ <description>Use Radius server to autenticate users</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(local|radius)</regex>
+ </constraint>
</properties>
- <children>
- <leafNode name="local">
- <properties>
- <help>Use local username/password configuration</help>
- <valueless />
- </properties>
- </leafNode>
- <leafNode name="radius">
- <properties>
- <help>Use Radius server to autenticate users</help>
- <valueless />
- </properties>
- </leafNode>
- </children>
- </node>
+ </leafNode>
<tagNode name="radius-server">
<properties>
<help>IP address of radius server</help>
diff --git a/src/migration-scripts/pppoe-server/0-to-1 b/src/migration-scripts/pppoe-server/0-to-1
new file mode 100755
index 000000000..df816a321
--- /dev/null
+++ b/src/migration-scripts/pppoe-server/0-to-1
@@ -0,0 +1,35 @@
+#!/usr/bin/env python3
+
+# Delete "service ssh allow-root" option
+
+import sys
+
+from vyos.configtree import ConfigTree
+
+if (len(sys.argv) < 1):
+ print("Must specify file name!")
+ sys.exit(1)
+
+file_name = sys.argv[1]
+
+with open(file_name, 'r') as f:
+ config_file = f.read()
+
+ctree = ConfigTree(config_file)
+
+
+if not ctree.exists(['service', 'pppoe-server', 'authentication','radius-server']):
+ # Nothing to do
+ sys.exit(0)
+else:
+ nodes = ctree.list_nodes(['service', 'pppoe-server', 'authentication','radius-server'])
+ for node in nodes:
+ if ctree.exists(['service', 'pppoe-server', 'authentication', 'radius-server', node, 'key']):
+ val = ctree.return_value(['service', 'pppoe-server', 'authentication', 'radius-server', node, 'key'])
+ ctree.set(['service', 'pppoe-server', 'authentication', 'radius-server', node, 'secret'], value=val, replace=False)
+ ctree.delete(['service', 'pppoe-server', 'authentication', 'radius-server', node, 'key'])
+ try:
+ open(file_name,'w').write(ctree.to_string())
+ except OSError as e:
+ print("Failed to save the modified config: {}".format(e))
+ sys.exit(1)