#!/bin/sh
#****************************************************************
# *	Copyright (C) 2003, Wistron Inc.  All Rights Reserved.
# *	File Name:		startagent
# *	Author:			Jerry Zhou
# *	Create Time: 	2003-07-29 16:05:02
# *	Last Update: 	2003-07-29 16:05:02
#****************************************************************
executeFileList="wprocd wsmbdrv_server armc_server wasm6p_server hmad perfevtd wsma_server rca"
stopFileList="wprocd hmad perfevtd wsma_server wasm6p_server armc_server wsmbdrv_server rca"
snmp_installed=n
pegasus_exec=/usr/local/share/pegasus/cim_server
snmp_server=/etc/init.d/snmpd

show_status()
{
	for i in $executeFileList
	do
		executeFile=/etc/rc.d/init.d/$i
		if [ -e $executeFile ] ; then
			$executeFile status 2>/dev/null | sed 's/rcmserver/remote console agent/g'
		fi
	done
}

case $1 in
	start)
		if rpm -qa | grep ^ucd-snmp-4.2 1>/dev/null 2>/dev/null ; then
			snmp_installed=y
		else
			if rpm -qa|grep ^net-snmp-5 1>/dev/null 2>/dev/null ; then
				snmp_installed=y
			else
				echo "No snmp package installed!"
				snmp_installed=n
			fi
		fi
		$snmp_server stop 1>/dev/null 2>/dev/null
		$pegasus_exec stop 1>/dev/null 2>/dev/null
		$pegasus_exec start 1>/dev/null 2>/dev/null
		if ps -A|grep cimserver 1>/dev/null 2>/dev/null ; then
			echo "Restart pegasus server ... ok"
		else
			echo "Restart pegasus server ... failed"
		fi
		for i in $executeFileList
		do
			executeFile=/etc/rc.d/init.d/$i
			if [ -e $executeFile ] ; then
				$executeFile stop 1>/dev/null 2>/dev/null
				$executeFile start 1>/dev/null 2>/dev/null
			fi
		done
		sleep 3
		echo ""
		show_status
		;;
	stop)
		echo "stop pegasus server ..."
		$pegasus_exec stop
		for i in $stopFileList
		do
			executeFile=/etc/rc.d/init.d/$i
			if [ -e $executeFile ] ; then
				$executeFile stop 1>/dev/null 2>/dev/null
				case $i in
					wsmbdrv)
						echo "Stopping drivers ... ok"
						;;
					armc_server)
						echo "Stopping armc agent ... ok"
						;;
					wasm6p_server)
						echo "Stopping asm6p agent ... ok"
						;;
					hmad)
						echo "Stopping health monitor agent ... ok"
						;;
					perfevtd)
						echo "Stopping performance event daemon ... ok"
						;;
					wsma_server)
						echo "Stopping system monitor agent ... ok"
						;;
					rca)
						echo "Stopping remote console agent ... ok"
						;;
				esac
			fi
		done
		echo "start pegasus server ..."
		$pegasus_exec start
		;;
	status)
		show_status
		;;
	*)
		echo "Usage: asmagent {start|stop|status}"
esac

exit 0