From 7948f5a538469ce1faf8b1b21567e96fb16de162 Mon Sep 17 00:00:00 2001 From: Meliox Date: Sun, 5 Jul 2026 14:56:52 +0200 Subject: [PATCH] first --- src/node_info/files/Collector/LmSensors.pm | 8 ++- src/node_info/files/PveMod_SensorInfo.pm | 19 +++--- src/node_info/files/PveMod_pvemanagerlib.js | 70 +++++++++++++++------ 3 files changed, 69 insertions(+), 28 deletions(-) diff --git a/src/node_info/files/Collector/LmSensors.pm b/src/node_info/files/Collector/LmSensors.pm index 69aec44..9fc952d 100644 --- a/src/node_info/files/Collector/LmSensors.pm +++ b/src/node_info/files/Collector/LmSensors.pm @@ -91,7 +91,13 @@ sub _get_temperature_sensors { return $data; } - $data = JSON->new->pretty->encode({ "PVE MOD lm-sensors Enhanced" => $sensors_json }); + $data = JSON->new->pretty->encode({ + cpu => $config{lm_sensors}{enable_cpu} ? \1 : \0, + nvme => $config{lm_sensors}{enable_nvme_temp} ? \1 : \0, + fans => $config{lm_sensors}{enable_fan_speed} ? \1 : \0, + hdd => $config{lm_sensors}{enable_hdd_temp} ? \1 : \0, + data => { 'PVE MOD lm-sensors Enhanced' => $sensors_json }, + }); return $data; } diff --git a/src/node_info/files/PveMod_SensorInfo.pm b/src/node_info/files/PveMod_SensorInfo.pm index c38c4e9..f63b5e6 100644 --- a/src/node_info/files/PveMod_SensorInfo.pm +++ b/src/node_info/files/PveMod_SensorInfo.pm @@ -10,8 +10,8 @@ use PVE::PVEMod::Collector::SystemInformation qw(get_system_information_data); # Per-endpoint state caches (module-level, reset on worker restart) my $graphics_cache = { data => {}, mtime => 0 }; -my $sensors_cache = { data => '{}', mtime => 0 }; -my $ups_cache = { data => '{}', mtime => 0 }; +my $sensors_cache = { data => {}, mtime => 0 }; +my $ups_cache = { data => {}, mtime => 0 }; my $system_info_cache = undef; @@ -153,7 +153,7 @@ sub get_graphics_info { debug(__LINE__, "get_graphics_info called"); if (!($config{gpu}{intel_enabled} || !$config{gpu}{nvidia_enabled} || !$config{gpu}{amd_enabled})) { debug(__LINE__, "GPU information collection is disabled"); - return { }; + return { disabled => \1 }; } # Start PVE Mod @@ -171,13 +171,13 @@ sub get_sensors_info { debug(__LINE__, "get_sensors_info called"); if (!$config{lm_sensors}{enabled}) { debug(__LINE__, "LM Sensors collection is disabled"); - return {}; + return { disabled => \1 }; } # Start PVE Mod pve_mod_starter(); - my $data = _read_state_file_cached($sensors_state_file, $sensors_cache, 1, '{}'); + my $data = _read_state_file_cached($sensors_state_file, $sensors_cache, 0, {}); # Notify pve_mod_worker of activity notify_pve_mod_worker(); @@ -189,13 +189,13 @@ sub get_ups_info { debug(__LINE__, "get_ups_info called"); if (!$config{ups}{enabled}) { debug(__LINE__, "UPS collection is disabled"); - return {}; + return { disabled => \1 }; } # Start PVE Mod pve_mod_starter(); - my $data = _read_state_file_cached($ups_state_file, $ups_cache, 1, '{}'); + my $data = _read_state_file_cached($ups_state_file, $ups_cache, 0, {}); # Notify pve_mod_worker of activity notify_pve_mod_worker(); @@ -217,6 +217,11 @@ sub get_pve_mod_version { sub get_system_information { debug(__LINE__, "get_system_information called"); + if (!$config{system_info}{enabled}) { + debug(__LINE__, "System information collection is disabled"); + return { disabled => \1 }; + } + if (defined $system_info_cache) { debug(__LINE__, "Returning cached system information"); return $system_info_cache; diff --git a/src/node_info/files/PveMod_pvemanagerlib.js b/src/node_info/files/PveMod_pvemanagerlib.js index 44ebb9f..a08fc71 100644 --- a/src/node_info/files/PveMod_pvemanagerlib.js +++ b/src/node_info/files/PveMod_pvemanagerlib.js @@ -160,7 +160,10 @@ Ext.define('PVE.node.StatusView', { printBar: false, textField: 'PveMod_graphicsInfo', renderer: function(gpuStats) { - if (!gpuStats || !gpuStats.Graphics) { + if (gpuStats && gpuStats.disabled === true) { + this.hide(); + return ''; + } else if (!gpuStats || !gpuStats.Graphics) { return ''; } @@ -288,8 +291,15 @@ Ext.define('PVE.node.StatusView', { // --- let objValue; try { - objValue = JSON.parse(value) || {}; - objValue = objValue[Object.keys(objValue)[0]] || {}; + const parsed = value || {}; + if (parsed.disabled === true) { + this.hide(); + return ''; + } else if (parsed.cpu !== true) { + this.hide(); + return ''; + } + objValue = (parsed.data && parsed.data[Object.keys(parsed.data)[0]]) || {}; } catch(e) { objValue = {}; } @@ -456,7 +466,10 @@ Ext.define('PVE.node.StatusView', { printBar: false, textField: 'PveMod_graphicsInfo', renderer: function(gpuStats) { - if (!gpuStats || !gpuStats.Graphics) { + if (gpuStats && gpuStats.disabled === true) { + this.hide(); + return ''; + } else if (!gpuStats || !gpuStats.Graphics) { return ''; } @@ -576,8 +589,15 @@ Ext.define('PVE.node.StatusView', { // --- let objValue; try { - objValue = JSON.parse(value) || {}; - objValue = objValue[Object.keys(objValue)[0]] || {}; + const parsed = value || {}; + if (parsed.disabled === true) { + this.hide(); + return ''; + } else if (parsed.nvme !== true) { + this.hide(); + return ''; + } + objValue = (parsed.data && parsed.data[Object.keys(parsed.data)[0]]) || {}; } catch(e) { objValue = {}; } @@ -655,8 +675,15 @@ Ext.define('PVE.node.StatusView', { // --- let objValue; try { - objValue = JSON.parse(value) || {}; - objValue = objValue[Object.keys(objValue)[0]] || {}; + const parsed = value || {}; + if (parsed.disabled === true) { + this.hide(); + return ''; + } else if (parsed.fans !== true) { + this.hide(); + return ''; + } + objValue = (parsed.data && parsed.data[Object.keys(parsed.data)[0]]) || {}; } catch(e) { objValue = {}; } @@ -714,7 +741,10 @@ Ext.define('PVE.node.StatusView', { iconCls: 'fa fa-fw fa-snowflake-o', textField: 'PveMod_graphicsInfo', renderer: function(gpuStats) { - if (!gpuStats || !gpuStats.Graphics || !gpuStats.Graphics.NVIDIA) { + if (gpuStats && gpuStats.disabled === true) { + this.hide(); + return ''; + } else if (!gpuStats || !gpuStats.Graphics || !gpuStats.Graphics.NVIDIA) { return ''; } @@ -742,7 +772,7 @@ Ext.define('PVE.node.StatusView', { }); if (rows.length === 0) { - return 'N/A'; + return ''; } return '
' + rows.join('') + '
'; @@ -756,20 +786,17 @@ Ext.define('PVE.node.StatusView', { iconCls: 'fa fa-fw fa-battery-three-quarters', textField: 'PveMod_upsInfo', renderer: function(value) { - let objValue = {}; + let objValue; try { - // Parse the UPS data - if (typeof value === 'string') { - objValue = JSON.parse(value) || {}; - } else if (typeof value === 'object') { - objValue = value || {}; - } + objValue = value || {}; } catch(e) { objValue = {}; } - - // If objValue is null or empty, return N/A - if (!objValue || Object.keys(objValue).length === 0) { + + if (objValue.disabled === true) { + this.hide(); + return ''; + } else if (!objValue || Object.keys(objValue).length === 0) { return 'N/A'; } @@ -1000,6 +1027,9 @@ Ext.define('PVE.node.StatusView', { renderer: function(value) { if (value === null || value === undefined) { return ''; + } else if (value.disabled === true) { + this.hide(); + return ''; } const titleMap = {