#!/bin/sh
# All Rights Reserved, Copyright (C) 2005, 2007, Hitachi, Ltd.

#
# Check option
#
OS_NAME=Linux

if [ "$OS_NAME" = "SunOS" ]
then
    CAT=/usr/bin/cat
    GREP=/usr/bin/grep
    PS=/usr/bin/ps
    SED=/usr/bin/sed
    LS=/usr/bin/ls
elif [ "$OS_NAME" = "AIX" ]
then
    CAT=/usr/bin/cat
    GREP=/usr/bin/grep
    PS=/usr/bin/ps
    SED=/usr/bin/sed
    LS=/usr/bin/ls
elif [ "$OS_NAME" = "HP-UX" ]
then
    CAT=/usr/bin/cat
    GREP=/usr/bin/grep
    PS=/usr/bin/ps
    SED=/usr/bin/sed
    LS=/usr/bin/ls
elif [ "$OS_NAME" = "Linux" ]
then
    CAT=/bin/cat
    GREP=/bin/grep
    PS=/bin/ps
    SED=/bin/sed
    LS=/bin/ls
fi

if [ "$OS_NAME" = "AIX" ]
then
    ABSOLUTE_PATH="/usr/HDVM/HBaseAgent/agent/bin/"
	VERSION_PATH="/usr/HDVM/HBaseAgent/etc/"
else
    ABSOLUTE_PATH="/opt/HDVM/HBaseAgent/agent/bin/"
	VERSION_PATH="/opt/HDVM/HBaseAgent/etc/"
fi

if [ $# -ge 4 ]
then
    echo `${ABSOLUTE_PATH}hbsa_getmsg -e hdvmagt KAIE6_INVALID_ARGUMENTS` >&2
    exit 1
fi


if [ "$1" != "start" ]
then
	if [ "$1" != "status" ]
	then
		if [ "$1" != "stop" ]
		then
			echo `${ABSOLUTE_PATH}hbsa_getmsg -e hdvmagt KAIE6_INVALID_ARGUMENTS` >&2
			exit 1
		fi
	fi
fi


if [ "$1" = "stop" ]  
then
	if [ $# -ge 3 ]
	then
    	echo `${ABSOLUTE_PATH}hbsa_getmsg -e hdvmagt KAIE6_INVALID_ARGUMENTS` >&2
    	exit 1
	fi
	if [ "$2" != "" ]  
	then
		if [ "$2" != "-f" ]  
		then
			echo `${ABSOLUTE_PATH}hbsa_getmsg -e hdvmagt KAIE6_INVALID_ARGUMENTS` >&2
       		exit 1
		fi
	fi
fi

LOCK_EXIST=`$LS ${VERSION_PATH}.lock 2>/dev/null`


if [ "$1" = "start" ]
then
	if [ $# -ge 3 ]
	then
    	echo `${ABSOLUTE_PATH}hbsa_getmsg -e hdvmagt KAIE6_INVALID_ARGUMENTS` >&2
    	exit 1
	fi
	if [ "$2" != "" ]  
	then
		if [ "$2" != "-nno" ]  
		then
			echo `${ABSOLUTE_PATH}hbsa_getmsg -e hdvmagt KAIE6_INVALID_ARGUMENTS` >&2
       		exit 1
		fi
	fi

	if [ "$LOCK_EXIST" != "" ]
	then
		exit 0
	fi
	
	pid=`LC_ALL=C $PS -e | $GREP hbsa_ser | $GREP -v hbsasrv | $SED -e 's/^  *//' -e 's/ .*//'`
	if [ "$pid" != "" ]
	then
   		echo `${ABSOLUTE_PATH}hbsa_getmsg -d KAIE62001_SERVICE_ALREADY_RUNNING hdvmagt KAIE62001_SERVICE_ALREADY_RUNNING`
	fi
	if [ $# -eq 1 ]
	then
		${ABSOLUTE_PATH}hbsa_service
	else
		${ABSOLUTE_PATH}hbsa_service -nno
	fi
	exit 0
fi


if [ "$1" = "status" ]
then
	if [ $# -ge 2 ]
	then
	echo `${ABSOLUTE_PATH}hbsa_getmsg -e hdvmagt KAIE6_INVALID_ARGUMENTS` >&2
	exit 1
	fi
	BUILD=`$CAT ${VERSION_PATH}amc_version.properties| $GREP version.build= | $SED -e 's/version.build=.....//g'`
	PRODUCT=`$CAT ${VERSION_PATH}amc_version.properties | $GREP version.product= | $SED -e 's/version.product=//g'`

	echo "HBsA Service Infomation"
	echo " version   :  "$PRODUCT
	echo " build     :  "$BUILD

	if [ "$LOCK_EXIST" != "" ]
	then
		echo " status    :  Maintenance"
	else
		#
		# Check hbsa_service daemon
		#
		pid=`LC_ALL=C $PS -e | $GREP hbsa_ser | $GREP -v hbsasrv | $SED -e 's/^  *//' -e 's/ .*//'`
		if [ "$pid" = "" ]
		then
			echo " status    :  Stop"
    		exit 0
		fi
		echo " status    :  Running"
   		exit 0
	fi
fi


if [ "$1" = "stop" ]
then
	#
	# Call StopCLI(JAVA)
	#

	pid=`LC_ALL=C $PS -e | $GREP hbsa_ser | $GREP -v hbsasrv | $SED -e 's/^  *//' -e 's/ .*//'`
	if [ "$pid" = "" ]
	then
   		exit 0
	fi

	if [ "$LOCK_EXIST" != "" ]
	then
		exit 0
	fi

	${ABSOLUTE_PATH}amc_exec alet.server:StopCLI $2 
	RTN_CODE=$?

	#
	# Check Return-Code of StopCLI(JAVA)
	#
	if [ "$RTN_CODE" = "1" ]
	then
    	echo `${ABSOLUTE_PATH}hbsa_getmsg -e hdvmagt KAIE62604_CANNOT_STOP_HDVMAGT` >&2

	elif [ "$RTN_CODE" != "0" ]
	then
		echo `${ABSOLUTE_PATH}hbsa_getmsg -e hdvmagt KAIE62605_CANNOT_CONNECT_HBSA` >&2
	fi
	exit $RTN_CODE
fi