Use interfaces-removed for association removes
The mapper will no longer emit properties-changed signals
when the last endpoints property is removed from the fault
association object. It will only emit an interfaces-removed
signal in that case, so change the code to subscribe to the
interfaces-removed signal instead.
Change-Id: I225376e550d21b82473015324cd9a261e16fe6db
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/fault-monitor/fru-fault-monitor.cpp b/fault-monitor/fru-fault-monitor.cpp
index 1988d1b..cb6c4e4 100644
--- a/fault-monitor/fru-fault-monitor.cpp
+++ b/fault-monitor/fru-fault-monitor.cpp
@@ -253,30 +253,6 @@
void Remove::removed(sdbusplus::message::message& msg)
{
auto bus = msg.get_bus();
- std::string assoc;
- msg.read(assoc);
-
- if (assoc.compare("org.openbmc.Association"))
- {
- //Skip if not about association
- return;
- }
-
- std::map<std::string, std::vector<std::string>> endPoints;
- msg.read(endPoints);
- auto it = endPoints.find("endpoints");
-
- if (it == endPoints.end())
- {
- //No end points,skip
- return;
- }
-
- if (!((*it).second.empty()))
- {
- //Skip, end points are not empty
- return;
- }
action(bus, inventoryPath, false);
return;
diff --git a/fault-monitor/fru-fault-monitor.hpp b/fault-monitor/fru-fault-monitor.hpp
index 897ef05..77d3be2 100644
--- a/fault-monitor/fru-fault-monitor.hpp
+++ b/fault-monitor/fru-fault-monitor.hpp
@@ -124,10 +124,9 @@
namespace MatchRules = sdbusplus::bus::match::rules;
std::string matchStmt =
- MatchRules::type::signal() +
- MatchRules::interface("org.freedesktop.DBus.Properties") +
- MatchRules::member("PropertiesChanged") +
- MatchRules::path(path + "/" + CALLOUT_REV_ASSOCIATION);
+ MatchRules::interfacesRemoved() +
+ MatchRules::argNpath(
+ 0, path + "/" + CALLOUT_REV_ASSOCIATION);
return matchStmt;
}