FruDevice: Fix power match
Power match was triggered off the old power interface.
Tested: After DC on, new devices were discovered
Change-Id: I2166fc987907606ad63cd1cbb96bf5bc34ef7987
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/src/FruDevice.cpp b/src/FruDevice.cpp
index b20b0d3..7e37dd2 100644
--- a/src/FruDevice.cpp
+++ b/src/FruDevice.cpp
@@ -1206,10 +1206,16 @@
std::variant<std::string, bool, int64_t, uint64_t, double>>
values;
message.read(objectName, values);
- auto findPgood = values.find("pgood");
- if (findPgood != values.end())
+ auto findState = values.find("CurrentHostState");
+ bool on = false;
+ if (findState != values.end())
{
+ on = boost::ends_with(std::get<std::string>(findState->second),
+ "Running");
+ }
+ if (on)
+ {
rescanBusses(io, busMap, dbusInterfaceMap, objServer);
}
};
@@ -1217,8 +1223,8 @@
sdbusplus::bus::match::match powerMatch = sdbusplus::bus::match::match(
static_cast<sdbusplus::bus::bus&>(*systemBus),
"type='signal',interface='org.freedesktop.DBus.Properties',path='/xyz/"
- "openbmc_project/Chassis/Control/"
- "Power0',arg0='xyz.openbmc_project.Chassis.Control.Power'",
+ "openbmc_project/state/"
+ "host0',arg0='xyz.openbmc_project.State.Host'",
eventHandler);
int fd = inotify_init();