Introduce ignoreFailIfHostOff config setting
Some sensors only provide valid readings when the host is powered on.
This change introduces the `ignoreFailIfHostOff` configuration option to
differentiate between unavailable readings based on host state.
- Host OFF: Sensor unavailable is acceptable and will not be treated as
a failure.
- Host ON (running): Sensor unavailable is unexpected, and the failsafe
mode will be triggered.
This ensures that sensors dependent on host power state are handled
correctly without causing unnecessary failsafe triggers during host-off.
Tested on Catalina: failsafe mode is not triggered when the host is off.
- config.json example: add `ignoreFailIfHostOff` for sensors only
available when the host is on.
```
{
"sensors": [
......
{
"name": "HDDBOARD_SSD0_TEMP_C",
"type": "temp",
"readPath": "/xyz/openbmc_project/sensors/temperature/HDDBOARD_SSD0_TEMP_C",
"timeout": 0,
"ignoreFailIfHostOff": true,
"ignoreDbusMinMax": true
},
{
"name": "HDDBOARD_SSD2_TEMP_C",
"type": "temp",
"readPath": "/xyz/openbmc_project/sensors/temperature/HDDBOARD_SSD2_TEMP_C",
"timeout": 0,
"ignoreFailIfHostOff": true,
"ignoreDbusMinMax": true
},
{
"name": "PDB_P48V_HSC1_TEMP_C",
"type": "temp",
"readPath": "/xyz/openbmc_project/sensors/temperature/PDB_P48V_HSC1_TEMP_C",
"timeout": 0,
"ignoreDbusMinMax": true
},
{
"name": "PDB_VR_P12V_N1_TEMP_C",
"type": "temp",
"readPath": "/xyz/openbmc_project/sensors/temperature/PDB_VR_P12V_N1_TEMP_C",
"timeout": 0,
"ignoreFailIfHostOff": true,
"ignoreDbusMinMax": true
},
{
"name": "PDB_VR_P12V_N2_TEMP_C",
"type": "temp",
"readPath": "/xyz/openbmc_project/sensors/temperature/PDB_VR_P12V_N2_TEMP_C",
"timeout": 0,
"ignoreFailIfHostOff": true,
"ignoreDbusMinMax": true
},
{
"name": "IOB0_NIC0_OSFP_TEMP_C",
"type": "temp",
"readPath": "/xyz/openbmc_project/sensors/temperature/IOB0_NIC0_OSFP_TEMP_C",
"timeout": 0,
"ignoreFailIfHostOff": true,
"ignoreDbusMinMax": true
},
{
"name": "IOB0_NIC1_OSFP_TEMP_C",
"type": "temp",
"readPath": "/xyz/openbmc_project/sensors/temperature/IOB0_NIC1_OSFP_TEMP_C",
"timeout": 0,
"ignoreFailIfHostOff": true,
"ignoreDbusMinMax": true
},
{
"name": "IOB1_NIC0_OSFP_TEMP_C",
"type": "temp",
"readPath": "/xyz/openbmc_project/sensors/temperature/IOB1_NIC0_OSFP_TEMP_C",
"timeout": 0,
"ignoreFailIfHostOff": true,
"ignoreDbusMinMax": true
},
{
"name": "IOB1_NIC1_OSFP_TEMP_C",
"type": "temp",
"readPath": "/xyz/openbmc_project/sensors/temperature/IOB1_NIC1_OSFP_TEMP_C",
"timeout": 0,
"ignoreFailIfHostOff": true,
"ignoreDbusMinMax": true
},
......
],
"zones": [
......
]
}
```
Change-Id: I5355c453ca3c6d918c197dcd2cc9119e471d615d
Signed-off-by: Potin Lai <potin.lai@quantatw.com>
diff --git a/util.cpp b/util.cpp
index bced2c9..61f8d4a 100644
--- a/util.cpp
+++ b/util.cpp
@@ -49,7 +49,8 @@
std::cout << pair.second.min << ", ";
std::cout << pair.second.max << ", ";
std::cout << pair.second.timeout << ", ";
- std::cout << pair.second.unavailableAsFailed << "},\n\t},\n";
+ std::cout << pair.second.unavailableAsFailed << ", ";
+ std::cout << pair.second.ignoreFailIfHostOff << "},\n\t},\n";
}
std::cout << "}\n\n";
std::cout << "ZoneDetailsConfig\n";