Obtaining fan/temperature sensor status for Redfish

Shawn McCarney shawnmm at linux.vnet.ibm.com
Fri Apr 26 08:08:06 AEST 2019


Hi,

The Redfish Thermal URI (/redfish/v1/Chassis/{ChassisId}/Thermal) 
returns all the fan and temperature sensors within a chassis.

Each returned fan/temperature sensor contains a Status object with the 
following properties:
* Health: Health state of the resource (OK, Warning, Critical)
* State: State of the resource (Absent, Disabled, Enabled, etc.)

Currently bmcweb always returns a Health value of "OK" and a State value 
of"Enabled".

I would like to enhance bmcweb to return more accurate values in the 
Status object when possible.  Below I have summarized a proposed 
design.  Does this sound acceptable?

== Proposed Design ==

* Initially assume Redfish Status->Health value of "OK" and 
Status->State value of "Enabled" as it does today.
* Use ObjectMapper associations to find the DBus inventory object path 
that is related to the DBus sensor (if available).
* Get Functional property of 
xyz.openbmc_project.State.Decorator.OperationalStatus interface for 
inventory object path (if available).
* Set Redfish Status->Health to "Critical" if DBus Functional property 
is false.
* Get Present property of xyz.openbmc_project.Inventory.Item interface 
for inventory object path (if available).
* Set Redfish Status->State to "Absent" if DBus Present property is 
false.  Also remove the Redfish Status->Health property from the 
response if Present is false.

== Notes ==

 From the Redfish documentation I read, it was unclear whether the 
Redfish Status object was intended to describe the sensor itself (such 
as a fan controller chip) or the hardware being monitored by the sensor 
(such as a fan).

It was also unclear what the value of the Status->Health property should 
be for hardware that is not present.

I posted these questions to the Redfish forum:
* https://redfishforum.com/thread/187/intended-meaning-status-object-temps

Their responses were:
* Status is for the hardware being monitored, not the sensor itself.
* Status->Health should probably not be returned if hardware is not present.

Thanks,

Shawn McCarney



More information about the openbmc mailing list