Implement Report persistency
Now Report properties are stored in non-volatile memory. It allows
to restore Report after system restart. Persistency of a report is
controlled by Persistency property in Report interface.
Tested:
- Passed unit tests
- Verified that report is stored in /var/lib/telemetry dir
- Verified that report is restored from storage after telemetry
service start
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
Change-Id: Iccfe21603eecffc4e174a4403f699b03de320db9
diff --git a/src/telemetry.hpp b/src/telemetry.hpp
index bfcc99a..4a6a6b0 100644
--- a/src/telemetry.hpp
+++ b/src/telemetry.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include "persistent_json_storage.hpp"
#include "report_factory.hpp"
#include "report_manager.hpp"
@@ -13,9 +14,11 @@
public:
Telemetry(std::shared_ptr<sdbusplus::asio::connection> bus) :
objServer(std::make_shared<sdbusplus::asio::object_server>(bus)),
- reportManager(
- std::make_unique<ReportFactory>(bus->get_io_context(), objServer),
- objServer)
+ reportManager(std::make_unique<ReportFactory>(bus, objServer),
+ std::make_unique<PersistentJsonStorage>(
+ interfaces::JsonStorage::DirectoryPath(
+ "/var/lib/telemetry/Reports")),
+ objServer)
{}
private: