PEL: Restore Resolution property for existing PELs

The Resolution D-Bus property is filled in with PEL callouts, but this
wasn't being done on startup for existing PELs. This commit adds that
functionality.

With 2500 PELs this takes a second or less.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I0d8f381d8f1db8e49cf6d46b5b88ee35c242a509
diff --git a/extensions/openpower-pels/manager.cpp b/extensions/openpower-pels/manager.cpp
index a40305d..e64e858 100644
--- a/extensions/openpower-pels/manager.cpp
+++ b/extensions/openpower-pels/manager.cpp
@@ -197,7 +197,7 @@
         // Check if firmware should quiesce system due to error
         checkPelAndQuiesce(pel);
         updateEventId(pel);
-        updateResolution(pel);
+        updateResolution(*pel);
         createPELEntry(obmcLogID);
     }
     else
@@ -404,7 +404,7 @@
     // Check if firmware should quiesce system due to error
     checkPelAndQuiesce(pel);
     updateEventId(pel);
-    updateResolution(pel);
+    updateResolution(*pel);
     createPELEntry(obmcLogID);
 }
 
@@ -781,14 +781,16 @@
     return resolution;
 }
 
-void Manager::updateResolution(std::unique_ptr<openpower::pels::PEL>& pel)
+bool Manager::updateResolution(const openpower::pels::PEL& pel)
 {
-    std::string callouts = getResolution(*pel);
-    auto entryN = _logManager.entries.find(pel->obmcLogID());
+    std::string callouts = getResolution(pel);
+    auto entryN = _logManager.entries.find(pel.obmcLogID());
     if (entryN != _logManager.entries.end())
     {
         entryN->second->resolution(callouts, true);
     }
+
+    return false;
 }
 
 void Manager::setEntryPath(uint32_t obmcLogID)
diff --git a/extensions/openpower-pels/manager.hpp b/extensions/openpower-pels/manager.hpp
index 8d0079d..bfe01a1 100644
--- a/extensions/openpower-pels/manager.hpp
+++ b/extensions/openpower-pels/manager.hpp
@@ -63,6 +63,10 @@
             // Create PELEntry interface and setup properties with their values
             createPELEntry(entry.first, true);
         }
+
+        _repo.for_each(
+            std::bind(&Manager::updateResolution, this, std::placeholders::_1));
+
         setupPELDeleteWatch();
     }
 
@@ -409,8 +413,10 @@
      * Update the resolution property of D-bus with callouts extracted from PEL
      *
      * @param[in] pel - The PEL to use
+     *
+     * @return bool - false for Repositor::for_each().
      */
-    void updateResolution(std::unique_ptr<openpower::pels::PEL>& pel);
+    bool updateResolution(const openpower::pels::PEL& pel);
 
     /**
      * @brief Create PELEntry Interface with supported properties