#!/bin/bash
# allcms        Start and Stops All Content Management System Application Services
#
# Authors:      Alex Rombro <alex.rombro@ericsson.com>
#
# description:  Ericsson / SA Media Watchpoint CMS Application Services Start Up Script

### BEGIN INIT INFO
# Should-Start: $remote_fs $network
# Required-Start: sshd 
# Provides: ppfm-1.1 tomcat pgbouncer-9.3 cms RCSSchedulerService rcssnmpsubagent rmserver xportmanager xporttomcat
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Content Management System Application Server start script
### END INIT INFO

serv_list=('ppfm-1.1' 'tomcat' 'pgbouncer-9.3' 'cms' 'RCSSchedulerService' 'rcssnmpsubagent' 'rmserver' 'xportmanager' 'xporttomcat')
property_file='/etc/ppfm-1.1/ppfm.properties'

start() {
	ping -c 4 dbserver || { echo "Unable to start CMS services:  dbserver is not reachable" ; exit ; }
	if [[ ! -f ${property_file} ]] ; then
		serv_list=('tomcat' 'pgbouncer-9.3' 'cms' 'RCSSchedulerService' 'rcssnmpsubagent' 'rmserver' 'xportmanager' 'xporttomcat')
	fi
	for i in "${serv_list[@]}" ; do
		service ${i} start 
                sleep 1
        done
}

stop() {
	for (( idx = "${#serv_list[@]}" -1 ; idx >= 0 ; idx-- )) ; do
                service ${serv_list[${idx}]} stop
                sleep 1
        done
}

case $1 in
        stop)
                stop
                ;;
        start)
                start
                ;;
        restart)
		stop
		start
		;;	
	status)
                for i in "${serv_list[@]}" ; do
                        service ${i} $1
                        sleep 1
                done
                ;;
        *)
                echo -e "Unable to ${1} services, use start, stop, restart, or status. "
                ;;
esac

exit 0
