#!/bin/sh

### BEGIN INIT INFO
# Provides:          openstack-designate-api
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      mongodb
# Should-Stop:       mongodb
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: OpenStack DNS (Designate) - api
# Description:       OpenStack DNS (Designate) - api
### END INIT INFO

DAEMON="api"
USER="designate"
CONFFILE="/etc/designate/designate.conf"
RUNDIR="/var/run/designate"

# $RUNDIR  can be tmpfs, thus we have to create/own it here:
mkdir -m 0700 -p $RUNDIR && chown $USER. $RUNDIR

. /etc/rc.status

case "$1" in
    start)
        if [ "$DAEMON" == "api" ]; then
            echo -n "Checking for Designate API DB Migrations"
            /usr/bin/designate-manage database sync
            rc_status -v
        fi

        echo -n "Starting designate-$DAEMON"
        /sbin/startproc -q -s -u $USER /usr/bin/designate-$DAEMON --config-file=$CONFFILE
        rc_status -v
        ;;
    stop)
        echo -n "Shutting down designate-$DAEMON"
        /sbin/killproc /usr/bin/designate-$DAEMON
        rc_status -v
        ;;
    restart)
        $0 stop
        $0 start
        rc_status
        ;;
    force-reload)
        $0 try-restart
        rc_status
        ;;
    reload)
        echo -n "Reload service designate-$DAEMON"
        rc_failed 3
        rc_status -v
        ;;
    status)
        echo -n "Checking for service designate-$DAEMON"
        /sbin/checkproc /usr/bin/designate-$DAEMON
        rc_status -v
        ;;
    try-restart|condrestart)
        if test "$1" = "condrestart"; then
            echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
        fi
        $0 status
        if test $? = 0; then
            $0 restart
        else
            rc_reset # Not running is not a failure.
        fi
        rc_status # Remember status and be quiet
        ;;
    *)
        echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
        exit 1
        ;;
esac
rc_exit

