log_manager: use sdbusplus enum directly
Simplify the property parsing code by using the sdbusplus
support for pulling enumerations directly out of messages.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ic0af8b21567e70a3e7a0b92687eaeeaa00495e64
diff --git a/log_manager.cpp b/log_manager.cpp
index 67f6e10..a8e9685 100644
--- a/log_manager.cpp
+++ b/log_manager.cpp
@@ -337,8 +337,10 @@
void Manager::checkAndQuiesceHost()
{
+ using Host = sdbusplus::xyz::openbmc_project::State::server::Host;
+
// First check host state
- std::variant<std::string> property;
+ std::variant<Host::HostState> property;
auto method = this->busLog.new_method_call(
"xyz.openbmc_project.State.Host", "/xyz/openbmc_project/state/host0",
@@ -363,17 +365,8 @@
return;
}
- std::string hostState = std::get<std::string>(property);
-
- // If host state is empty, do nothing
- if (hostState.empty())
- {
- return;
- }
-
- using Host = sdbusplus::xyz::openbmc_project::State::server::Host;
- auto state = Host::convertHostStateFromString(hostState);
- if (state != Host::HostState::Running)
+ auto hostState = std::get<Host::HostState>(property);
+ if (hostState != Host::HostState::Running)
{
return;
}