psu-ng: Log errors for missing power supplies
If a power supply is not present, create an error.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
Change-Id: I8848f00572019588facbd44405e8d37d5106fb68
diff --git a/phosphor-power-supply/psu_manager.cpp b/phosphor-power-supply/psu_manager.cpp
index c84201e..32847b8 100644
--- a/phosphor-power-supply/psu_manager.cpp
+++ b/phosphor-power-supply/psu_manager.cpp
@@ -176,11 +176,20 @@
for (auto& psu : psus)
{
+ std::map<std::string, std::string> additionalData;
+ additionalData["_PID"] = std::to_string(getpid());
// TODO: Fault priorities #918
- if (!psu->isFaultLogged() && psu->isFaulted())
+ if (!psu->isFaultLogged() && !psu->isPresent())
{
- std::map<std::string, std::string> additionalData;
- additionalData["_PID"] = std::to_string(getpid());
+ // Create error for power supply missing.
+ additionalData["CALLOUT_INVENTORY_PATH"] = psu->getInventoryPath();
+ additionalData["CALLOUT_PRIORITY"] = "H";
+ createError("xyz.openbmc_project.Power.PowerSupply.Error.Missing",
+ additionalData);
+ psu->setFaultLogged();
+ }
+ else if (!psu->isFaultLogged() && psu->isFaulted())
+ {
additionalData["STATUS_WORD"] =
std::to_string(psu->getStatusWord());