File openstack-nova-api.init of Package openstack-nova

#!/bin/bash
#
# nova-api	OpenStack Nova API Server
#
# chkconfig: 2345 96 04
# description: At the heart of the cloud framework is an API Server. \
#              This API Server makes command and control of the      \
#              hypervisor, storage, and networking programmatically  \
#              available to users in realization of the definition   \
#              of cloud computing.
#
# config: /etc/nova/nova.conf
# config: /etc/nova/nova-api.conf
# pidfile: /var/run/nova/nova-api.pid

### BEGIN INIT INFO
# Provides: openstack-nova-api
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $syslog
# Should-Start: $syslog
# Should-Stop: $network $syslog
# Default-Start: 3 4 5
# Default-Stop: 0 2 1 6
# Short-Description: OpenStack Nova API Server
# Description: At the heart of the cloud framework is an API Server.
#              This API Server makes command and control of the
#              hypervisor, storage, and networking programmatically
#              available to users in realization of the definition
#              of cloud computing.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

prog="OpenStack Nova API Server"
suffix="api"
flgfile=/etc/nova/nova.conf
logfile=/var/log/nova/nova-$suffix.log
pidfile=/var/run/nova/nova-$suffix.pid
lckfile=/var/lock/subsys/openstack-nova-$suffix
binfile=/usr/bin/nova-$suffix

start() {
	if [ -f "$pidfile" ]; then
		pid=`cat $pidfile`
		checkpid $pid
		r=$?
		if [ "$r" -eq 0 ]; then
			cmd=$(basename $binfile)
			echo -n "$cmd is already running (pid $pid)"; passed
			echo
			exit 0
		fi
	fi
	echo -n "Starting $prog: "
	cd /var/lib/nova
	/sbin/start-stop-daemon --start -b -c nova:nobody --make-pidfile --pidfile $pidfile  --exec /usr/bin/nova-$suffix -- --flagfile=$flgfile --logfile=$logfile --pidfile $pidfile
	sleep 1
	if [ -f "$pidfile" ]; then
		checkpid `cat $pidfile`
		r=$?
		if [ "$r" -eq 0 ]; then
			touch $lckfile
			success
		else
			failure
		fi
	else
		failure
	fi
	echo
	return
}	

stop() {
        echo -n "Stopping $prog: "
    if [ -n "`pidofproc -p $pidfile $binfile`" ] ; then
        killproc $pidfile
#dirty fix. old script do not kill all processes
        killproc $binfile

    else
	failure $"Stopping $prog"
    fi
    retval=$?
    [ $retval -eq 0 ] && rm -f $lckfile
    echo
    return $retval
}
                                                                                        
rh_status() {
	status -p $pidfile $binfile
}

restart() {
    	stop
	start
}

case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    status)
	rh_status
	retval=$?
	if [ $retval -eq 3 -a -f $lckfile ] ; then
		retval=2
	fi
	;;
    restart)
	restart
	;;
    condrestart)
	if [ -n "`pidofproc -p $pidfile $binfile`" ] ; then
		restart
	fi
	;;
    *)
	echo "Usage: service openstack-nova-$suffix {start|stop|status|restart|condrestart}"
	exit 1
	;;
esac
exit $?
openSUSE Build Service is sponsored by