From cf8a130cc8f7d64b7f2ebdb1c1dda023d6583c2e Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Sat, 9 Dec 2023 17:28:49 -0600 Subject: [PATCH] update --- defaults.inc | 2 +- powerwall.sh | 34 ++++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/defaults.inc b/defaults.inc index e2a905ab..7b0d73f3 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,5 +1,5 @@ -VERS='2.3.402-12052023' +VERS='2.3.403-12092023' noheader=' update service dailytemp ' diff --git a/powerwall.sh b/powerwall.sh index 8f6e1628..63669060 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -8,7 +8,7 @@ source /opt/idssys/defaults/default.inc source /opt/idssys/powerwall/defaults.inc source ${PW_FOLDER}/settings.conf -# TEST=true +TEST=true shopt -s lastpipe @@ -1521,6 +1521,7 @@ SHUTDOWN_SERVER(){ [ "${TEST}" != "true" ] && MAINT_MODE_VERIFY_SHUTDOWN ${ESXIHOST} & echo -e "${idsCL[Green]}Continuing in background\n" + if [ "${ESXIHOST}" == "10.10.2.10" ]; then echo -en "${idsCL[LightCyan]}Waiting for Host ${host} (${ESXIHOST}) to shutdown ... " [ "${TEST}" != "true" ] && while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do sleep 1; done @@ -1541,6 +1542,25 @@ SHUTDOWN_SERVER(){ echo } +HOSTMGMT(){ + while [ $# -gt 0 ]; do + case "$1" in + -h|-host) HOST="${2}";; + -p|-power) POWER=${2}; MODE="power";; + -e|-esxi) ESXI=${2}; MODE="esxi";; + esac + shift 1 + done + ([ "${HOST}" == "" ] || ([ "${POWER}" == "" ] && [ "${ESXI}" == "" ])) && echo -e "Invalid command arguments\n" && exit 1 + + if [ "${MODE}" == "esxi" ]; then + ([ "${ESXI}" == "maint" ] || [ "${ESXI}" == "maintenance" ] || [ "${ESXI}" == "mm" ]) && SHUTDOWN_SERVER ${HOST} maintenance || SHUTDOWN_SERVER ${HOST} + + elif [ "${MODE}" == "power" ]; then + HOSTPOWER ${HOST} ${POWER} + fi +} + ISCSIVMSHUTDOWN(){ for ESXIHOST in "${PW_MAINSITE_HOSTS[@]}"; do echo -en "${idsCL[LightCyan]}Shutting down any VM's on '${ESXIHOST}' that are running on an iSCSI-PRI drive ... " @@ -1591,8 +1611,8 @@ HOSTPOWER(){ DIVIDER . yellow 75 echo - if [ "${2,,}" == "on" ] || [ "${2,,}" == "off" ] || [ "${2,,}" == "status" ]; then - if [ "${idracip}" == "10.10.2.20" ] && [ "${2,,}" == "on" ]; then + if [ "${2^^}" == "ON" ] || [ "${2^^}" == "OFF" ] || [ "${2^^}" == "STATUS" ]; then + if [ "${idracip}" == "10.10.2.20" ] && [ "${2^^}" == "ON" ]; then echo -en "${idsCL[LightCyan]}Powering ON the SAS Enclosure ... " [ "${TEST}" != "true" ] && run=$(snmpset -v 1 -c private ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.3.3.1.1.4.14 i 1 >/dev/null 2>&1) sleep 3s @@ -1603,14 +1623,14 @@ HOSTPOWER(){ ipmitool -I lanplus -H ${idracip} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" chassis power ${2,,} echo -e "${idsCL[Default]}" - if [ "${idracip}" == "10.10.2.20" ] && [ "${2,,}" == "off" ]; then + if [ "${idracip}" == "10.10.2.20" ] && [ "${2^^}" == "OFF" ]; then echo -en "${idsCL[LightCyan]}Powering OFF the SAS Enclosure ... " [ "${TEST}" != "true" ] && [ "$(CHECK_HOST 10.10.2.10)" == "false" ] && run=$(snmpset -v 1 -c private ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.3.3.1.1.4.14 i 2 >/dev/null 2>&1) sleep 3s echo -e "${idsCL[Green]}Done\n" fi else - echo -e "${idsCL[LightRed]}'${2,,}' command is not recognized${idsCL[Default]}" + echo -e "${idsCL[LightRed]}'${2^^}' command is not recognized${idsCL[Default]}" fi else echo -e "${idsCL[LightRed]}Host cannot be found for '${1}'${idsCL[Default]}" @@ -1824,9 +1844,11 @@ fi iscsi-vm-shutdown) [ "${2^^}" == "SYS" ] && ISCSISYSVMSHUTDOWN || ISCSIVMSHUTDOWN ;; - shutdownhost) SHUTDOWN_SERVER ${2};; + shutdownhost) SHUTDOWN_SERVER ${2} ${3};; shutdown_servers) SHUTDOWN_SERVERS ${2} ${3};; hostpower) HOSTPOWER ${2} ${3};; + host) HOSTMGMT ${2} ${3} ${4} ${5} ${6} ${7};; + pdu) PDUCONTROL ${2} ${3};; get-snapshots) GET_SNAPSHOTS;;