blob: ff6252d4538deb7cd9a88957c612c870a3795ac7 [file] [log] [blame]
Chicago Duan184f6022020-04-17 11:30:49 +08001#include "common/utils.hpp"
2#include "softoff.hpp"
George Liu4c1a3fd2020-03-10 08:25:21 +08003
Riya Dixit49cfb132023-03-02 04:26:53 -06004#include <phosphor-logging/lg2.hpp>
5
George Liu4c1a3fd2020-03-10 08:25:21 +08006#include <iostream>
7
Riya Dixit49cfb132023-03-02 04:26:53 -06008PHOSPHOR_LOG2_USING;
9
George Liu4c1a3fd2020-03-10 08:25:21 +080010int main()
11{
Chicago Duan184f6022020-04-17 11:30:49 +080012 // Get a default event loop
13 auto event = sdeventplus::Event::get_default();
14
15 // Get a handle to system D-Bus.
16 auto& bus = pldm::utils::DBusHandler::getBus();
17
18 // Attach the bus to sd_event to service user requests
19 bus.attach_event(event.get(), SD_EVENT_PRIORITY_NORMAL);
20
21 pldm::SoftPowerOff softPower(bus, event.get());
22
23 if (softPower.isError())
24 {
Riya Dixit49cfb132023-03-02 04:26:53 -060025 error(
26 "Host failed to gracefully shutdown, exiting pldm-softpoweroff app");
Chicago Duan184f6022020-04-17 11:30:49 +080027 return -1;
28 }
29
30 if (softPower.isCompleted())
31 {
Riya Dixit49cfb132023-03-02 04:26:53 -060032 error(
33 "Host current state is not Running, exiting pldm-softpoweroff app");
Chicago Duan184f6022020-04-17 11:30:49 +080034 return 0;
35 }
36
37 // Send the gracefully shutdown request to the host and
38 // wait the host gracefully shutdown.
39 if (softPower.hostSoftOff(event))
40 {
Riya Dixit49cfb132023-03-02 04:26:53 -060041 error(
42 "pldm-softpoweroff:Failure in sending soft off request to the host. Exiting pldm-softpoweroff app");
Chicago Duan184f6022020-04-17 11:30:49 +080043 return -1;
44 }
45
46 if (softPower.isTimerExpired() && softPower.isReceiveResponse())
47 {
48 pldm::utils::reportError(
49 "pldm soft off: Waiting for the host soft off timeout");
Riya Dixit49cfb132023-03-02 04:26:53 -060050 error(
51 "PLDM host soft off: ERROR! Wait for the host soft off timeout. Exit the pldm-softpoweroff");
Chicago Duan184f6022020-04-17 11:30:49 +080052 return -1;
53 }
54
George Liu4c1a3fd2020-03-10 08:25:21 +080055 return 0;
56}