#!/bin/ksh
#**********************************************************************#
#*                                                                    *#
#* Copyright (c) 2003 by Sun Microsystems, Inc.                       *#
#* All rights reserved.                                               *#
#*                                                                    *#
#**********************************************************************#

###############################################################################
#
# Sun Cluster Sun MTP Data Service version 1.0
#
# Sun MTP Start script for scmtp.
#
###############################################################################
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
    ;;
    *)
    kixlog "mtp_start: warning option $OPTARG unknown"
    ;;
  esac
done

if [ "$EMP_SETUP" = "none" ]
then
    kixlog "mtp_start: ERROR: Setup file has not been specified"
    logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] "mtp_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] "mtp_start: WARNING: $EMP_SETUP not sourced properly"
fi


. $EMP_SETUP

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

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

kixverify -r ALL
kixverify_ret_status=$?

kixstart $HA_MTP_START_OPTS
kixstart_ret_status=$?

sleep 15

ret_str=`kixdump -hproc_main`
ret_status=$?
if [ "$EMP_DEBUG" = "ON" ]
then
    kixlog "mtp_start: checking for unikixmain, status=$ret_status. $ret_str"
    logger -p ${SYSLOG_FACILITY}.notice -t [$SYSLOG_TAG] "mtp_start: checking for unikixmain, status=$ret_status. $ret_str"
fi
if [ $ret_status -ne 0 ]
then
    kixlog "mtp_start: WARNING: unikixmain is not running, status $ret_status"
    logger -p ${SYSLOG_FACILITY}.warn -t [$SYSLOG_TAG] "mtp_start: WARNING: unikixmain is not running, status $ret_status"
    kixstart_ret_status=105
else
    if [ ! "$ret_str" = "ACTIVE" ]
    then
      kixlog "mtp_start: WARNING: unikixmain is not active. $ret_str"
      logger -p ${SYSLOG_FACILITY}.warn -t [$SYSLOG_TAG] "mtp_start: WARNING: unikixmain is not active. $ret_str"
      kixstart_ret_status=106
    fi 
fi

if [ $kixstart_ret_status -ne 0 ]
then
  kixlog "MTP failed to start as data service $EMP_SRV_ID `hostname`, database status $kixverify_ret_status, startup status $kixstart_ret_status"
  logger -p ${SYSLOG_FACILITY}.notice -t [$SYSLOG_TAG] "MTP failed to start as data service $EMP_SRV_ID `hostname`, startup status $kixstart_ret_status"
  kixhashut -t5
else
  kixlog "MTP started as data service $EMP_SRV_ID `hostname`, database status $kixverify_ret_status, startup status $kixstart_ret_status"
  logger -p ${SYSLOG_FACILITY}.notice -t [$SYSLOG_TAG] "MTP started as data service $EMP_SRV_ID `hostname`, startup status $kixstart_ret_status"
fi
exit $kixstart_ret_status
