diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-06-08 18:07:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-08 18:07:32 +0200 |
commit | b821c6302688f47383d4df1cc3d6c7668d846bc4 (patch) | |
tree | 93b85f33098306d49a61ebd3f73e51bab88a4da3 | |
parent | d76776ac8732694e154f73a3b3fe1b742ede6d86 (diff) | |
parent | b046356bed77f7014d2ff14100c8095636c46101 (diff) | |
download | vyos-1x-b821c6302688f47383d4df1cc3d6c7668d846bc4.tar.gz vyos-1x-b821c6302688f47383d4df1cc3d6c7668d846bc4.zip |
Merge pull request #447 from kroy-the-rabbit/sensors
T2559: Make the sensors automatically load necessary modules
-rw-r--r-- | op-mode-definitions/show-environment.xml | 2 | ||||
-rwxr-xr-x | src/op_mode/show_sensors.py | 27 |
2 files changed, 28 insertions, 1 deletions
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 @@ <help>Show hardware monitoring results</help> </properties> <!-- Linux always adds "hypervisor" to CPU flags --> - <command>if ! grep -q hypervisor /proc/cpuinfo; then /usr/bin/sensors --no-adapter; else echo "VyOS running under hypervisor, no sensors available"; fi</command> + <command>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</command> </leafNode> </children> </node> 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) + + |