From ccd06260e4e885dde2e1d6e4d6750d5a769ea7c1 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Wed, 20 Dec 2023 08:14:03 -0600 Subject: [PATCH] Update powerwall.sh --- powerwall.sh | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/powerwall.sh b/powerwall.sh index db304e9e..3d3b4513 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -530,6 +530,12 @@ HOSTMGMT(){ ([ "${HOST}" == "" ] || ([ "${POWER}" == "" ] && [ "${ESXI}" == "" ])) && echo -e "Invalid command arguments\n" && exit 1 + if [ "${POWER^^}" == "OFF" ] || [ "${ESXI^^}" == "OFF" ]; then + read -n 1 -p "Are you sure you wish to power down '${ESXI_HOST}' ? (y/N): " choice + [ "${choice^^}" != "Y" ] && exit 0 + fi + + if [ "${MODE}" == "esxi" ]; then if [ "${ESXI_HOST}" == "ALL" ] || [ "${ESXI_HOST}" == "MAINSITE" ] || [ "${ESXI_HOST}" == "OFFSITE" ] || [ "${ESXI_HOST}" == "MAIN" ] || [ "${ESXI_HOST}" == "SYS" ]; then if [ ${MN} -eq 1 ]; then @@ -543,17 +549,17 @@ HOSTMGMT(){ else if [ ${MN} -eq 1 ]; then echo -e "${idsCL[LightGreen]}PUTTING '${ESXI_HOST}' HOST INTO MAINTENANCE MODE${idsCL[Default]}\n" - SHUTDOWN_SERVER ${HOST} -esxi maintenance + SHUTDOWN_SERVER ${ESXI_HOST} -esxi maintenance else echo -e "${idsCL[LightGreen]}SHUTTING DOWN HOST${idsCL[Default]}\n" - SHUTDOWN_SERVER ${HOST} -esxi off + SHUTDOWN_SERVER ${ESXI_HOST} -esxi off fi fi elif [ "${MODE}" == "power" ]; then if [ "${ESXI_HOST}" == "ALL" ] || [ "${ESXI_HOST}" == "MAINSITE" ] || [ "${ESXI_HOST}" == "OFFSITE" ] || [ "${ESXI_HOST}" == "MAIN" ] || [ "${ESXI_HOST}" == "SYS" ]; then - if [ "${POWER^^}" == "ON" ] && ([ "${ESXI_HOST}" == "ALL" ] || [ "${ESXI_HOST}" == "MAINSITE" ] || [ "${ESXI_HOST}" == "MAIN" ]); then + if [ "${POWER^^}" == "ON" ] && ([ "${ESXI_HOST}" == "ALL" ] || [ "${ESXI_HOST}" == "MAINSITE" ] || [ "${ESXI_HOST}" == "MAIN" ]) && [ "$(ipmitool -I lanplus -H ${PW_HOST_IDRACS[${PW_ESXI_HOST_NAMES[${PW_MAIN_ISCSI}]}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" chassis power status | grep 'Power is on')" == "" ]; then HOSTPOWER ${PW_MAIN_ISCSI} on sleep 60s fi @@ -563,11 +569,19 @@ HOSTMGMT(){ if [ "${POWER^^}" == "ON" ] && [ "${vhost}" == "${PW_MAIN_ISCSI}" ] && ([ "${ESXI_HOST}" == "ALL" ] || [ "${ESXI_HOST}" == "MAINSITE" ] || [ "${ESXI_HOST}" == "MAIN" ]); then tmp='' else - HOSTPOWER ${vhost} ${POWER} + if [ "$(ipmitool -I lanplus -H ${PW_HOST_IDRACS[${PW_ESXI_HOST_NAMES[${vhost}]}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" chassis power status | grep 'Power is on')" == "" ]; then + HOSTPOWER ${vhost} ${POWER} + else + echo -e "\n${idsCL[LightCyan]}Host is already Powered ON${idsCL[Default]}" + fi fi done else - HOSTPOWER ${HOST} ${POWER} + if [ "$(ipmitool -I lanplus -H ${PW_HOST_IDRACS[${PW_ESXI_HOST_NAMES[${ESXI_HOST}]}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" chassis power status | grep 'Power is on')" == "" ]; then + HOSTPOWER ${ESXI_HOST} ${POWER} + else + echo -e "\n${idsCL[LightCyan]}Host is already Powered ON${idsCL[Default]}" + fi fi fi echo