#!/bin/sh
#=================================================================
# Description : Start mount gluster structure on fuse
# chkconfig: 2345 98 02
#=================================================================


### BEGIN INIT INFO
# Provides:            $glusterm
# Required-Start:      $glusterd autofs
# Should-Start:
# Required-Stop:       
# Should-Stop:
# Default-Start:       3 4 5
# Default-Stop:        0 1 2 6
# Short-Description:   mount gluster structure on fuse
# Description:         mount gluster structure on fuse 
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

PROG=glusterd
RUNGLUSTER=/run/gluster
PID_FILE=$RUNGLUSTER/$PROG.pid
HA_DIR=/HA
AUTOFILE=/etc/auto.gluster

#-----------------------------------------------------------------
gen_auto_file()

{
(
echo "#----------------------------------------"
echo "#Auto generated by $0:$1 on `date`"
echo "#----------------------------------------"
) > $AUTOFILE
}

#-----------------------------------------------------------------
case "$1" in
    start)
	mkdir -p $HA_DIR
	gen_auto_file "$0" "$1"
        pid=`cat $PID_FILE 2>/dev/null`
        if [ -n "${pid}"  -a -d /proc/$pid ]; then
	  for vol in `gluster volume list`
	    do
	    mkdir -p $HA_DIR/$vol
            log_info_msg "Prepare gluster $vol autofs..."
	    echo "$HA_DIR/$vol -fstype=glusterfs localhost:/$vol" >> $AUTOFILE
            evaluate_retval
	    done
	  fi
	#waking up autofs
	/usr/sbin/service autofs reload
        ;;

    stop)
        pid=`cat $PID_FILE 2>/dev/null`
        if [ -n "${pid}"  -a -d /proc/$pid ]; then
	  for vol in `gluster volume list`
	    do
            log_info_msg "Unmounting gluster $vol structure..."
	    umount -l $HA_DIR/$vol 2> /dev/null
            evaluate_retval
	    rmdir $HA_DIR/$vol
	    done
	  fi
	gen_auto_file "$0" "$1"
	/usr/sbin/service autofs reload 
        ;;

    restart)
        $0 stop
        sleep 2
        $0 start
        ;;

    condrestart)
        pid=`cat $PID_FILE 2>/dev/null`
        if [ -n "${pid}"  -a -d /proc/$pid ]; then
	  $0 restart
	  fi
        ;;

    status)
	df -h | grep /gluster
        ;;

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

