summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2021-09-15 15:01:59 +0200
committerSimon Rettberg2021-09-15 15:01:59 +0200
commitfa520390a79114bf7c11c5bca093c60691553b84 (patch)
tree8774995a716d3408d7e59beeb71d5267e83abb7c
parent[dhcpc-busybox] Fix udev activation of interface/dhcp service (diff)
downloadmltk-fa520390a79114bf7c11c5bca093c60691553b84.tar.gz
mltk-fa520390a79114bf7c11c5bca093c60691553b84.tar.xz
mltk-fa520390a79114bf7c11c5bca093c60691553b84.zip
[hardware-stats] Include new json-based hw reporting
Fetch scripts from cgit for now. A bit ugly but this needs to be re-organized first.
-rwxr-xr-xcore/modules/hardware-stats/data/opt/openslx/system-check/hooks.d/50-hardware-report15
-rw-r--r--core/modules/hardware-stats/module.build9
-rw-r--r--core/modules/hardware-stats/module.conf4
3 files changed, 23 insertions, 5 deletions
diff --git a/core/modules/hardware-stats/data/opt/openslx/system-check/hooks.d/50-hardware-report b/core/modules/hardware-stats/data/opt/openslx/system-check/hooks.d/50-hardware-report
index a2dbbd56..bc050628 100755
--- a/core/modules/hardware-stats/data/opt/openslx/system-check/hooks.d/50-hardware-report
+++ b/core/modules/hardware-stats/data/opt/openslx/system-check/hooks.d/50-hardware-report
@@ -10,7 +10,7 @@ disable_remote_logging() {
# sends the hardware information of this machine generated by
# systemd-hardware_stats_gather in /run/hwreport and /run/hwinfo
report_hardware_info() {
- local uptime hwreport hwinfo uuid model subnet ret runmode
+ local uptime hwreport hwinfo uuid model subnet ret runmode jsonfile
if [ -z "$SLX_REMOTE_LOG" ]; then
disable_remote_logging
return 1
@@ -51,7 +51,13 @@ report_hardware_info() {
model="$model ($HW_MANUF)"
fi
# Get IP/subnet size
- subnet="$( ip -o -f inet addr show br0 | awk '/scope global/ {print $4}' )"
+ local primary="${SLX_BRIDGE:-br0}"
+ subnet="$( ip -o -f inet addr show "$primary" | awk '/scope global/ {print $4}' )"
+ # Finally, new json-based reporting
+ jsonfile="$( mktemp )"
+ if ! python3 /opt/openslx/system-check/collect_hw_info_json.py > "$jsonfile"; then
+ echo -n "" > "$jsonfile"
+ fi
# just assume the uuid/mac dumped are valid here (its checked often enough :))
echo -n "Submitting to '$SLX_REMOTE_LOG' ... "
curl --retry 4 --retry-connrefused --max-time 5 --retry-max-time 15 \
@@ -59,7 +65,8 @@ report_hardware_info() {
--data-urlencode "uptime=$uptime" --data-urlencode "realcores=$HW_CORES" --data-urlencode "mbram=$HW_MBRAM" \
--data-urlencode "kvmstate=$HW_KVM" --data-urlencode "cpumodel=$HW_CPUMODEL" --data-urlencode "id44mb=$HW_ID44" \
--data-urlencode "badsectors=$HW_BADSECTORS" --data-urlencode "systemmodel=$model" --data-urlencode "subnet=$subnet" \
- --data-urlencode "runmode=$runmode" --data-urlencode "data@$hwreport" "$SLX_REMOTE_LOG" | grep -q "RESULT=0"
+ --data-urlencode "runmode=$runmode" --data-urlencode "data@$hwreport" --data-urlencode "json@$jsonfile" \
+ "$SLX_REMOTE_LOG" | grep -q "RESULT=0"
local ret=$?
if [ "$ret" -ne 0 ]; then
echo "failed."
@@ -67,7 +74,7 @@ report_hardware_info() {
return 1
fi
echo "succeeded."
- rm -f -- "$hwreport"
+ rm -f -- "$hwreport" "$jsonfile"
START=$(( $RANDOM % 5 ))
DELAY=$(( $RANDOM % 20 ))
cat > "/etc/cron.d/usage_stats" <<-EOF
diff --git a/core/modules/hardware-stats/module.build b/core/modules/hardware-stats/module.build
index 3c6eb632..994b515b 100644
--- a/core/modules/hardware-stats/module.build
+++ b/core/modules/hardware-stats/module.build
@@ -4,7 +4,14 @@ fetch_source() {
}
build() {
- :
+ local dir="${MODULE_BUILD_DIR}/opt/openslx/system-check"
+ mkdir -p "$dir"
+ cde "$dir"
+ local file
+ for file in collect_hw_info_json.py dmiparser.py; do
+ wget -O "$file" "https://git.openslx.org/openslx-ng/systemd-init.git/plain/modules.d/bas-hw-collect/scripts/${file}?h=bas" \
+ || perror "Could not download $file"
+ done
}
post_copy() {
diff --git a/core/modules/hardware-stats/module.conf b/core/modules/hardware-stats/module.conf
index a452e852..b37a97c7 100644
--- a/core/modules/hardware-stats/module.conf
+++ b/core/modules/hardware-stats/module.conf
@@ -8,3 +8,7 @@ REQUIRED_BINARIES="
blockdev
"
+REQUIRED_FILES="
+ /opt/openslx/system-check/collect_hw_info_json.py
+ /opt/openslx/system-check/dmiparser.py
+"