if [ -f /etc/redhat-release ] ; then
        v1=`cat /etc/redhat-release | cut -f1 -d " "`
        v2=`cat /etc/redhat-release | cut -f2 -d " "`
        Linux=$v1$v2
else
        if [ -f /etc/SuSE-release ] ; then
                Linux=`cat /etc/SuSE-release | grep SUSE | cut -f1 -d " "`
        fi
fi

if [ "$Linux" == "RedHat" ] ; then
#!/bin/bash
#
# Startup script for stor_cimserver 
#
# chkconfig: 23456 98 01
# description: stor_cimserver 

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

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
else
if [ "$Linux" == "SUSE" -o "$Linux" == "openSUSE" ] ; then
#
# Startup script for stor_cimserver 
#
#
# description: stor_cimserver 

# Source function library.
. /etc/rc.status
rc_reset
fi
fi



RETVAL=0
CIMSERVER_BIN=cimserver
CIMSERVER_NAME=stor_cimserver

checkCimserverBin () {
    if [ ! -e $StorMan/pegasus/bin/$CIMSERVER_BIN ] ; then
        echo  $"ERROR : $CIMSERVER_BIN is not present at $StorMan/pegasus/bin/ "
        exit 1
    else
        #echo  $"INFO  : Using $CIMSERVER_BIN from path $StorMan/pegasus/bin/ "
        CIMSERVER_BIN_PATH=$StorMan/pegasus/bin/
    fi
}

check () {
    if [ -z $StorMan ] ;  then
        echo $"ERROR : StorMan is not set"
        echo $"INFO  : set StorMan to path where bin, log, conf directories are present"
        exit 1
    fi

    if [ -z $PEGASUS_HOME ] ;  then
        echo $"ERROR : PEGASUS_HOME is not set"
        echo $"INFO  : set PEGASUS_HOME to path where Pegasus' bin directory is present"
        exit 1
    fi

    if [ -z $PEGASUS_ROOT ] ;  then
        echo $"ERROR : PEGASUS_ROOT is not set"
        echo $"INFO  : set PEGASUS_ROOT to path where Pegasus' bin directory is presentt"
        exit 1
    fi

    if [ -z $LD_LIBRARY_PATH ] ;  then
        echo $"ERROR : LD_LIBRARY_PATH is not set"
        echo $"INFO  : set LD_LIBRARY_PATH to path where Pegasus' lib directory is presentt"
        exit 1
    fi

   # if [ ! -e $StorMan/conf/PmcConfSMIS.txt ] ; then
    #    echo $"INFO : $StorMan/conf/PmcConfSMIS.txt is not present; So, debug messages will not be logged"
    #fi

    checkCimserverBin
}

return_status() {
    if [ `pidof $CIMSERVER_BIN` ] ; then
        return 0
    else
        return 1
    fi
}

start() {
    return_status
    RETVAL=$?
    if [ $RETVAL -eq 0 ] ; then
        pid=`pidof $CIMSERVER_BIN`
	echo "Detected that another open pegasus cimserver is already running: Please close this cimserver of pid $pid and restart the services for proper functionality"
        return $RETVAL
    fi
    [ -x $CIMSERVER_BIN_PATH/$CIMSERVER_BIN ] || exit 5
    echo -n $"Starting $CIMSERVER_NAME : "
    $CIMSERVER_BIN_PATH/$CIMSERVER_BIN > /dev/null 2>&1
    return_status
    RETVAL=$?
    if [ $RETVAL -eq 0 ] ; then
        echo "$CIMSERVER_NAME Initialized successfully"
    else
        echo "$CIMSERVER_NAME Failed to initialize"
    fi
    return $RETVAL
}

stop() {
    return_status
    RETVAL=$?
    if [ $RETVAL -eq 1 ] ; then
        echo "$CIMSERVER_NAME is not running"
        return $RETVAL
    fi
    echo -n $"Stopping $CIMSERVER_NAME : "
    $CIMSERVER_BIN_PATH/$CIMSERVER_BIN -s
    sleep 1
    return_status
    RETVAL=$?
    if [ $RETVAL -eq 1 ] ; then
        echo "$CIMSERVER_NAME terminated successfully"
    else
        echo "$CIMSERVER_NAME failed to terminate"
    fi
    return $RETVAL
}


case "$1" in
  start)
    check
    start
    RETVAL=$?
    ;;
  stop)
    check
    stop
    RETVAL=$?
    ;;
  status)
    return_status
    RETVAL=$?
    if [ $RETVAL -eq 1 ] ; then
        echo "$CIMSERVER_NAME is NOT running"
    else
        echo "$CIMSERVER_NAME is running"
    fi
    ;;
  restart)
    check
    stop
    sleep 2
    check
    start
    RETVAL=$?
        ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart}"
    RETVAL=2
esac

exit $RETVAL
