From 7cc8972170d5bd6f3d93ff9419210689ba7438fd Mon Sep 17 00:00:00 2001 From: Markus Hilger Date: Tue, 14 Jul 2026 13:33:20 +0200 Subject: [PATCH] Skip CPU temperatures from unbooted EUREKA node BMCs A node whose BMC is not reporting returns Reading 0 from its temperature sensors, dragging averages down with meaningless values. The ComputerSystem Oem data flags this via HasBMCMetrics; skip such nodes, and keep collecting when the flag is absent. --- confluent_server/aiohmi/redfish/oem/megware/eureka.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/confluent_server/aiohmi/redfish/oem/megware/eureka.py b/confluent_server/aiohmi/redfish/oem/megware/eureka.py index 6d0e64b6..587d4f67 100644 --- a/confluent_server/aiohmi/redfish/oem/megware/eureka.py +++ b/confluent_server/aiohmi/redfish/oem/megware/eureka.py @@ -86,7 +86,9 @@ class OEMHandler(generic.OEMHandler): """Read CPU temperatures from EUREKA BMC sensor endpoints. Reads BMC{N}CPU0Temp and BMC{N}CPU1Temp sensors from - /redfish/v1/Chassis/1/Sensors/. + /redfish/v1/Chassis/1/Sensors/. Nodes whose BMC is not + currently reporting (HasBMCMetrics false) are skipped, as + their sensors read a meaningless 0. """ cputemps = [] for sysurl in self._allsysurls: @@ -94,6 +96,13 @@ class OEMHandler(generic.OEMHandler): nodeid = nodeid.replace('Node', '') if not nodeid.isdigit(): continue + try: + sysinfo = await fishclient._do_web_request(sysurl) + except Exception: + continue + if not sysinfo.get('Oem', {}).get('Megware', {}).get( + 'HasBMCMetrics', True): + continue for cpu in ('CPU0', 'CPU1'): try: sensor_url = '/redfish/v1/Chassis/1/Sensors/BMC{}{}Temp'.format(nodeid, cpu)