#!/bin/sh
#
### BEGIN INIT INFO
# Provides: osafclmna
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Should-Start: 
# Should-Stop: 
# Default-Start: 
# Default-Stop: 
# Short-Description: Start and stop the CLM Node Agent
# Description: CLM Node Agent Daemon
### END INIT INFO

osafdirfile=/etc/opensaf/osafdir.conf
osafprog="osafclmna"
initscript=`basename $0`

# Source LSB functions library
. /lib/lsb/init-functions

if [ ! -r $osafdirfile ]; then
	logger -t $osafprog "can't read $osafdirfile, exiting."
	exit 6
else
	. $osafdirfile
	. $pkgsysconfdir/nid.conf
	. $pkgsysconfdir/clmna.conf
fi	

binary=$pkglibdir/$osafprog
pidfile=$pkgpiddir/$osafprog.pid
lockfile=$lockdir/$initscript

RETVAL=0
NIDSERV="CLMNA"
COMPNAMEFILE=$pkglocalstatedir/clmna_comp_name

start() {
	export LD_LIBRARY_PATH=$pkglibdir:$LD_LIBRARY_PATH
	[ -x $binary ] || exit 5
	export CLMNA_COMP_NAME_FILE=$COMPNAMEFILE
	echo -n "Starting $osafprog: "
	start_daemon -p $pidfile $binary $args
	RETVAL=$?
	if [ $RETVAL -eq 0 ]; then
		touch $lockfile
		log_success_msg
	else
		log_failure_msg
	fi
	return $RETVAL
}

instantiate() {
	echo -n "AMF Instantiating $osafprog: "
	echo $SA_AMF_COMPONENT_NAME > $COMPNAMEFILE
	pidofproc -p $pidfile $binary
	RETVAL=$?
	if [ $RETVAL -eq 0 ]; then
		killproc -p $pidfile $binary -USR1
		RETVAL=$?
	else
		start_daemon -p $pidfile $binary $args
		RETVAL=$?
	fi
	if [ $RETVAL -eq 0 ]; then
		log_success_msg
	else
		log_failure_msg
	fi
	return $RETVAL
}

stop() {
	echo -n "Stopping $osafprog: "
	killproc -p $pidfile $binary
	RETVAL=$?
	if [ $RETVAL -eq 0 ] || [ $RETVAL -eq 7 ]; then
		rm -f $lockfile
		log_success_msg
		RETVAL=0
	else
		log_failure_msg
	fi
	return $RETVAL
}

restart() {
	stop
	start
}

tryrestart() {
	[ -e $lockfile ] && restart
	return 0
}

reload() {
	echo -n "Reloading $osafprog: "
	log_warning_msg
	logger -t $osafprog "reloading configuration is currently an unimplemented LSB feature"
	return 3
}

forcereload() {
	reload
	restart
	return 0
}

status() {
	pidofproc -p $pidfile $binary
	RETVAL=$?
	return $RETVAL
}

case "$1" in
  start)
	start
	RETVAL=$?
	;;
  instantiate)
	instantiate
	RETVAL=$?
	;;
  stop)
	stop
	RETVAL=$?
	;;
  restart)
	restart
	RETVAL=$?
	;;
  try-restart|condrestart)
	tryrestart
	RETVAL=$?
	;;
  reload)
	reload
	RETVAL=$?
	;;
  force-reload)
	forcereload
	RETVAL=$?
	;;
  status)
	status
	RETVAL=$?
	;;
  *)
	echo "Usage: $0 {start|instantiate|stop|restart|try-restart|reload|force-reload|status}"
	RETVAL=2
esac

exit $RETVAL
