util::dbus: Make common the transition host support

Move transition host support from attention handler specific code to
common util code.

Signed-off-by: Ben Tyner <ben.tyner@ibm.com>
Change-Id: I7fb4970354aaeca65fcc074107f99262e504ac34
diff --git a/attn/attn_common.cpp b/attn/attn_common.cpp
index 4f333e8..89d28b9 100644
--- a/attn/attn_common.cpp
+++ b/attn/attn_common.cpp
@@ -12,32 +12,6 @@
 namespace attn
 {
 
-/** @brief Transition the host state */
-void transitionHost(const HostState i_hostState)
-{
-    // The host quiesce code will handle the instruction-stop task(s)
-    // thread_stop_all(); // in libpdbg
-
-    // We will be transitioning host by starting appropriate dbus target
-    std::string target = "obmc-host-quiesce@0.target"; // quiesce is default
-
-    // crash (mpipl) mode state requested
-    if (HostState::Crash == i_hostState)
-    {
-        target = "obmc-host-crash@0.target";
-    }
-
-    auto bus    = sdbusplus::bus::new_system();
-    auto method = bus.new_method_call(
-        "org.freedesktop.systemd1", "/org/freedesktop/systemd1",
-        "org.freedesktop.systemd1.Manager", "StartUnit");
-
-    method.append(target);    // target unit to start
-    method.append("replace"); // mode = replace conflicting queued jobs
-
-    bus.call_noreply(method); // start the service
-}
-
 /** @brief Traces some regs for hostboot */
 void addHbStatusRegs()
 {
diff --git a/attn/attn_common.hpp b/attn/attn_common.hpp
index 67d3f71..6f4428d 100644
--- a/attn/attn_common.hpp
+++ b/attn/attn_common.hpp
@@ -33,22 +33,6 @@
     ATTN_PDBG_SCOM = 3
 };
 
-enum class HostState
-{
-    Quiesce,
-    Diagnostic,
-    Crash
-};
-
-/**
- * @brief Transition the host state
- *
- * We will transition the host state by starting the appropriate dbus target.
- *
- * @param i_hostState the state to transition the host to
- */
-void transitionHost(const HostState i_hostState);
-
 /**
  * @brief Traces some regs for hostboot
  *
diff --git a/attn/ti_handler.cpp b/attn/ti_handler.cpp
index 69191ab..fb0893f 100644
--- a/attn/ti_handler.cpp
+++ b/attn/ti_handler.cpp
@@ -5,6 +5,7 @@
 #include <attn/ti_handler.hpp>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/exception.hpp>
+#include <util/dbus.hpp>
 
 #include <iomanip>
 #include <iostream>
@@ -100,12 +101,12 @@
     if (autoRebootEnabled())
     {
         // If autoreboot is enabled we will start crash (mpipl) mode target
-        transitionHost(HostState::Crash);
+        util::dbus::transitionHost(util::dbus::HostState::Crash);
     }
     else
     {
         // If autoreboot is disabled we will quiesce the host
-        transitionHost(HostState::Quiesce);
+        util::dbus::transitionHost(util::dbus::HostState::Quiesce);
     }
 }
 
@@ -253,7 +254,7 @@
 
     if (true == terminateHost)
     {
-        transitionHost(HostState::Quiesce);
+        util::dbus::transitionHost(util::dbus::HostState::Quiesce);
     }
 }
 
diff --git a/attn/vital_handler.cpp b/attn/vital_handler.cpp
index b0a771e..910c005 100644
--- a/attn/vital_handler.cpp
+++ b/attn/vital_handler.cpp
@@ -2,6 +2,7 @@
 #include <attn/attn_common.hpp>
 #include <attn/attn_logging.hpp>
 #include <sdbusplus/bus.hpp>
+#include <util/dbus.hpp>
 
 namespace attn
 {
@@ -28,7 +29,7 @@
     else
     {
         // transition host state after analyses
-        transitionHost(HostState::Quiesce);
+        util::dbus::transitionHost(util::dbus::HostState::Quiesce);
 
         // generate pel
         eventVital();