Save persistent triggers to storage
Create json storage file for persistent triggers.
Handle persistent dbus property.
Save/remove persistent triggers on add/delete.
Cover code with UTs.
Tested:
- Passed unit tests
- Tested on QEMU
* adding new valid and invalid trigger from cli
* verifying if valid trigger is properly stored
* deleting existed trigger from storage
Change-Id: I243326e84833a8cb22075fbf565573b62b205b4a
Signed-off-by: Cezary Zwolak <cezary.zwolak@intel.com>
Signed-off-by: Lukasz Kazmierczak <lukasz.kazmierczak@intel.com>
diff --git a/src/trigger_manager.cpp b/src/trigger_manager.cpp
index bf372c2..3882022 100644
--- a/src/trigger_manager.cpp
+++ b/src/trigger_manager.cpp
@@ -2,8 +2,10 @@
TriggerManager::TriggerManager(
std::unique_ptr<interfaces::TriggerFactory> triggerFactoryIn,
+ std::unique_ptr<interfaces::JsonStorage> triggerStorageIn,
const std::shared_ptr<sdbusplus::asio::object_server>& objServer) :
- triggerFactory(std::move(triggerFactoryIn))
+ triggerFactory(std::move(triggerFactoryIn)),
+ triggerStorage(std::move(triggerStorageIn))
{
managerIface = objServer->add_unique_interface(
triggerManagerPath, triggerManagerIfaceName, [this](auto& iface) {
@@ -36,7 +38,8 @@
triggers.emplace_back(triggerFactory->make(
yield, name, isDiscrete, logToJournal, logToRedfish,
- updateReport, sensors, reportNames, thresholds, *this));
+ updateReport, sensors, reportNames, thresholds, *this,
+ *triggerStorage));
return triggers.back()->getPath();
});
});