#!/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 CHASSIS_ID=$1 SLOT=$(( $1-1 )) OFFSET=$(( 0x9 + SLOT )) # Server 12v power on chassis-power-on() { result=$(i2cset -y "$CPLD_BUS_NUM" "$CPLD_PWR_CTRL_ADDR" "$OFFSET" "$POW_ON_SLOT") echo "$result" sleep 1 # Check chassis stattus after doing 12V on chassis_status=$(chassis-power-status $SLOT) if [ "$chassis_status" == "$STATE_ON" ] then busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_ON" echo "Chassis is power on" else busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_OFF" echo "Chassis is power off" exit 0; fi } chassis_status=$(chassis-power-status $SLOT) if [ "$chassis_status" == "$STATE_UNKNOWN" ] then echo "Invalid slot id" exit 1; elif [ "$chassis_status" == "$STATE_OFF" ] then chassis-power-on exit 0; else echo "Chassis is already on" exit 0; fi