diff --git a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py index e4604fc9..b6f7423b 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py @@ -422,8 +422,22 @@ class IpmiHandler(object): newinf = {'present': True, 'information': invdata[1]} newinf['name'] = invdata[0] invitems.append(newinf) - newinvdata = {'inventory': invitems} - self.output.put(msg.KeyValueData(newinvdata, self.node)) + else: + self.make_inventory_map() + compname = self.invmap.get(component, None) + if compname is None: + self.output.put(msg.ConfluentTargetNotFound()) + return + invdata = self.ipmicmd.get_inventory_of_component(compname) + if invdata is None: + newinf = {'present': False, 'information': None} + else: + sanitize_invdata(invdata) + newinf = {'present': True, 'information': invdata} + newinf['name'] = compname + invitems.append(newinf) + newinvdata = {'inventory': invitems} + self.output.put(msg.KeyValueData(newinvdata, self.node)) def handle_sensors(self): if self.element[-1] == '':