From 9b1cfeff18a23dfbefd485741ac4609c92707dfd Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 30 Dec 2019 15:44:55 +0100 Subject: beep: T1920: migrate to systemd unit --- interface-definitions/beep-on-boot.xml.in | 21 --------------- interface-definitions/system-options.xml.in | 8 +++++- src/conf_mode/beep_if_fully_booted.py | 42 ----------------------------- src/conf_mode/system-options.py | 7 +++++ src/systemd/vyos-beep.service | 11 ++++++++ 5 files changed, 25 insertions(+), 64 deletions(-) delete mode 100644 interface-definitions/beep-on-boot.xml.in delete mode 100755 src/conf_mode/beep_if_fully_booted.py create mode 100644 src/systemd/vyos-beep.service diff --git a/interface-definitions/beep-on-boot.xml.in b/interface-definitions/beep-on-boot.xml.in deleted file mode 100644 index 0da7d0de4..000000000 --- a/interface-definitions/beep-on-boot.xml.in +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - plays sound via system speaker when you can login - - 9999 - - - - - - - diff --git a/interface-definitions/system-options.xml.in b/interface-definitions/system-options.xml.in index 5fa0635bd..48bc353ab 100644 --- a/interface-definitions/system-options.xml.in +++ b/interface-definitions/system-options.xml.in @@ -5,9 +5,15 @@ System Options - 400 + 9999 + + + plays sound via system speaker when you can login + + + Ctrl-Alt-Delete action diff --git a/src/conf_mode/beep_if_fully_booted.py b/src/conf_mode/beep_if_fully_booted.py deleted file mode 100755 index f00fcabd0..000000000 --- a/src/conf_mode/beep_if_fully_booted.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2018 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 . -# -# - -import sys -import os - -from vyos.config import Config -from vyos import ConfigError - -def get_config(): - conf = Config() - if not conf.exists('system options beep-if-fully-booted'): - return None - - return True - -def apply(status): - if status is not None: - os.system('/usr/bin/beep -f 130 -l 100 -n -f 262 -l 100 -n -f 330 -l 100 -n -f 392 -l 100 -n -f 523 -l 100 -n -f 660 -l 100 -n -f 784 -l 300 -n -f 660 -l 300') - -if __name__ == '__main__': - try: - c = get_config() - apply(c) - except ConfigError as e: - print(e) - sys.exit(1) diff --git a/src/conf_mode/system-options.py b/src/conf_mode/system-options.py index 4c809d044..74c34e19f 100755 --- a/src/conf_mode/system-options.py +++ b/src/conf_mode/system-options.py @@ -24,6 +24,7 @@ from vyos import ConfigError systemd_ctrl_alt_del = '/lib/systemd/system/ctrl-alt-del.target' default_config_data = { + 'beep_if_fully_booted': False, 'ctrl_alt_del': 'ignore', 'reboot_on_panic': True } @@ -36,6 +37,7 @@ def get_config(): if conf.exists('ctrl-alt-del-action'): opt['ctrl_alt_del'] = conf.return_value('ctrl-alt-del-action') + opt['beep_if_fully_booted'] = conf.exists('beep-if-fully-booted') opt['reboot_on_panic'] = conf.exists('reboot-on-panic') return opt @@ -47,6 +49,11 @@ def generate(opt): pass def apply(opt): + # Beep action + if opt['beep_if_fully_booted']: + os.system('systemctl enable vyos-beep.service >/dev/null 2>&1') + else: + os.system('systemctl disable vyos-beep.service >/dev/null 2>&1') # Ctrl-Alt-Delete action if opt['ctrl_alt_del'] == 'ignore': diff --git a/src/systemd/vyos-beep.service b/src/systemd/vyos-beep.service new file mode 100644 index 000000000..f8f27f924 --- /dev/null +++ b/src/systemd/vyos-beep.service @@ -0,0 +1,11 @@ +[Unit] +Description=Beep after system start +DefaultDependencies=no +After=multi-user.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/beep -f 130 -l 100 -n -f 262 -l 100 -n -f 330 -l 100 -n -f 392 -l 100 -n -f 523 -l 100 -n -f 660 -l 100 -n -f 784 -l 300 -n -f 660 -l 300 + +[Install] +WantedBy=multi-user.target -- cgit v1.2.3 From 9436b433df3f10260a4802b51f6259424fb986dc Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 30 Dec 2019 15:45:41 +0100 Subject: options: T1919: check file existance before os.unlink() --- src/conf_mode/system-options.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/conf_mode/system-options.py b/src/conf_mode/system-options.py index 74c34e19f..a893e98b3 100755 --- a/src/conf_mode/system-options.py +++ b/src/conf_mode/system-options.py @@ -57,7 +57,8 @@ def apply(opt): # Ctrl-Alt-Delete action if opt['ctrl_alt_del'] == 'ignore': - os.unlink('/lib/systemd/system/ctrl-alt-del.target') + if os.path.exists(systemd_ctrl_alt_del): + os.unlink('/lib/systemd/system/ctrl-alt-del.target') elif opt['ctrl_alt_del'] == 'reboot': if os.path.exists(systemd_ctrl_alt_del): -- cgit v1.2.3 From 34ca80acc019e292ff560a01b7dd6211157ede54 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 30 Dec 2019 15:49:20 +0100 Subject: beep: T1920: run after vyos.target --- src/systemd/vyos-beep.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/systemd/vyos-beep.service b/src/systemd/vyos-beep.service index f8f27f924..78baa544c 100644 --- a/src/systemd/vyos-beep.service +++ b/src/systemd/vyos-beep.service @@ -1,7 +1,7 @@ [Unit] Description=Beep after system start DefaultDependencies=no -After=multi-user.target +After=vyos.target [Service] Type=oneshot -- cgit v1.2.3 From 5c3b21d3a1c2b24c0c4414e63bc40a89051210ba Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 30 Dec 2019 22:06:42 +0100 Subject: snmp: adopt user/group to Debian Buster --- src/conf_mode/snmp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conf_mode/snmp.py b/src/conf_mode/snmp.py index 918c7f128..8f0b0c7c1 100755 --- a/src/conf_mode/snmp.py +++ b/src/conf_mode/snmp.py @@ -217,7 +217,7 @@ init_config_tmpl = """ SNMPDRUN=yes # snmpd options (use syslog, close stdin/out/err). -SNMPDOPTS='-LSed -u snmp -g snmp -I -ipCidrRouteTable,inetCidrRouteTable -p /run/snmpd.pid' +SNMPDOPTS='-LSed -u Debian-snmp -g Debian-snmp -I -ipCidrRouteTable,inetCidrRouteTable -p /run/snmpd.pid' """ default_config_data = { -- cgit v1.2.3 From 7b0ace6699d8075a6d093502126e2be4d631ef67 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 30 Dec 2019 22:47:27 +0100 Subject: snmp: T1921: migrate sysvinit default to systemd override file --- src/conf_mode/snmp.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/conf_mode/snmp.py b/src/conf_mode/snmp.py index 8f0b0c7c1..cb77f7f22 100755 --- a/src/conf_mode/snmp.py +++ b/src/conf_mode/snmp.py @@ -31,12 +31,12 @@ from stat import S_IRWXU,S_IXGRP,S_IXOTH,S_IROTH,S_IRGRP from vyos.config import Config from vyos import ConfigError -config_file_client = r'/etc/snmp/snmp.conf' -config_file_daemon = r'/etc/snmp/snmpd.conf' -config_file_access = r'/usr/share/snmp/snmpd.conf' -config_file_user = r'/var/lib/snmp/snmpd.conf' -config_file_init = r'/etc/default/snmpd' -default_script_dir = r'/config/user-data/' +config_file_client = r'/etc/snmp/snmp.conf' +config_file_daemon = r'/etc/snmp/snmpd.conf' +config_file_access = r'/usr/share/snmp/snmpd.conf' +config_file_user = r'/var/lib/snmp/snmpd.conf' +config_file_systemd = r'/etc/systemd/system/snmpd.service.d/override.conf' +default_script_dir = r'/config/user-data/' # SNMP OIDs used to mark auth/priv type OIDs = { @@ -213,11 +213,10 @@ init_config_tmpl = """ ### Autogenerated by snmp.py ### # This file controls the activity of snmpd -# snmpd control (yes means start daemon). -SNMPDRUN=yes +[Service] +ExecStart= +ExecStart=/usr/sbin/snmpd -Ls0-5d -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf,ipCidrRouteTable,inetCidrRouteTable -f -p /run/snmpd.pid -# snmpd options (use syslog, close stdin/out/err). -SNMPDOPTS='-LSed -u Debian-snmp -g Debian-snmp -I -ipCidrRouteTable,inetCidrRouteTable -p /run/snmpd.pid' """ default_config_data = { @@ -708,10 +707,14 @@ def generate(snmp): with open(config_file_user, 'w') as f: f.write(config_text) - # Write init config file + # Write systemd override file + dir = os.path.dirname(config_file_systemd) + if not os.path.isdir(dir): + os.mkdir(dir, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) + tmpl = jinja2.Template(init_config_tmpl) config_text = tmpl.render(snmp) - with open(config_file_init, 'w') as f: + with open(config_file_systemd, 'w') as f: f.write(config_text) return None @@ -745,6 +748,7 @@ def apply(snmp): os.symlink(nonvolatiledir, volatiledir) # start SNMP daemon + os.system("sudo systemctl daemon-reload") os.system("sudo systemctl restart snmpd.service") # Passwords are not available immediately in the configuration file, -- cgit v1.2.3 From 9d5ffc8a44eb1033236cf9db12d24d8a6ccdc374 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 30 Dec 2019 22:55:10 +0100 Subject: snmp: T1921: change log options suppress error message: Dec 30 11:44:10 LR1 snmpd[2870]: error on subcontainer 'ia_addr' insert (-1) --- src/conf_mode/snmp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conf_mode/snmp.py b/src/conf_mode/snmp.py index cb77f7f22..488fb9d80 100755 --- a/src/conf_mode/snmp.py +++ b/src/conf_mode/snmp.py @@ -215,7 +215,7 @@ init_config_tmpl = """ [Service] ExecStart= -ExecStart=/usr/sbin/snmpd -Ls0-5d -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf,ipCidrRouteTable,inetCidrRouteTable -f -p /run/snmpd.pid +ExecStart=/usr/sbin/snmpd -LS6d -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf,ipCidrRouteTable,inetCidrRouteTable -f -p /run/snmpd.pid """ -- cgit v1.2.3 From c7b0585fa97779fc070f4a4a0fe825eb0729023c Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 30 Dec 2019 22:59:42 +0100 Subject: snmp: T1921: reduce syslog noise Remove informative but noisy messages: Dec 30 11:45:02 vyos snmpd[2870]: Connection from UDP: [172.16.100.1]:42781 ... Dec 30 11:45:02 vyos snmpd[2870]: Connection from UDP: [172.16.100.1]:57331 ... --- src/conf_mode/snmp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conf_mode/snmp.py b/src/conf_mode/snmp.py index 488fb9d80..0ad229bed 100755 --- a/src/conf_mode/snmp.py +++ b/src/conf_mode/snmp.py @@ -215,7 +215,7 @@ init_config_tmpl = """ [Service] ExecStart= -ExecStart=/usr/sbin/snmpd -LS6d -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf,ipCidrRouteTable,inetCidrRouteTable -f -p /run/snmpd.pid +ExecStart=/usr/sbin/snmpd -LS0-5d -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf,ipCidrRouteTable,inetCidrRouteTable -f -p /run/snmpd.pid """ -- cgit v1.2.3