#!/bin/bash
# Custom checker template that test if a  VM is running
#

ModName=$1
RName=$2
Arg1Value=$3
Grace=2
Period="5"
if [ ! -z "$4" ] ; then 
	Grace=$4
fi
if [ ! -z "$5" ] ; then 
	Period=$5
fi

unset LANG

# set rstate to up on success | down on failure
function vmtest()
{
   rstate="down"

   vmstate=$(virsh domstate $1)
   if ([ "x$vmstate" == "xrunning" ]) ; then
    	rstate="up"
   fi
}

customchecker=`basename $0`
safekit="$SAFE/safekit" 
gracecount=0
prevrstate="unknown"
# wait a little
sleep $Period

while true ; do
	sleep $Period
	vmtest $Arg1Value
	if [ $rstate="down" ] ; then
		let gracecount=gracecount+1
	else
		gracecount=0
		if [ $prevrstate != $rstate ] ; then 
                       $safekit set -r "$RName" -v $rstate -m $ModName # -i $customchecker
			prevrstate=$rstate
		fi
	fi
	if [ $gracecount -eq $Grace ] ; then 
		if [ $prevrstate != $rstate ] ; then
                    $safekit set -r "$RName" -v $rstate -m $ModName # -i $customchecker
			prevrstate=$rstate
		fi
		gracecount=0
	fi     
done
