diff --git a/shutdown-test.sh b/shutdown-test.sh index 3f2c32ff..699c2751 100644 --- a/shutdown-test.sh +++ b/shutdown-test.sh @@ -1,18 +1,60 @@ SHUTDOWN_SERVER2(){ - if [ "${PW_iDRACHOST_SHORTNAMES[${1}]}" != "" ]; then - tmp=${PW_iDRACHOST_SHORTNAMES[${1}]} - ESXIHOST=${PW_HOST_ADDRESSES[${tmp}]} - elif [ "${PW_ESXI_HOST_NAMES[${1}]}" != "" ]; then - ESXIHOST=${1} - elif [ "${PW_HOST_IDRACS[iDS-vMS-Host${1}]}" != "" ]; then - ESXIHOST=${PW_HOST_ADDRESSES[iDS-vMS-Host${1}]} - elif [ "${PW_HOST_IDRACS[${1}]}" != "" ]; then - tmp=${PW_HOST_IDRACS[${1}]} - ESXIHOST=${PW_HOST_ADDRESSES[${tmp}]} - else - ESXIHOST='' + if [ "${1}" != "-h" ]; then + HOST=${1} + if [ "${PW_iDRACHOST_SHORTNAMES[${HOST}]}" != "" ]; then + tmp=${PW_iDRACHOST_SHORTNAMES[${HOST}]} + ESXI_HOST=${PW_HOST_ADDRESSES[${tmp}]} + elif [ "${PW_ESXI_HOST_NAMES[${HOST}]}" != "" ]; then + ESXI_HOST=${HOST} + elif [ "${PW_HOST_IDRACS[iDS-vMS-Host${HOST}]}" != "" ]; then + ESXI_HOST=${PW_HOST_ADDRESSES[iDS-vMS-Host${HOST}]} + elif [ "${PW_HOST_ADDRESSES[${HOST}]}" != "" ]; then + ESXI_HOST=${PW_HOST_ADDRESSES[${HOST}]} + elif [ "${1^^}" == "ALL" ] || [ "${1^^}" == "MAINSITE" ] || [ "${1^^}" == "OFFSITE" ] || [ "${1^^}" == "MAIN" ] || [ "${1^^}" == "SYS" ]; then + ESXI_HOST=${HOST^^} + hostname="All ${1^^} Host Servers" + else + ESXI_HOST='' + fi + [ "${ESXI_HOST}" == "" ] && echo -e "Invalid host\n" && exit 1 + if [ "${PW_ESXI_HOST_NAMES[${ESXI_HOST}]}" != "" ]; then + tmp=${PW_ESXI_HOST_NAMES[${ESXI_HOST}]} + idracip=${PW_HOST_IDRACS[${tmp}]} + hostname=${PW_iDRACHOST_SHORTNAMES[${idracip}]} + fi fi + while [ $# -gt 0 ]; do + case "$1" in + -p|-power) POWER=${2}; MODE="power";; + -e|-esxi) ESXI=${2}; MODE="esxi";; + -h) + echo -e "Usage: ${idsCL[Yellow]}pw host {host} {flags}${idsCL[Default]} {" + width=35 + printf "%-${width}s- %s\n" " {host}" "(*required, can either be esxiIP,idracIP or Host#)" + printf "%-${width}s- %s\n" " -p|-power {on / off}" "Controls Host Power" + printf "%-${width}s- %s\n" " -e|-esxi {off / mm}" "Shuts down ESXi or puts into maintenance mode" + echo -e "}\n" + exit 0 + ;; + esac + shift 1 + done + + if [ "${HOST^^}" == "ALL" ] || [ "${HOST^^}" == "MAINSITE" ] || [ "${HOST^^}" == "OFFSITE" ] || [ "${HOST^^}" == "MAIN" ] || [ "${HOST^^}" == "SYS" ]; then + ESXI_HOSTS=PW_${HOST^^}HOSTS[@] + ESXI_HOSTS=(${!ESXI_HOSTS}) + else + ESXI_HOSTS=(${ESXI_HOST}) + fi + + + for vhost in "${!var}"; do + echo -e "HERE: ${idsCL[LightCyan]} ${PW_ESXI_HOST_NAMES[${vhost}]} [${vhost}]${idsCL[Default]}" + done + + ESXIHOST="" + if [ "${ESXIHOST}" != "" ]; then host=${PW_ESXI_HOST_NAMES[${ESXIHOST}]}