#!/bin/bash
#
# dpm-nfs   This shell script takes care of starting and stopping
#           dpm-nfs (the DPM NFS frontend server)
#
# chkconfig: 2345 50 50
#
# description: dpm-nfs is the DPM NFS frontend server daemon.
#
### BEGIN INIT INFO
# Provides: dpm-nfs
# Required-Start: $local_fs $named $time $network
# Required-Stop: $local_fs $named $time $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop DPM nfs daemon
# Description: DPM NFS
### END INIT INFO


# source function library
. /etc/rc.d/init.d/functions

# set the default values (can be overwritten by sysconfig)
LOGFILE=/var/log/dpm-nfs.log
CONFFILE=/etc/dpm-nfs.conf
DEBUGLEVEL=NIV_EVENT
RPCSEC_GSS=no

# source the sysconfig file (if it exists)
[ -f /etc/sysconfig/dpm-nfs ] && . /etc/sysconfig/dpm-nfs

# set program name and options
DAEMON=/usr/bin/dpm.ganesha.nfsd 
OPTIONS="-d -L $LOGFILE -f $CONFFILE -N $DEBUGLEVEL"
if [ "${RPCSEC_GSS}" == "yes" ]; then
OPTIONS="$OPTIONS -R"
fi
RETVAL=0

PROGNAME="dpm-nfs"
PIDFILE=${PIDFILE:=/var/run/${PROGNAME}.pid}
LOCKFILE=${LOCKFILE:=/var/lock/subsys/${PROGNAME}}


start() {
        echo -n $"Starting $PROGNAME: "
        # Check configuration file exists
        if [ ! -r $CONFFILE ]; then
		failure "No configuration file! ";
		echo
		echo 1>&2 " No configuration file $CONFFILE found! ";
		exit 1;
	fi

	# Launch
        daemon --pidfile=${PIDFILE} $DAEMON $OPTIONS
        RETVAL=$?
	echo
        if [ $RETVAL -eq 0 ]; then
        	echo `pidof $DAEMON` > ${PIDFILE} 
                touch $LOCKFILE
        fi
	return $RETVAL
}

stop() {
        echo -n $"Stopping $PROGNAME: "
        killproc $DAEMON
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then 
		  rm -f $LOCKFILE
                  rm -f $PIDFILE
          success
		else
		  failure
        fi
        echo
        return $RETVAL
}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart)
	if [ -f $LOCKFILE ] ; then
		stop
	fi
	start
        ;;
  reload)
	if [ ! -f $LOCKFILE ] ; then
	   killproc -p $PIDFILE $PROGNAME -HUP
        fi
        RETVAL=0 ;
        ;;
  force-reload)
	stop 
	start
	;;
  try-restart)
	if [ -f $LOCKFILE ] ; then
		stop

		#avoid race
		sleep 3
		start
	fi
	;;
  status)
	if [ $RETVAL -eq 5 ] ; then 
	    RETVAL=3
        else
	   status -p $PIDFILE $PROGNAME
	   RETVAL=$?
        fi
	;;
  *)
	echo $"Usage: $0 {start|stop|restart|reload|try-restart|status}"
	RETVAL=1
esac

exit $RETVAL
