From 492bfeb97449d5072c27ba709a1a127458a06d0b Mon Sep 17 00:00:00 2001 From: Markus Hilger Date: Mon, 31 Aug 2026 22:49:58 +0200 Subject: [PATCH] Say that IPMI cannot read an identify state nodeidentify against an IPMI BMC printed the node name, nothing after it, and exited 0. A script checking the exit code carries on with an empty value, which is worse than being turned down. IPMI can set the identify light and has no command to read it back, so aiohmi has no get_identify. The empty state was a way of not saying so. The comment above that branch called identify "read-only", which is the opposite of the truth. --- .../confluent/plugins/hardwaremanagement/ipmi.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py index 95ada665..f8c1e389 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py @@ -1482,8 +1482,13 @@ class IpmiHandler: node=self.node, state=self.inputdata.inputbynode[self.node])) return elif 'read' == self.op: - # ipmi has identify as read-only for now - await self.output.put(msg.IdentifyState(node=self.node, state='')) + # IPMI can set the identify light but has no command to read it + # back, so aiohmi offers no get_identify. This used to answer an + # empty state, which nodeidentify prints as the node name and + # nothing else, exit 0. + await self.output.put(msg.ConfluentNodeError( + self.node, + 'IPMI provides no way to read the identify state')) return async def power(self):