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 $?