PEL: Support resolution property
Support resolution property to add callouts
Tested: Created new PEL using busctl and checked for the property to
see if the value is updated. The error log daemon was restarted and the
property is checked again to make sure the value is restored.
Verified serialization of new error log by recreating it on a old code
version to make sure logs are created w/o the new property and the
daemon did not crash.
Result:
root@rainier:~# busctl get-property xyz.openbmc_project.Logging \
/xyz/openbmc_project/logging/entry/1 xyz.openbmc_project.Logging.\
Entry Resolution
s "1. Priority: High, Procedure: BMCSP02\n2. Priority: Medium, PN: \
SVCDOCS\n"
Test with location Code:
root@p10bmc:~# busctl get-property xyz.openbmc_project.Logging \
/xyz/openbmc_project/logging/entry/3 xyz.openbmc_project.Logging.Entry \
Resolution
s "1. Location Code: U78DA.ND0.1234567-P0, Priority: Medium, PN: SVCDOCS\n2. \
Priority: Low, Procedure: BMCSP02\n"
Signed-off-by: Vijay Lobo <vijaylobo@gmail.com>
Change-Id: I44eebbf794efeb8e752fff98de7c638c927982cd
diff --git a/extensions/openpower-pels/manager.hpp b/extensions/openpower-pels/manager.hpp
index aee3eab..aa4a393 100644
--- a/extensions/openpower-pels/manager.hpp
+++ b/extensions/openpower-pels/manager.hpp
@@ -212,6 +212,13 @@
static std::vector<uint8_t> eselToRawData(const std::string& esel);
/**
+ * @brief Generate resolution string from the PEL
+ *
+ * @param[in] pel - The PEL to use
+ */
+ std::string getResolution(const openpower::pels::PEL& pel) const;
+
+ /**
* @brief Generate event ID from the PEL
*
* @param[in] pel - The PEL to use
@@ -387,6 +394,15 @@
void setServiceProviderNotifyFlag(uint32_t obmcLogID);
/**
+ * @brief Update resolution D-bus property for this error log
+ *
+ * Update the resolution property of D-bus with callouts extracted from PEL
+ *
+ * @param[in] pel - The PEL to use
+ */
+ void updateResolution(std::unique_ptr<openpower::pels::PEL>& pel);
+
+ /**
* @brief Reference to phosphor-logging's Manager class
*/
phosphor::logging::internal::Manager& _logManager;