PEL: Activate service indicators on new PEL

A service indicator is a device used to add the user during system
service actions.  In the case of PELs, service indicators are always
LEDs.

When a new PEL is created or received from the host, code will check the
service indicator policy to see if any indicators need to be set at that
time based on the PEL callouts.

There is a specific policy named LightPath that is the default, and it
is currently the only supported policy.  This policy has a set of rules
to say which called out location codes need their indicators activated.

After it determines the location codes, it looks up the corresponding
D-Bus inventory paths for them, and then looks up the LED group objects
to assert based on those inventory paths.

If, for any reason, the code can't get a complete list of FRU LEDs to
turn on, then it will turn on the System Attention Indicator LED.  It is
still TBD how that is actually done.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I771258a8957fb0944ec1f8787086123e068bc6cc
diff --git a/extensions/openpower-pels/manager.cpp b/extensions/openpower-pels/manager.cpp
index 19aeffd..841a514 100644
--- a/extensions/openpower-pels/manager.cpp
+++ b/extensions/openpower-pels/manager.cpp
@@ -18,6 +18,7 @@
 #include "additional_data.hpp"
 #include "json_utils.hpp"
 #include "pel.hpp"
+#include "service_indicators.hpp"
 
 #include <fmt/format.h>
 #include <sys/inotify.h>
@@ -144,6 +145,10 @@
             {
                 scheduleRepoPrune();
             }
+
+            // Activate any resulting service indicators if necessary
+            auto policy = service_indicators::getPolicy(*_dataIface);
+            policy->activate(*pel);
         }
         catch (std::exception& e)
         {
@@ -340,6 +345,10 @@
         }
         log<level::INFO>(msg.c_str());
     }
+
+    // Activate any resulting service indicators if necessary
+    auto policy = service_indicators::getPolicy(*_dataIface);
+    policy->activate(*pel);
 }
 
 sdbusplus::message::unix_fd Manager::getPEL(uint32_t pelID)