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