summaryrefslogtreecommitdiff
path: root/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/host-poweroff
blob: 624d6d50c0a0466b66f6b563afe627ea66df2cf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash

# Provide source directive to shellcheck.
# shellcheck source=meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/power-cmd
source /usr/libexec/phosphor-state-manager/power-cmd

HOST_ID=$1
SLOT_ID=$(( $1-1  << 2 ))

# Host Power Off
host-power-off()
{
        for pwr_cmd in "${power_seq[@]}"
        do
             result="$(busctl call "$SERVICE" "$OBJECT_PATH" "$INTERFACE" sendRequest yyyyay "$SLOT_ID" "$NETFN" "$LUN" "$CMD" "$DATA_LEN" 0x01 0x42 0x01 0x00 "$pwr_cmd")"
             echo "$result"
             if [ "$pwr_cmd" == "$POWER_BTN_LOW" ]
             then
                     sleep 6
             fi
        done

        # Check host stattus after doing host power off
        host_status=$(host-power-status $SLOT_ID)
        if [ "$host_status" == "$STATE_OFF" ]
        then
             busctl set-property "$HOST_BUS_NAME""$HOST_ID" "$HOST_OBJ_PATH""$HOST_ID" "$HOST_INTF_NAME" "$HOST_PROPERTY_NAME" s "$HOST_OFF"
             echo "Host power off"
             exit 0;
        else
             busctl set-property "$HOST_BUS_NAME""$HOST_ID" "$HOST_OBJ_PATH""$HOST_ID" "$HOST_INTF_NAME" "$HOST_PROPERTY_NAME" s "$HOST_ON"
             echo "Host power on"
             exit 0;
        fi
}

# Check Host Response and Status
host_status=$(host-power-status $SLOT_ID)
if [ "$host_status" == "$STATE_ON" ]
then
       host-power-off
else
       echo "Power is already off"
       exit 1;
fi