#!/usr/bin/ksh93
# IBM_PROLOG_BEGIN_TAG 
# This is an automatically generated prolog. 
#  
# 61haes_r720 src/43haes/usr/sbin/cluster/sa/filenet/sbin/cl_filenet_process_engine_start.sh 1.2 
#  
# Licensed Materials - Property of IBM 
#  
# COPYRIGHT International Business Machines Corp. 2010 
# All Rights Reserved 
#  
# US Government Users Restricted Rights - Use, duplication or 
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 
#  
# IBM_PROLOG_END_TAG 
# @(#)26	1.2  src/43haes/usr/sbin/cluster/sa/filenet/sbin/cl_filenet_process_engine_start.sh, hacmp, 61haes_r720, 1539B_hacmp720 9/11/15 15:21:55
. /usr/es/lib/ksh93/func_include

###############################################################################
#
# Name: usage
#
# Prints usage message and exits the program.
#
# Arguments:  none
#
# Returns:    does not return
#
################################################################################
usage() {
    [[ "$VERBOSE_LOGGING" == "high" ]] && set -x

    KLIB_SA_logmsg WARN 2 1 filenetsa.cat "Usage:\ncl_filenet_process_engine_start [-D | -v] PROCESS_ENGINE_USER\n"

    exit 1
}

###############################################################################
#
# Name: isRunning
#
# Check to see if the process engine is running
#
# Arguments:  none
#
# Returns:
#       0 on RUNNING
#       1 on NOT RUNNING
#
################################################################################
isRunning() {
	[[ "$VERBOSE_LOGGING" == "high" ]] && set -x

        if echo | /usr/bin/su - $PE_USER_NAME -c "LC_ALL=C initfnsw -y status" | grep -i "software started" >> $LOG_FILE 2>&1
	then
		KLIB_SA_logmsg INFO 4 2 filenetsa.cat "Process Engine is active\n"
		return 0
	fi

	KLIB_SA_logmsg WARN 4 3 filenetsa.cat "Process Engine is not active\n"
	return 1    # Process engine not running
}

###############################################################################
#
# Name: doStart
#
# Becomes the DB2 INSTANCE_OWNER and starts the instance.
#
# Arguments:  none
#
# Returns:
#       0 on SUCCESS
#       1 on FAILURE
#
################################################################################
doStart() {
	[[ "$VERBOSE_LOGGING" == "high" ]] && set -x

        echo | /usr/bin/su - $PE_USER_NAME -c "initfnsw -y start" >> $LOG_FILE 2>&1
        sleep 10
        if echo | /usr/bin/su - $PE_USER_NAME -c "LC_ALL=C initfnsw -y status" | grep -i "software started" >> $LOG_FILE 2>&1
	then
                KLIB_SA_logmsg INFO 4 4 filenetsa.cat "Process Engine has been started\n"
                return 0
	fi
        KLIB_SA_logmsg ERROR 4 5 filenetsa.cat "Process Engine unable to start\n"
        return 1
}

###############################################################################
# Main program procedure.
###############################################################################
. /usr/es/sbin/cluster/sa/filenet/sbin/cl_filenet_common_variables

PROGNAME=${0##*/}
PATH=$(/usr/es/sbin/cluster/utilities/cl_get_path all)
FPATH_BASE=/usr/es/lib/ksh93
FPATH=$FPATH_BASE/hacmp:$FPATH_BASE/sa:$FPATH_BASE/db2:$FPATH_BASE/aix:$FPATH_BASE/aix/odm
#
# Process engine path is set to PATH variable
#
PE_BIN_PATH=$(lslpp -cw '*/bin/initfnsw' | tail -1 | cut -d ':' -f 1)
PE_BIN_PATH=${PE_BIN_PATH%initfnsw}
PATH=$PATH:$PE_BIN_PATH
export PATH FPATH
LOG_FILE=$(clodmget -q name=$KLIB_HACMPLOG_ENTRY -f value -d "=" HACMPlogs)
LOG_FILE=${LOG_FILE//\"/}
LOG_FILE="$LOG_FILE/$KLIB_HACMPLOG_ENTRY"

[[ $VERBOSE_LOGGING == "high" ]] && set -x

DEBUG=${DEBUG:-"0"}
VERBOSE=${VERBOSE:-"0"}
PE_USER_NAME=""

NUM_ARGS=$#

(( $NUM_ARGS == 0 )) && usage

set -- $(getopt Dv $* 2> /dev/null)

(( $? != 0 )) && {
    usage
}

while [[ $1 != -- ]]
do
    case $1 in
        -D) # Verbose on + Debug on
            VERBOSE=1
            DEBUG=1
            shift
            ;;
        -v) # Verbose on
            VERBOSE=1
            shift
            ;;
        *)
            usage
            ;;
    esac
done

shift    # get rid of the trailing --

PE_USER_NAME=$1

echo "######################################################" >> $LOG_FILE
dspmsg -s 2 filenetsa.cat 8 "# PROCESS ENGINE START LOG" >> $LOG_FILE
echo "######################################################" >> $LOG_FILE

[[ -z "$PE_USER_NAME" ]] && {
    KLIB_SA_logmsg WARN 2 6 filenetsa.cat "Process Engine user is missing\n"
    usage
}

isRunning

if (( $? == 1 )); then
    KLIB_SA_logmsg INFO 2 7 filenetsa.cat "Starting Process Engine\n"
    doStart
    exit $?
fi

exit $?
