#!/bin/ksh
###############################################################################
#
# Sun Cluster Sun MBM Data Service version 1.0
#
# Sun MBM Start script for scmbm.
#
###############################################################################
EMP_SETUP=none
EMP_SRV_ID=none
EMP_DEBUG=OFF

typeset opt

while getopts 'S:I:D:L:F:' opt
do
  case "$opt" in
    S)
    # Setup path name
    EMP_SETUP=$OPTARG
    ;;
    I)
    # Data service identifier
    EMP_SRV_ID="$OPTARG"; export EMP_SRV_ID
    ;;
    D)
    # Debug option
    EMP_DEBUG=$OPTARG
    ;;
    L)
    # SYSLOG TAG option
    SYSLOG_TAG="$OPTARG"; export SYSLOG_TAG
    ;;
    F)
    # SYSLOG FACILITY option
    SYSLOG_FACILITY="$OPTARG"; export SYSLOG_FACILITY
    ;;
    *)
    echo "mbm_start: warning option $OPTARG unknown"
    ;;
  esac
done

if [ "$EMP_SETUP" = "none" ]
then
    logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] "mbm_start: ERROR: Setup file has not been specified"
    exit 101
fi

ksh $EMP_SETUP
if [ $? -ne 0 ]
then
  logger -p ${SYSLOG_FACILITY}.warn -t [$SYSLOG_TAG] "mbm_start: WARNING: $EMP_SETUP not sourced properly"
fi

. $EMP_SETUP
if [ -z "$TERM" ]
then
  TERM=$XTERM; export TERM
fi

if [ "$EMP_DEBUG" = "ON" ]
then
  logger -p ${SYSLOG_FACILITY}.notice -t [$SYSLOG_TAG] "mbm_start: $0 started with \"$*\" parameters"
fi

if [ "$EMP_SRV_ID" = "none" ]
then
    logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] "mbm_start: ERROR: Data service identifier has not been specified"
    exit 102
fi

if [ "$EMP_DEBUG" = "ON" ]
then
  logger -p ${SYSLOG_FACILITY}.notice -t [$SYSLOG_TAG] "Starting MBM data service $EMP_SRV_ID `hostname`"
fi
bam start << !
y

!
ret_bam=$?

if [ $ret_bam -ne 0 ]
then
  logger -p ${SYSLOG_FACILITY}.warn -t [$SYSLOG_TAG] "MBM failed to start as data service $EMP_SRV_ID `hostname`, status $ret_bam"
  exit $ret_bam
fi


mbm_is_active=0
mbm_out=`ebminfo -A`
ret_status=$?
case "$ret_status" in

  0)
  # Batch node is active
  if [ "$EMP_DEBUG" = "ON" ]
  then
    logger -p ${SYSLOG_FACILITY}.notice -t [$SYSLOG_TAG] "mbm_start: $mbm_out"
  fi
  mbm_is_active=1
  ;;

  1)
  # Batch node just started. 
  if [ "$EMP_DEBUG" = "ON" ]
  then
    logger -p ${SYSLOG_FACILITY}.notice -t [$SYSLOG_TAG] "mbm_start: status $ret_status, $mbm_out"
  fi
  mbm_is_active=1
  ;;

  *)
  # Not active
  if [ "$EMP_DEBUG" = "ON" ]
  then
    logger -p ${SYSLOG_FACILITY}.notice -t [$SYSLOG_TAG] "mbm_start: $mbm_out"
  fi
  mbm_is_active=0
  ;;

esac

if [ $mbm_is_active -eq 1 ]
then
  logger -p ${SYSLOG_FACILITY}.notice -t [$SYSLOG_TAG] "MBM started as data service $EMP_SRV_ID `hostname`, startup status $ret_status"
else
  logger -p ${SYSLOG_FACILITY}.warn -t [$SYSLOG_TAG] "MBM failed to start as data service $EMP_SRV_ID `hostname`, status $ret_status"
  exit $ret_status
fi
exit 0
