control: Have iA match use arg0Path param
InterfacesAdded signals are sent from the path the ObjectManager is
implemented on, and the path that has the new interface is in the first
argument of the signal.
For example, this dbus-monitor output:
path=/org/open_power/control;
interface=org.freedesktop.DBus.ObjectManager;
member=InterfacesAdded
object path "/org/open_power/control/occ1"
Update the match string for this signal to match on the group member
using 'arg0path' (the .../occ1 entry above) instead of 'path' (the
/org/open_power/control entry).
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: If22157aa863504415f771aa366bc45b0e91405d7
diff --git a/control/json/triggers/signal.cpp b/control/json/triggers/signal.cpp
index 8a8e17e..fb72f89 100644
--- a/control/json/triggers/signal.cpp
+++ b/control/json/triggers/signal.cpp
@@ -124,7 +124,8 @@
for (const auto& member : group.getMembers())
{
// Setup interfaces added signal handler on the group member
- const auto match = rules::interfacesAdded(member);
+ const auto match =
+ rules::interfacesAdded() + rules::argNpath(0, member);
SignalPkg signalPkg = {Handlers::interfacesAdded,
SignalObject(std::cref(member),
std::cref(group.getInterface()),