From b046356bed77f7014d2ff14100c8095636c46101 Mon Sep 17 00:00:00 2001 From: kroy Date: Mon, 8 Jun 2020 09:51:03 -0500 Subject: T2559: Make the sensors automatically load necessary modules --- op-mode-definitions/show-environment.xml | 2 +- src/op_mode/show_sensors.py | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100755 src/op_mode/show_sensors.py diff --git a/op-mode-definitions/show-environment.xml b/op-mode-definitions/show-environment.xml index 88e1718aa..95b658785 100644 --- a/op-mode-definitions/show-environment.xml +++ b/op-mode-definitions/show-environment.xml @@ -12,7 +12,7 @@ Show hardware monitoring results - if ! grep -q hypervisor /proc/cpuinfo; then /usr/bin/sensors --no-adapter; else echo "VyOS running under hypervisor, no sensors available"; fi + if ! grep -q hypervisor /proc/cpuinfo; then ${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_sensors.py; else echo "VyOS running under hypervisor, no sensors available"; fi diff --git a/src/op_mode/show_sensors.py b/src/op_mode/show_sensors.py new file mode 100755 index 000000000..6ae477647 --- /dev/null +++ b/src/op_mode/show_sensors.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +import re +import sys +from vyos.util import popen +from vyos.util import DEVNULL +output,retcode = popen("sensors --no-adapter", stderr=DEVNULL) +if retcode == 0: + print (output) + sys.exit(0) +else: + output,retcode = popen("sensors-detect --auto",stderr=DEVNULL) + match = re.search(r'#----cut here----(.*)#----cut here----',output, re.DOTALL) + if match: + for module in match.group(0).split('\n'): + if not module.startswith("#"): + popen("modprobe {}".format(module.strip())) + output,retcode = popen("sensors --no-adapter", stderr=DEVNULL) + if retcode == 0: + print (output) + sys.exit(0) + + +print ("No sensors found") +sys.exit(1) + + -- cgit v1.2.3