From 9f78224616a00da873f1ced6f14d77fc83d7fa32 Mon Sep 17 00:00:00 2001 From: Matt Spinler Date: Mon, 6 Nov 2017 12:32:35 -0600 Subject: 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 --- fault-monitor/fru-fault-monitor.cpp | 24 ------------------------ fault-monitor/fru-fault-monitor.hpp | 7 +++---- 2 files changed, 3 insertions(+), 28 deletions(-) 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 Add::processExistingCallouts(sdbusplus::bus::bus& bus) 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> 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 @@ class Remove 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; } -- cgit v1.2.1