#!/bin/bash
#
# (c) Copyright 2011-2016 Hewlett Packard Enterprise Development Company, L.P.
#
# See "man chkconfig" for information on next two lines (Red Hat only)
# chkconfig: - 51 49
# description: SMA Reverse BMC <-> AgentX proxy. 
#
#
# Following lines are in conformance with LSB 1.2 spec
### BEGIN INIT INFO
# Provides:            smad_rev
# Default-Start:       2 3 4 5 
# Default-Stop:        0 1 6
# Required-Start:      snmpd
# Required-Stop:
# Description:         starts System Management Assistant BMC Reverse Proxy
# Short-Description:   SMA Reverse proxy
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME="System Management Assistant Reverse Proxy Service"
SNAME="smad"
RNAME="smad_rev"
SMAD_OPTIONS="-R"

if [ -f /etc/sysconfig/smad_rev ]; then
  . /etc/sysconfig/smad_rev
fi
if [ -f "/etc/default/smad_rev" ]; then
  . /etc/default/smad_rev
fi

case "$1" in
   start)
      lsmod|grep -q hpilo
      if [ $? -ne 0 ]; then 
         modprobe hpilo
      fi
      ILO_VERSION=`modinfo -F version hpilo`
      if [ "$ILO_VERSION" = "1.4.1" ]; then
          echo "$SNAME the hpilo version to be 1.5.0 or greater."
          echo "  Please upgrade to a more recent kernel"
          exit 1
      fi

      if [ "$ALLOW_CORE" = "y" ]; then 
        mkdir -p /var/log/cores/smad
        echo "/var/log/cores/%e/%p-%s-%t.core" > /proc/sys/kernel/core_pattern
        ulimit -c unlimited
      fi

      pid=`ps -C $RNAME -o pid=`
      for i in $pid ; do
          ps -p $i -o cmd=|grep -v -q init.d; RC=$?
          if [ "$RC" -eq "0" ] ; then
              echo "$RNAME is already running.  Please stop $RNAME or use 'restart'"
              exit 1
          fi
          /sbin/$SNAME $SMAD_OPTIONS; RC=$?


          if [ "$RC" -eq "0" ]; then
              [ -d /var/lock/subsys ] && touch /var/lock/subsys/smad_rev
          fi
          exit $RC
      done
      exit $RC
   ;;
   stop)
      RC=0;
      pid=`ps -C $RNAME -o pid= `
      kill $pid > /dev/null 2>&1; RC=$?
      if [ "$RC" -eq "1" ]; then
         [ -d /var/lock/subsys ] && rm -rf /var/lock/subsys/smad
         exit 0
      else
        sleep 3
        kill $pid > /dev/null 2>&1; RC=$?
        if [ "$RC" -eq "1" ]; then
           [ -d /var/lock/subsys ] && rm -rf /var/lock/subsys/smad
           exit 0
        else
          sleep 3
          kill -9 $pid > /dev/null 2>&1
            [ -d /var/lock/subsys ] && rm -rf /var/lock/subsys/smad
          exit 0
        fi
      fi    
   ;;
   reload)
   ;;
   restart)
      $0 stop
      sleep 5
      $0 start
   ;;
   status)
       for i in `ps -C $RNAME -o pid= ` ; do
          ps -p $i -o cmd=|grep -v -q init.d; RC=$?
          if [ "$RC" -eq "0" ] ; then
              echo "$RNAME is running..."
              exit 0
          else
              echo "$RNAME is stopped..."
          fi
       done
   ;;
   *)
     echo "Usage: /etc/init.d/smad_rev {start|stop|restart|status}"
     exit 1
esac

exit 0 
