blob: cca2a667049afd8dee34cbccaa6966a49d570ee6 [file] [log] [blame]
Ben Tyner9ae5ca42020-02-28 13:13:50 -06001#include <logging.hpp>
2#include <sdbusplus/bus.hpp>
3
4#include <sstream>
5
6namespace attn
7{
8
9/** @brief Start host diagnostic mode systemd unit */
10void tiHandler()
11{
12 // trace message
13 std::stringstream ss;
14 ss << "start host diagnostic mode service" << std::endl;
15 log<level::INFO>(ss.str().c_str());
16
17 // Use the systemd service manager object interface to call the start unit
18 // method with the obmc-host-diagnostic-mode target.
19 auto bus = sdbusplus::bus::new_system();
20 auto method = bus.new_method_call(
21 "org.freedesktop.systemd1", "/org/freedesktop/systemd1",
22 "org.freedesktop.systemd1.Manager", "StartUnit");
23
24 method.append("obmc-host-diagnostic-mode@0.target"); // unit to activate
25 method.append("replace"); // mode = replace conflicting queued jobs
26 bus.call_noreply(method); // start the service
27
28 return;
29}
30
31} // namespace attn