Add persistancy for boot progress and os status
Resolves openbmc/openbmc#2181
Change-Id: I807dd94efcea1118060f8594c7f69e333a3ea682
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
diff --git a/host_state_manager.hpp b/host_state_manager.hpp
index a0ba768..35a4bdd 100644
--- a/host_state_manager.hpp
+++ b/host_state_manager.hpp
@@ -80,6 +80,12 @@
/** @brief Set value of HostTransition */
Transition requestedHostTransition(Transition value) override;
+ /** @brief Set Value for boot progress */
+ ProgressStages bootProgress(ProgressStages value) override;
+
+ /** @brief Set Value for Operating System Status */
+ OSStatus operatingSystemState(OSStatus value) override;
+
/** @brief Set value of CurrentHostState */
HostState currentHostState(HostState value) override;
@@ -184,7 +190,13 @@
{
archive(convertForMessage(sdbusplus::xyz::openbmc_project::
State::server::Host::
- requestedHostTransition()));
+ requestedHostTransition()),
+ convertForMessage(sdbusplus::xyz::openbmc_project::
+ State::Boot::server::Progress::
+ bootProgress()),
+ convertForMessage(sdbusplus::xyz::openbmc_project::
+ State::OperatingSystem::server::Status::
+ operatingSystemState()));
}
/** @brief Function required by Cereal to perform deserialization.
@@ -195,13 +207,21 @@
template<class Archive>
void load(Archive& archive)
{
- std::string str;
- archive(str);
- auto reqTran = Host::convertTransitionFromString(str);
+ std::string reqTranState;
+ std::string bootProgress;
+ std::string osState;
+ archive(reqTranState, bootProgress, osState);
+ auto reqTran = Host::convertTransitionFromString(reqTranState);
// When restoring, set the requested state with persistent value
// but don't call the override which would execute it
sdbusplus::xyz::openbmc_project::State::server::Host::
requestedHostTransition(reqTran);
+ sdbusplus::xyz::openbmc_project::State::Boot::server::Progress::
+ bootProgress(
+ Host::convertProgressStagesFromString(bootProgress));
+ sdbusplus::xyz::openbmc_project::State::OperatingSystem::server::
+ Status::operatingSystemState(
+ Host::convertOSStatusFromString(osState));
}
/** @brief Serialize and persist requested host state