diff --git a/agent/src/com/cloud/agent/resource/computing/KVMHAMonitor.java b/agent/src/com/cloud/agent/resource/computing/KVMHAMonitor.java index c1a968122aa..b143dc823b6 100644 --- a/agent/src/com/cloud/agent/resource/computing/KVMHAMonitor.java +++ b/agent/src/com/cloud/agent/resource/computing/KVMHAMonitor.java @@ -75,7 +75,13 @@ public class KVMHAMonitor extends KVMHABase implements Runnable{ cmd.add("-h", _hostIP); String result = cmd.execute(); if (result != null) { - s_logger.debug("write heartbeat failed: " + result); + s_logger.debug("write heartbeat failed: " + result + "; destroy all the vms on this host"); + cmd = new Script(_heartBeatPath, _heartBeatUpdateTimeout, s_logger); + cmd.add("-i", primaryStoragePool._poolIp); + cmd.add("-p", primaryStoragePool._poolMountSourcePath); + cmd.add("-m", primaryStoragePool._mountDestPath); + cmd.add("-c"); + result = cmd.execute(); } } } diff --git a/client/tomcatconf/components.xml.in b/client/tomcatconf/components.xml.in index 4507fe1af0d..daa179f5942 100755 --- a/client/tomcatconf/components.xml.in +++ b/client/tomcatconf/components.xml.in @@ -64,6 +64,7 @@ + diff --git a/scripts/vm/hypervisor/kvm/kvmheartbeat.sh b/scripts/vm/hypervisor/kvm/kvmheartbeat.sh index 696884e9b03..8f5578d9439 100755 --- a/scripts/vm/hypervisor/kvm/kvmheartbeat.sh +++ b/scripts/vm/hypervisor/kvm/kvmheartbeat.sh @@ -24,6 +24,7 @@ help() { -m mount point -h host -r write/read hb log + -c cleanup -t interval between read hb log\n" exit 1 } @@ -34,8 +35,9 @@ MountPoint= HostIP= interval= rflag=0 +cflag=0 -while getopts 'i:p:m:h:t:r' OPTION +while getopts 'i:p:m:h:t:rc' OPTION do case $OPTION in i) @@ -56,6 +58,9 @@ do t) interval="$OPTARG" ;; + c) + cflag=1 + ;; *) help ;; @@ -71,7 +76,7 @@ fi #delete VMs on this mountpoint deleteVMs() { local mountPoint=$1 - vmPids=$(ps aux| grep qemu | grep $mountPoint* | awk '{print $2}' &> /dev/null) + vmPids=$(ps aux| grep qemu | grep "$mountPoint" | awk '{print $2}' 2> /dev/null) if [ $? -gt 0 ] then return @@ -82,7 +87,7 @@ deleteVMs() { return fi - for pid in vmPids + for pid in $vmPids do kill -9 $pid &> /dev/null done @@ -149,6 +154,10 @@ then echo "=====> DEAD <======" fi exit 0 +elif [ "$cflag" == "1" ] +then + reboot + exit $? else write_hbLog exit $?