#!/bin/sh
#
# chkconfig: - 39 35
# description: Starts and stops the iSCSI target
#
# pidfile: /var/run/ietd.pid
# config:  /etc/ietd.conf

# Source function library.
if [ -f /etc/init.d/functions ] ; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 0
fi

PATH=/sbin:/bin:/usr/sbin:/usr/bin

RETVAL=0

start()
{
	echo -n "Starting iSCSI target service: "
	modprobe -q crc32c
	modprobe iscsi_trgt
	daemon /usr/sbin/ietd
	RETVAL=$?
	echo
	return $RETVAL
}

stop()
{
	echo -n "Stopping iSCSI target service: "
	ietadm --op delete >/dev/null 2>/dev/null
	killall ietd 2> /dev/null
	modprobe -r iscsi_trgt 2>/dev/null
	RETVAL=$?
	modprobe -r crc32c 2>/dev/null
	if [ $RETVAL -eq 0 ]; then
		echo_success
	else
		echo_failure
	fi
	echo
	return $RETVAL
}

restart()
{
        stop
        start
}

condrestart()
{
	PID=`pidofproc ietd`
	if [ $PID ]; then
        	restart
	fi
}

status()
{
	PID=`pidofproc ietd`
	if [ ! $PID ]; then
		echo "iSCSI target stopped"
		exit 1
	else
		echo "ietd (pid $PID) is running..."
	fi
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  condrestart)
        condrestart
        ;;
  status)
        status
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 1
esac

exit 0
