PEL: Create class to read from the journal
Create a Journal class that can extract messages out of the journal and
return them as a vector of strings that look like:
"Dec 14 15:58:17 systemd[1]: systemd-tmpfiles-clean.service: Deactivated
successfully."
It can either grab the previous N entries, or the previous N entries
that match a specific SYSLOG_IDENTIFIER value.
The class follows the same strategy as the DataInterface class where a
base class pointer is passed into the PEL Manager class so that during
unit test it can be mocked.
Future commits will capture the journal into PEL UserData sections.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I9f4bb304c4b213165049fa00de2e62f962ae67f1
diff --git a/extensions/openpower-pels/entry_points.cpp b/extensions/openpower-pels/entry_points.cpp
index 156c666..c904afb 100644
--- a/extensions/openpower-pels/entry_points.cpp
+++ b/extensions/openpower-pels/entry_points.cpp
@@ -17,6 +17,7 @@
#include "elog_entry.hpp"
#include "event_logger.hpp"
#include "extensions.hpp"
+#include "journal.hpp"
#include "manager.hpp"
#include "pldm_interface.hpp"
@@ -44,16 +45,18 @@
std::unique_ptr<DataInterfaceBase> dataIface =
std::make_unique<DataInterface>(logManager.getBus());
+ std::unique_ptr<JournalBase> journal = std::make_unique<Journal>();
+
#ifndef DONT_SEND_PELS_TO_HOST
std::unique_ptr<HostInterface> hostIface = std::make_unique<PLDMInterface>(
logManager.getBus().get_event(), *(dataIface.get()));
manager = std::make_unique<Manager>(logManager, std::move(dataIface),
- std::move(logger),
+ std::move(logger), std::move(journal),
std::move(hostIface));
#else
manager = std::make_unique<Manager>(logManager, std::move(dataIface),
- std::move(logger));
+ std::move(logger), std::move(journal));
#endif
#ifdef PEL_ENABLE_PHAL