From 1b2f15c3923390215f2f1ec431f015b4090db034 Mon Sep 17 00:00:00 2001 From: Markus Hilger Date: Thu, 13 Aug 2026 23:50:55 +0200 Subject: [PATCH] Answer a firmware category request over ipmi honestly nodefirmware disks reported the bmc version, and so did adapters and misc. The generic handler takes a category and ignores it, and the ipmi plugin does not filter either, so every category answered with the one entry ipmi can report. Apply the rule R13 established for a redfish inventory that does not categorise itself: the bmc's own firmware is system firmware, so it answers for core and for nothing else. Filtering in the handler that produces the entry leaves an oem handler that does categorise its own firmware free to answer for more. --- confluent_server/aiohmi/ipmi/oem/generic.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/confluent_server/aiohmi/ipmi/oem/generic.py b/confluent_server/aiohmi/ipmi/oem/generic.py index b81bf677..3e9d30a9 100644 --- a/confluent_server/aiohmi/ipmi/oem/generic.py +++ b/confluent_server/aiohmi/ipmi/oem/generic.py @@ -301,6 +301,11 @@ class OEMHandler(object): # code to know whether it cares or not. The main purpose of the # components argument is to indicate when certain performance # optimizations can be performed. + if category not in (None, 'all', 'core'): + # The bmc firmware is system firmware, so it is the answer to + # 'core' and to nothing else. Without this a request for, say, + # disk firmware answers with the bmc version. + return yield 'BMC Version', {'version': bmcver} async def get_oem_capping_enabled(self):