From b9a43a41b66f7251297d9066506b758d91c033c5 Mon Sep 17 00:00:00 2001 From: Meliox Date: Sat, 13 Jun 2026 20:43:18 +0200 Subject: [PATCH] Move collection of system information to cache --- src/Scripts/pve-mod-configure | 9 +++++++++ src/node_info/files/Collector/systemInformation.pm | 10 ++++++++-- src/node_info/files/PveMod_SensorInfo.pm | 8 ++++---- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/Scripts/pve-mod-configure b/src/Scripts/pve-mod-configure index 22bedc6..22357ba 100644 --- a/src/Scripts/pve-mod-configure +++ b/src/Scripts/pve-mod-configure @@ -400,6 +400,15 @@ configure_node_info() { [nN]) info "System information disabled." ;; *) warn "Invalid selection. Defaulting to type 1."; ENABLE_SYSTEM_INFO=1; SYSTEM_INFO_TYPE=1 ;; esac + + if [[ "$ENABLE_SYSTEM_INFO" -eq 1 ]]; then + local cache_dir="/var/lib/pve-mod" + mkdir -p "$cache_dir" + local cache_file="${cache_dir}/dmidecode-type${SYSTEM_INFO_TYPE}.txt" + dmidecode -t "$SYSTEM_INFO_TYPE" > "$cache_file" 2>/dev/null || true + chmod 644 "$cache_file" + info "DMI data cached to $cache_file" + fi #endregion System info } #endregion node-info wizard diff --git a/src/node_info/files/Collector/systemInformation.pm b/src/node_info/files/Collector/systemInformation.pm index de43892..e9a6e33 100644 --- a/src/node_info/files/Collector/systemInformation.pm +++ b/src/node_info/files/Collector/systemInformation.pm @@ -44,10 +44,16 @@ sub get_system_information_data { sub _get_system_info { my ($type) = @_; - my $output = `/usr/sbin/dmidecode -t $type 2>/dev/null`; + my $cache_file = "/var/lib/pve-mod/dmidecode-type${type}.txt"; + my $output; + if (open(my $fh, '<', $cache_file)) { + local $/; + $output = <$fh>; + close($fh); + } unless (defined $output && length($output) > 0) { - debug(__LINE__, "No output from dmidecode -t $type"); + debug(__LINE__, "No cached DMI data at $cache_file — re-run pve-mod-configure as root to refresh"); return {}; } diff --git a/src/node_info/files/PveMod_SensorInfo.pm b/src/node_info/files/PveMod_SensorInfo.pm index 55c3612..3e03524 100644 --- a/src/node_info/files/PveMod_SensorInfo.pm +++ b/src/node_info/files/PveMod_SensorInfo.pm @@ -151,7 +151,7 @@ sub _load_graphics_data { sub get_graphic_info { if (!$config{gpu}{intel_enabled} && !$config{gpu}{nvidia_enabled} && !$config{gpu}{amd_enabled}) { - return null; + return ""; } debug(__LINE__, "get_graphic_info called"); @@ -169,7 +169,7 @@ sub get_graphic_info { sub get_sensors_info { if (!$config{lm_sensors}{enabled}) { - return null; + return ""; } debug(__LINE__, "get_sensors_info called"); @@ -187,7 +187,7 @@ sub get_sensors_info { sub get_ups_info { if (!$config{ups}{enabled}) { - return null; + return ""; } debug(__LINE__, "get_ups_info called"); @@ -216,7 +216,7 @@ sub get_pve_mod_version { sub get_system_information { if (!$config{system_info}{enabled}) { - return null; + return ""; } debug(__LINE__, "get_system_information called");