#!/bin/bash
#
# Startup script for etcd
#
# chkconfig: 2345 20 80
# description: Starts and stops etcd systemd service

### BEGIN INIT INFO
# Provides: etcd
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start up the etcd service
# Description:       A highly-available key value store for shared configuration
### END INIT INFO


DESC="ETCD highly-available key value database"
SERVICE="etcd.service"
PIDFILE="/var/run/etcd.pid"


status()
{
    if [ "`systemctl is-active etcd.service`" = "active" ]; then
        RETVAL=0
        echo "$DESC is running"
        return
    else
        echo "$DESC is Not running"
        RETVAL=1
    fi
}

start()
{
    if [ -e $PIDFILE ]; then
        PIDDIR=/proc/$(cat $PIDFILE)
        if [ -d $PIDDIR ]; then
            echo "$DESC already running."
            return
        else
            echo "Removing stale PID file $PIDFILE"
            rm -f $PIDFILE
        fi
    fi

    echo "Starting $SERVICE..."

    systemctl start $SERVICE

    if [ $? -eq 0 ]; then
        echo "Started $SERVICE successfully"
        RETVAL=0
    else
        echo "$SERVICE failed!"
        RETVAL=1
    fi

}

stop()
{
    echo -n "Stopping $SERVICE..."
    systemctl stop $SERVICE
    if [ $? -eq 0 ]; then
        echo "$SERVICE stopped."
    else
        echo "failed to stop $SERVICE!"
    fi

    if [ -e $PIDFILE ]; then
        echo "Removing stale PID file $PIDFILE"
        rm -f $PIDFILE
    fi
}


case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
        ;;
esac

exit $RETVAL



