#!/bin/bash
#
#  Copyright 2015 VMware, Inc.  All rights reserved.
#
# vmware-statsmonitor     Start/Stop the VMware Appliance Stats Monitor
#
#

### BEGIN INIT INFO
# Provides: vmware-statsmonitor
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: VMware Appliance Stats Monitor
### END INIT INFO

STATSMON_SRV_NAME="VMware Appliance Stats Monitor"
STATSMON_TAG=statsMonitor
STATSMON_KILL_SIGNAL=15
MSG_ISRUNNING="${STATSMON_SRV_NAME} is running."
MSG_ISNOTRUNNING="${STATSMON_SRV_NAME} is not running."
STATSMON_PID="$(pidof -s $STATSMON_TAG)"
WATCHDOG=/usr/bin/vmware-watchdog
STATSMON_BIN_DIR=/usr/lib/vmware-statsmonitor
STATSMON_BIN=$STATSMON_BIN_DIR/statsMonitor.sh
STATSMON_ETC_DIR=/etc/vmware/statsmonitor
STATSMON_CONF_FILE=$STATSMON_ETC_DIR/statsMonitor.xml

RESULT=0

start() {
    args="$STATSMON_BIN $STATSMON_CONF_FILE"
    $WATCHDOG -s $STATSMON_TAG -u 30 -q 5 "$args" > /dev/null 2>&1 &
    if [ $? -eq 0 ]; then
        echo "$STATSMON_SRV_NAME started."
        RESULT=0
    else
        echo "failed"
        RESULT=1
    fi
}

stop() {
    $WATCHDOG -k $STATSMON_TAG
    kill "-${STATSMON_KILL_SIGNAL}" $STATSMON_PID
    if [ $? -eq 0 ]; then
        echo "${STATSMON_SRV_NAME} stopped."
        RESULT=0
    else
        echo "failed"
        RESULT=1
    fi
}

usage() {
   echo "Usage: $0 {start|stop|restart|status}"
}

if [ $# -ne 1 ]; then
   usage
   exit 1
fi

case $1 in
   "start")
      if [ -z "${STATSMON_PID}" ] ; then
         start
      else
         echo "${MSG_ISRUNNING}"
      fi
      ;;
   "stop")
      if [ -n "${STATSMON_PID}" ] ; then
         stop
      else
         echo "${MSG_ISNOTRUNNING}"
      fi
     ;;
   "restart")
      stop
      start
      ;;
   "status")
      if [ -n "${STATSMON_PID}" ] ; then
         echo "${MSG_ISRUNNING}"
      else
         echo "${MSG_ISNOTRUNNING}"
         RESULT=3
      fi
      ;;
   *)
      usage
      RESULT=1
      ;;
esac

exit $RESULT
