diff --git a/defaults.inc b/defaults.inc index 5493d0dd..eea411fb 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,5 +1,5 @@ -VERS='2.4.6-12092023' +VERS='2.4.8-12102023' noheader=' update service dailytemp ' hc_cw=60 diff --git a/esxi-scripts/iscsi-all-shutdown-verify.ps1 b/esxi-scripts/iscsi-all-shutdown-verify.ps1 new file mode 100755 index 00000000..87cd3fb6 --- /dev/null +++ b/esxi-scripts/iscsi-all-shutdown-verify.ps1 @@ -0,0 +1,22 @@ +#!/usr/bin/env pwsh + +. /opt/idssys/powerwall/settings.ps1 + +Connect-VIServer -Server $args[0] -Protocol https -User $ESXiUsername -Password $ESXiPassword | Out-Null + +Get-Datastore | Where {$_.Name -like '*iSCSI-*'} | Get-VM | if ($_.PowerState -eq "PoweredOn") { + Try{ + $vm = Get-VM -Name $vmName -ErrorAction Stop + switch($vm.PowerState){ + 'poweredon' { + sleep 5 + } + } + } + Catch{ + Write-Host "VM '$($vmName)' not found!" + } +} + +exit 0 + diff --git a/powerwall.sh b/powerwall.sh index 25d73f13..54d4c9a2 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -1275,6 +1275,7 @@ SHUTDOWN_SERVERS(){ else echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" fi + echo fi for ESXIHOST in "${PW_MAINHOSTS[@]}"; do @@ -1371,7 +1372,7 @@ SHUTDOWN_SERVERS(){ if [ ! -f ${PW_FOLDER}/shutdown.sys ]; then touch ${PW_FOLDER}/shutdown.sys - if [ "${2}" == "TEMP" ]; then + if [ "${2}" == "TEMP" ] && [ "${2}" != "maintenance" ]; then MSG="Disabling CLS in vCenter" c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " @@ -1383,6 +1384,7 @@ SHUTDOWN_SERVERS(){ else echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" fi + echo fi for ESXIHOST in "${PW_SYSHOSTS[@]}"; do @@ -1422,7 +1424,7 @@ SHUTDOWN_SERVERS(){ done echo for ESXIHOST in "${PW_SYSHOSTS[@]}"; do - MSG="Shutting Down VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" + MSG="Stopping Remaining VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " if [ "${TEST}" != "true" ]; then @@ -1434,35 +1436,40 @@ SHUTDOWN_SERVERS(){ fi done echo - for ESXIHOST in "${PW_SYSHOSTS[@]}"; do - MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" - c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done - echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - MAINT_MODE_VERIFY_SHUTDOWN ${ESXIHOST} & - echo -e "${idsCL[Green]}Continuing in background\n" - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" - fi - done - echo + if [ "${2}" != "maintenance" ]; then + for ESXIHOST in "${PW_SYSHOSTS[@]}"; do + MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + MAINT_MODE_VERIFY_SHUTDOWN ${ESXIHOST} & + echo -e "${idsCL[Green]}Continuing in background\n" + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi + done + echo + fi fi elif [ "${1^^}" == "ALL" ]; then if [ ! -f ${PW_FOLDER}/shutdown.all ]; then touch ${PW_FOLDER}/shutdown.all - MSG="Disabling CLS in vCenter" - c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done - echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - run=$(ssh root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) - run=$(ssh root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) - run=$(ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) - run=$(ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) - echo -e "${idsCL[Green]}Done${idsCL[Default]}" - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + if [ "${2}" != "maintenance" ]; then + MSG="Disabling CLS in vCenter" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + run=$(ssh root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) + run=$(ssh root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) + run=$(ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) + run=$(ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) + echo -e "${idsCL[Green]}Done${idsCL[Default]}" + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi + echo fi for ESXIHOST in "${PW_ALLHOSTS[@]}"; do @@ -1490,11 +1497,11 @@ SHUTDOWN_SERVERS(){ done echo for ESXIHOST in "${PW_ALLHOSTS[@]}"; do - MSG="Verifying iSCSI-SYS VM's stopped on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" + MSG="Verifying iSCSI VM's stopped on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " if [ "${TEST}" != "true" ]; then - run=$(${PW_FOLDER}/esxi-scripts/iscsi-sys-vm-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1) + run=$(${PW_FOLDER}/esxi-scripts/iscsi-all-vm-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1) echo -e "${idsCL[Green]}Done${idsCL[Default]}" else echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" @@ -1502,7 +1509,7 @@ SHUTDOWN_SERVERS(){ done echo for ESXIHOST in "${PW_ALLHOSTS[@]}"; do - MSG="Shutting Down VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" + MSG="Stopping Remaining VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " if [ "${TEST}" != "true" ]; then @@ -1514,59 +1521,77 @@ SHUTDOWN_SERVERS(){ fi done echo - for ESXIHOST in "${PW_ALLHOSTS[@]}"; do - MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" + if [ "${2}" != "maintenance" ]; then + for ESXIHOST in "${PW_ALLHOSTS[@]}"; do + MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + MAINT_MODE_VERIFY_SHUTDOWN ${ESXIHOST} & + echo -e "${idsCL[Green]}Continuing in background\n" + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi + done + echo + MSG="Waiting for iSCSI-PRI Host to shutdown" c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " if [ "${TEST}" != "true" ]; then - MAINT_MODE_VERIFY_SHUTDOWN ${ESXIHOST} & - echo -e "${idsCL[Green]}Continuing in background\n" + while ping -qw 10 -c3 "10.10.2.10">/dev/null 2>&1; do sleep 1; done + echo -e "${idsCL[Green]}Done${idsCL[Default]}\n" else echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" fi - done - echo - MSG="Waiting for iSCSI-PRI Host to shutdown" - c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done - echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - while ping -qw 10 -c3 "10.10.2.10">/dev/null 2>&1; do sleep 1; done - echo -e "${idsCL[Green]}Done${idsCL[Default]}\n" - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" - fi - MSG="Powering OFF the SAS Enclosure" - c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done - echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - if [ "$(CHECK_HOST 10.10.2.10)" == "false" ]; then - 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${idsCL[Default]}\n" + MSG="Powering OFF the SAS Enclosure" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + if [ "$(CHECK_HOST 10.10.2.10)" == "false" ]; then + 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${idsCL[Default]}\n" + else + echo -e "${idsCL[LightRed]}'${PW_iDRACHOST_SHORTNAMES[${idracip}]}' is not offline, not powering down\n" + fi else - echo -e "${idsCL[LightRed]}'${PW_iDRACHOST_SHORTNAMES[${idracip}]}' is not offline, not powering down\n" + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" fi - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + echo fi - echo fi elif [ "${1^^}" == "MAINSITE" ]; then if [ ! -f ${PW_FOLDER}/shutdown.mainsite ]; then touch ${PW_FOLDER}/shutdown.mainsite - - MSG="Disabling CLS in vCenter" - c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done - echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - run=$(ssh root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) - run=$(ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) - run=$(ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null & 2>&1" >/dev/null 2>&1) - echo -e "${idsCL[Green]}Done${idsCL[Default]}" - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" - fi + + if [ "${2}" == "TEMP" ] && [ "${2}" != "maintenance" ]; then + MSG="Disabling CLS in vCenter" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + run=$(ssh root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) + run=$(ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) + run=$(ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null & 2>&1" >/dev/null 2>&1) + echo -e "${idsCL[Green]}Done${idsCL[Default]}\n" + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi + echo + fi + + for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do + MSG="Stopping iSCSI VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + run=$(${PW_FOLDER}/esxi-scripts/iscsi-all-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1) + echo -e "${idsCL[Green]}Done${idsCL[Default]}" + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi + done + echo for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do MSG="Enabling Maintenance Mode on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done @@ -1580,11 +1605,11 @@ SHUTDOWN_SERVERS(){ done echo for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do - MSG="Stopping VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" + MSG="Verifying iSCSI VM's stopped on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " if [ "${TEST}" != "true" ]; then - run=$(${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1) + run=$(${PW_FOLDER}/esxi-scripts/iscsi-all-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1) echo -e "${idsCL[Green]}Done${idsCL[Default]}" else echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" @@ -1592,57 +1617,75 @@ SHUTDOWN_SERVERS(){ done echo for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do - MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" + MSG="Stopping Remaining VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " if [ "${TEST}" != "true" ]; then - MAINT_MODE_VERIFY_SHUTDOWN ${ESXIHOST} & - echo -e "${idsCL[Green]}Continuing in background\n" + run=$(${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1) + run=$(${PW_FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1) + echo -e "${idsCL[Green]}Done${idsCL[Default]}" else echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" fi done echo - MSG="Waiting for iSCSI-PRI Host to shutdown" - c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done - echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - while ping -qw 10 -c3 "10.10.2.10">/dev/null 2>&1; do sleep 1; done - echo -e "${idsCL[Green]}Done${idsCL[Default]}\n" - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" - fi - MSG="Powering OFF the SAS Enclosure" - c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done - echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - if [ "$(CHECK_HOST 10.10.2.10)" == "false" ]; then - 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 + if [ "${2}" != "maintenance" ]; then + for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do + MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + MAINT_MODE_VERIFY_SHUTDOWN ${ESXIHOST} & + echo -e "${idsCL[Green]}Continuing in background\n" + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi + done + echo + MSG="Waiting for iSCSI-PRI Host to shutdown" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + while ping -qw 10 -c3 "10.10.2.10">/dev/null 2>&1; do sleep 1; done echo -e "${idsCL[Green]}Done${idsCL[Default]}\n" else - echo -e "${idsCL[LightRed]}'${PW_iDRACHOST_SHORTNAMES[${idracip}]}' is not offline, not powering down\n" + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" fi - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + MSG="Powering OFF the SAS Enclosure" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + if [ "$(CHECK_HOST 10.10.2.10)" == "false" ]; then + 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${idsCL[Default]}\n" + else + echo -e "${idsCL[LightRed]}'${PW_iDRACHOST_SHORTNAMES[${idracip}]}' is not offline, not powering down\n" + fi + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi + echo fi - echo fi elif [ "${1^^}" == "OFFSITE" ]; then if [ ! -f ${PW_FOLDER}/shutdown.offsite ]; then touch ${PW_FOLDER}/shutdown.offsite - - MSG="Disabling CLS in vCenter" - c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done - echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - run=$(ssh root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) - run=$(ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) - run=$(ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null & 2>&1" >/dev/null 2>&1) - echo -e "${idsCL[Green]}Done${idsCL[Default]}" - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + + if [ "${2}" != "maintenance" ]; then + MSG="Disabling CLS in vCenter" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + run=$(ssh root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) + run=$(ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) + run=$(ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null & 2>&1" >/dev/null 2>&1) + echo -e "${idsCL[Green]}Done${idsCL[Default]}" + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi + echo fi for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do @@ -1658,7 +1701,7 @@ SHUTDOWN_SERVERS(){ done echo for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do - MSG="Stopping VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" + MSG="Stopping Remaining VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " if [ "${TEST}" != "true" ]; then @@ -1669,18 +1712,20 @@ SHUTDOWN_SERVERS(){ fi done echo - for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do - MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" - c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done - echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - MAINT_MODE_VERIFY_SHUTDOWN ${ESXIHOST} & - echo -e "${idsCL[Green]}Continuing in background\n" - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" - fi - done - echo + if [ "${2}" != "maintenance" ]; then + for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do + MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" + c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done + echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + MAINT_MODE_VERIFY_SHUTDOWN ${ESXIHOST} & + echo -e "${idsCL[Green]}Continuing in background\n" + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi + done + echo + fi fi fi }