#!/bin/bash

### BEGIN INIT INFO
# Provides:          omcd
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start omcd daemon at boot time
# Description:       Start omcd daemon at boot time
### END INIT INFO

# chkconfig: 2345 98 18
# description: as following
# CVS $Id: omcd,v 1.2 2002/09/10 19:53:49 hewd Exp $
# For WXC2 OMC
# Comments to support chkconfig on RedHat Linux


userName=`whoami`

#mysql_user=`/usr/local/mssBak/script/encryption 1 "6266706d736f7a7c7b6b7f7b7f"`
#mysql_pw=`/usr/local/mssBak/script/encryption 1 "2b3a392757557b697b7e7e757b777c"`


clear_crontab()
{
	echo "Clear EMS crontab"
	crontab -l > /tmp/cur_crontab
	sed '/backup_mss/d' /tmp/cur_crontab | sed '/audit_ems_log/d' | sed '/omcMainWatcher/d' | sed '/createMscHourlyCsta/d' | sed '/audit_mysql_log/d' | sed '/^\s*$/d' > /tmp/new_crontab
	crontab -u root /tmp/new_crontab
	rm -rf /tmp/cur_crontab /tmp/new_crontab
	rm -rf /tmp/*.lock
}

resume_crontab()
{
	echo "Resume EMS crontab"
	crontab -l > /tmp/new_crontab
	
	if test `grep -c cdr_io_proc /tmp/new_crontab` -eq 1 ; then
		sed -i '/cdr_io_proc/d' /tmp/new_crontab
	fi
	if test `grep -c cdr_data_proc /tmp/new_crontab` -eq 1 ; then
		sed -i '/cdr_data_proc/d' /tmp/new_crontab
	fi
	
	cat /usr/local/mssBak/script/cronset >> /tmp/new_crontab
	sed '/^\s*$/d' /tmp/new_crontab > /tmp/new_crontab1
	crontab -u root /tmp/new_crontab1
	rm -rf /tmp/new_crontab /tmp/new_crontab1
}

if [ `uname -r |grep -c '2.4.7-10'` -eq 1 ] ; then
    LD_LIBRARY_PATH=/usr/local/mysql/lib ; export LD_LIBRARY_PATH
else
	LD_LIBRARY_PATH=/usr/lib/mysql ; export LD_LIBRARY_PATH
fi

startProcList="iptrans omcMain paraComm subsComm logCollector omcCleaner smcli cdrCollector subsDataBackup ftpSend alarmAgent nrtrde sftpSend cstaCollector"
#alive bsscomm
stopProcList="iptrans omcMain paraComm subsComm logCollector omcCleaner smcli cdrCollector subsDataBackup ftpSend alarmAgent nrtrde sftpSend cstaCollector"
statusProcList=$stopProcList

slaveStartProcList="iptrans omcMain"
#include some functions like status,killproc
. /etc/init.d/functions

omcBinDir=/usr/local/omc/bin
cd $omcBinDir

#find omcRunMode
omcRunMode=`grep omcRunMode ./conf/omcd.conf|cut -d"=" -f2`

if [ "$omcRunMode" = "0" ] ; then
	echo "+--------------------------------+"
	echo "+ Running In Single EMS Mode     +"
	echo "+--------------------------------+"
else
	echo "+--------------------------------+"
	echo "+ Running In Dual EMS Mode       +"
	echo "+--------------------------------+"
fi

mode=$1
case "$mode" in
	start)
		ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 2>/dev/null
		if [ "$userName" != "root" ] ; then
			echo "Just root user can run this sever!!"
			exit 1
		fi
		if [ "$omcRunMode" = "0" ] ; then
			for procName in $startProcList;do
				if(test -x $procName) then
					killall $procName 2>/dev/null
					./$procName -d 2>/dev/null
					echo  "Starting $procName process  ..."
				else
					echo  "Can't startup $procName process"
				fi
				sleep 1
			done
		else
			for procName in $slaveStartProcList;do
				if(test -x $procName) then
					killall $procName 2>/dev/null
					./$procName -d 2>/dev/null
					echo  "Starting $procName process  ..."
				else
					echo  "Can't startup $procName process"
				fi
				sleep 1
			done
		fi
		resume_crontab	
		
		
	
		#while [ -z `pidof omcMain` ];
		#do
        	#	sleep 1
		#done
		#/usr/local/omc/bin/mysql_OMCmain_Auditlog_filter
		
		if [ -z `pidof omcMain` ] ; then
			sleep 2
			if [ -z `pidof omcMain` ] ; then
				echo "omcMain still not starts"
			else
				/usr/local/omc/bin/mysql_OMCmain_Auditlog_filter
			fi
		else
			/usr/local/omc/bin/mysql_OMCmain_Auditlog_filter
		fi

		#raid_package=`rpm -q sas_snmp`
                #if [ `echo $raid_package |grep -c 'not'` -eq 1 ] ; then
                #        echo ""
                #else
                #        echo "restart RAID related process"
                #        service snmpd restart
                #        service lsi_mrdsnmpd restart
                #fi
		
	
		;;
	status)
		for procName in $statusProcList;do
			status $procName
		done
		;;
	stop)
		if [ "$userName" != "root" ] ; then
			echo "Just root user can run this sever!!"
			exit 1
		fi		
		clear_crontab
		for procName in $stopProcList;do
			if [ `uname -r |grep -c '2.4.7-10'` -eq 1 ] ; then
				killproc $procName -SIGTERM
			else
				/usr/bin/killall $procName
			fi
			echo "$procName stopped";
		done
		clear_crontab
		clear_crontab
#`/usr/bin/mysql -u${mysql_user} -p${mysql_pw} <<_EOF_
#stop slave;
#_EOF_`
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
	version)
		thisVersion=`tail -3 ../install.log |grep -v Date | awk '{print $3}'`
		echo "AgrandTech EMS $thisVersion"
		;;
	*)
		echo "AgrandTech EMS"
		echo "Usage: $0 start|status|stop|restart|version"
		exit 3
		;;
esac

exit 0