#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="cluster service manager"
NAME=clurgmgrd
DAEMON=/usr/sbin/clurgmgrd

LOG_ERR=3
LOG_WARNING=4
LOG_NOTICE=5
LOG_INFO=6

RGMGR_OPTIONS=""

if [ -f /etc/default/rgmanager ]; then
	. /etc/default/rgmanager
fi

#
# log_and_print <level> <message>
#
log_and_print() {
if [ -z "$1" -o -z "$2" ]; then
	return 1;
fi

clulog -p $$ -n "rgmanager" -s $1 "$2"
echo $2

return 0;
}

stop_cluster() {
TIMEOUT=30
STOP=0
while [ 0 ]; do
	if [ -n "`pidof $NAME`" ]; then
		echo -n "Waiting for services to stop: " 
		while [ -n "`pidof $NAME`" ] && [ "$STOP" != "$TIMEOUT" ]; do
			kill `pidof $NAME`
			STOP=`expr $STOP + 1`
			sleep 1
		done
		if [ -n "`pidof $NAME`" ]; then
			kill -9 `pidof $NAME`
		fi
		echo "done."
	else
		echo "Services are stopped."
	fi

	return 0
done
}

modprobe sctp 2>&1 || true

case $1 in
	start)
		echo -n "Starting $DESC: "
		start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- $RGMGR_OPTIONS
		echo "done."
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
	reload|force-reload)
		log_and_print $LOG_NOTICE "Reloading Resource Configuration: "
		killproc $NAME -HUP
		rv=$?
		log_and_print $LOG_NOTICE "done."
		exit $rv
		;;
	stop)
		log_and_print $LOG_NOTICE "Stopping $DESC: "
		start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON
		stop_cluster
		log_and_print $LOG_NOTICE "$NAME is stopped."
		rm -f /var/run/$NAME.pid
		echo "done."
		;;
esac
