#! /bin/bash
#
# Copyright (c) 2003-2005,2011-2014 Andreas Lang-Nevyjel init.at
#
# RedHat stuff
# chkconfig: 2345 79 21
# description: meta-server
#
### BEGIN INIT INFO
# Provides:      meta-server
# Required-Start: $network $syslog logging-server
# Required-Stop: $network $syslog logging-server
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description:   starts meta-server
### END INIT INFO

export SYSTEMD_NO_WRAP="1"
if [ -f /etc/rc.status ] ; then
    . /etc/rc.status
else
    . /etc/rc.status_suse
fi
. /etc/init.d/ics_tools.sh

SERVER_BIN=/opt/cluster/sbin/meta-server.py
SERVER_PID=/var/run/meta-server.pid
SERVER_ARGS=""

test -x ${SERVER_BIN} || exit 5

rc_reset

if [ -d /opt/python-init/bin ] ; then
    export PATH=/opt/python-init/bin:${PATH}
fi

export PYTHONOPTIMIZE="yes"
export PYTHONBUFFER="yes"
export HOSTNAME=`/bin/hostname`
case "$1" in
    start)
        echo -n "Starting meta-server.py "
        if [ -f ${SERVER_PID} ] ; then
            echo -n " ... already running"
        else
            ${SERVER_BIN} ${SERVER_ARGS}
        fi
        rc_status -v
    ;;
    stop)
        echo -n "Stopping meta-server.py "
        if [ -f ${SERVER_PID} ] ; then
            kill -s 15 `cat ${SERVER_PID} | head -n 1` || rc_failed
        else
            rc_failed
        fi
        rm -f ${SERVER_PID}
        rc_status -v
    ;;
    force-stop)
        echo -n "Force stopping meta-server.py"
        if [ -f ${SERVER_PID} ] ; then
            kill -9 `cat ${SERVER_PID} ` || rc_failed
        else
            rc_failed
        fi
        rm -f ${SERVER_PID}
        rc_status -v
    ;;
    status)
        echo -n "Checking meta-server.py..."
        check_threads_ok ${SERVER_PID} || {
            check_threads ${SERVER_PID} || rc_failed 
        } 
        rc_status -v ; 
    ;;
    restart)
        echo "Restarting $(basename $SERVER_BIN)"
        $0 stop && sleep 2 ; $0 start || return=$rc_failed
        ;;
        force-restart)
        echo "Force-restarting $(basename $SERVER_BIN)"
        $0 force-stop && sleep 2 ; $0 start || return=$rc_failed
    ;;
    *)
        echo "Usage: $0 {start|stop|status|force-stop|restart|force-restart}"
        exit 1
    ;;
esac

rc_exit
