summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interface-definitions/system-option.xml.in (renamed from interface-definitions/system-options.xml.in)86
-rwxr-xr-xsrc/conf_mode/system-option.py (renamed from src/conf_mode/system-options.py)11
-rwxr-xr-xsrc/migration-scripts/system/19-to-2064
3 files changed, 112 insertions, 49 deletions
diff --git a/interface-definitions/system-options.xml.in b/interface-definitions/system-option.xml.in
index 12e4044af..26b78c8a4 100644
--- a/interface-definitions/system-options.xml.in
+++ b/interface-definitions/system-option.xml.in
@@ -2,35 +2,29 @@
<interfaceDefinition>
<node name="system">
<children>
- <node name="options" owner="${vyos_conf_scripts_dir}/system-options.py">
+ <node name="option" owner="${vyos_conf_scripts_dir}/system-option.py">
<properties>
<help>System Options</help>
<priority>9999</priority>
</properties>
<children>
- <leafNode name="beep-if-fully-booted">
+ <leafNode name="ctrl-alt-delete">
<properties>
- <help>plays sound via system speaker when you can login</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="ctrl-alt-del-action">
- <properties>
- <help>Ctrl-Alt-Delete action</help>
+ <help>System action on Ctrl-Alt-Delete keystroke</help>
<completionHelp>
<list>ignore reboot poweroff</list>
</completionHelp>
<valueHelp>
<format>ignore</format>
- <description>Ignore Ctrl-Alt-Delete</description>
+ <description>Ignore key sequence</description>
</valueHelp>
<valueHelp>
<format>reboot</format>
- <description>Reboot VyOS</description>
+ <description>Reboot system</description>
</valueHelp>
<valueHelp>
<format>poweroff</format>
- <description>Poweroff VyOS</description>
+ <description>Poweroff system</description>
</valueHelp>
<constraint>
<regex>^(ignore|reboot|poweroff)$</regex>
@@ -38,7 +32,40 @@
<constraintErrorMessage>Must be ignore, reboot, or poweroff</constraintErrorMessage>
</properties>
</leafNode>
- <leafNode name="performance">
+ <leafNode name="keyboard-layout">
+ <properties>
+ <help>System keyboard layout, type ISO2</help>
+ <completionHelp>
+ <list>us fr de fi no dk</list>
+ </completionHelp>
+ <valueHelp>
+ <format>us</format>
+ <description>United States of America</description>
+ </valueHelp>
+ <valueHelp>
+ <format>fr</format>
+ <description>France</description>
+ </valueHelp>
+ <valueHelp>
+ <format>de</format>
+ <description>Germany</description>
+ </valueHelp>
+ <valueHelp>
+ <format>fi</format>
+ <description>Finland</description>
+ </valueHelp>
+ <valueHelp>
+ <format>no</format>
+ <description>Norway</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dk</format>
+ <description>Denmark</description>
+ </valueHelp>
+ </properties>
+ <defaultValue>us</defaultValue>
+ </leafNode>
+ <leafNode name="performance">
<properties>
<help>Tune system performance</help>
<completionHelp>
@@ -80,38 +107,11 @@
#include <include/source-address-ipv4-ipv6.xml.i>
</children>
</node>
- <leafNode name="keyboard-layout">
+ <leafNode name="startup-beep">
<properties>
- <help>System keyboard layout, type ISO2</help>
- <completionHelp>
- <list>us fr de fi no dk</list>
- </completionHelp>
- <valueHelp>
- <format>us</format>
- <description>United States of America</description>
- </valueHelp>
- <valueHelp>
- <format>fr</format>
- <description>France</description>
- </valueHelp>
- <valueHelp>
- <format>de</format>
- <description>Germany</description>
- </valueHelp>
- <valueHelp>
- <format>fi</format>
- <description>Finland</description>
- </valueHelp>
- <valueHelp>
- <format>no</format>
- <description>Norway</description>
- </valueHelp>
- <valueHelp>
- <format>dk</format>
- <description>Denmark</description>
- </valueHelp>
+ <help>plays sound via system speaker when you can login</help>
+ <valueless/>
</properties>
- <defaultValue>us</defaultValue>
</leafNode>
</children>
</node>
diff --git a/src/conf_mode/system-options.py b/src/conf_mode/system-option.py
index 1061b90ac..2376e5d44 100755
--- a/src/conf_mode/system-options.py
+++ b/src/conf_mode/system-option.py
@@ -39,7 +39,7 @@ def get_config(config=None):
conf = config
else:
conf = Config()
- base = ['system', 'options']
+ base = ['system', 'option']
options = conf.get_config_dict(base, key_mangling=('-', '_'), get_first_key=True)
# We have gathered the dict representation of the CLI, but there are default
@@ -79,7 +79,7 @@ def generate(options):
def apply(options):
# System bootup beep
- if 'beep_if_fully_booted' in options:
+ if 'startup_beep' in options:
cmd('systemctl enable vyos-beep.service')
else:
cmd('systemctl disable vyos-beep.service')
@@ -87,10 +87,10 @@ def apply(options):
# Ctrl-Alt-Delete action
if os.path.exists(systemd_action_file):
os.unlink(systemd_action_file)
- if 'ctrl_alt_del_action' in options:
- if options['ctrl_alt_del_action'] == 'reboot':
+ if 'ctrl_alt_del' in options:
+ if options['ctrl_alt_del'] == 'reboot':
os.symlink('/lib/systemd/system/reboot.target', systemd_action_file)
- elif options['ctrl_alt_del_action'] == 'poweroff':
+ elif options['ctrl_alt_del'] == 'poweroff':
os.symlink('/lib/systemd/system/poweroff.target', systemd_action_file)
# Configure HTTP client
@@ -134,4 +134,3 @@ if __name__ == '__main__':
except ConfigError as e:
print(e)
exit(1)
-
diff --git a/src/migration-scripts/system/19-to-20 b/src/migration-scripts/system/19-to-20
new file mode 100755
index 000000000..eb20fd8db
--- /dev/null
+++ b/src/migration-scripts/system/19-to-20
@@ -0,0 +1,64 @@
+#!/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/>.
+
+# T3048: remove smp-affinity node from ethernet and use tuned instead
+
+import os
+
+from sys import exit, argv
+from vyos.configtree import ConfigTree
+
+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()
+
+base = ['system', 'options']
+base_new = ['system', 'option']
+config = ConfigTree(config_file)
+
+if not config.exists(base):
+ # Nothing to do
+ exit(0)
+
+if config.exists(base_new):
+ for node in config.list_nodes(base):
+ config.copy(base + [node], base_new + [node])
+else:
+ config.copy(base, base_new)
+
+config.delete(base)
+
+# Rename "system option beep-if-fully-booted" -> "system option startup-beep"
+base_beep = base_new + ['beep-if-fully-booted']
+if config.exists(base_beep):
+ config.rename(base_beep, 'startup-beep')
+
+# Rename "system option ctrl-alt-del-action" -> "system option ctrl-alt-delete"
+base_ctrl_alt_del = base_new + ['ctrl-alt-del-action']
+if config.exists(base_ctrl_alt_del):
+ config.rename(base_ctrl_alt_del, 'ctrl-alt-delete')
+
+
+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)