group-based-policy/gbpservice/contrib/nfp/tools/image_builder/nfp-pecan
YogeshRajmane be792291c1 NFP - Refactor to support extensions such as network device cluster
Refactor orchestrator to support network function device cluster
framework and more granular events.

Change-Id: Ifebd7a0c8ef2c4a5de6821e3e0b918dbfcb5820a
Co-Authored-By: ashutosh mishra <mca.ashu4@gmail.com>
Closes-Bug: 1645235
2016-12-11 21:42:54 +00:00

118 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
mkdir -p /var/run/nfp
PIDFILE=/var/run/nfp/nfp_pecan.pid
tmp_pidfile=$(tempfile -s .nfp_pecan.init)
clean()
{
rm -f $tmp_pidfile
}
trap clean EXIT
start_nfp_pecan () {
start-stop-daemon --quiet --start -m --pidfile $PIDFILE --background \
--chdir /usr/local/lib/python2.7/dist-packages/gbpservice/nfp/pecan/api \
--exec /usr/local/bin/pecan configurator_decider config.py -- --mode advanced || return 1
return 0
}
stop_nfp_pecan () {
if [ ! -f $PIDFILE ] ; then
# This is a success according to LSB
return 0
fi
ret=0
for pid in $(cat $PIDFILE); do
echo $pid > $tmp_pidfile
start-stop-daemon --quiet --stop --signal KILL --pidfile $PIDFILE || ret=$?
done
[ $ret -eq 0 ] && rm -f $PIDFILE
return $ret
}
nfp_pecan_status()
{
if [ ! -f $PIDFILE ] ; then
# program not running
return 2
fi
for pid in $(cat $PIDFILE) ; do
if ps --no-headers p "$pid" | grep pecan > /dev/null ; then
return 0
fi
done
#bogus pidfile
return 1
}
case "$1" in
start)
start_nfp_pecan
ret=$?
case "$ret" in
0)
echo "Started nfp-pecan"
;;
1)
echo "NOT started nfp-pecan"
;;
esac
exit $ret
;;
stop)
stop_nfp_pecan
ret=$?
case "$ret" in
0)
echo "Stopped nfp_pecan"
;;
1)
echo "Didn't stop nfp_pecan"
;;
esac
exit $ret
;;
restart)
echo "Restarting nfp-pecan"
stop_nfp_pecan
start_nfp_pecan
ret=$?
case "$ret" in
0)
echo "Restarted nfp-pecan"
;;
1)
echo "Failed to restart"
;;
esac
exit $ret
;;
status)
nfp_pecan_status
ret=$?
case "$ret" in
0)
echo "nfp-pecan is running."
;;
1)
echo "bogus $PIDFILE exists"
;;
2)
echo "nfp-pecan NOT running."
;;
esac
exit $ret
;;
*)
echo "Usage: /etc/init.d/nfp-pecan {start|stop|restart|status}"
exit 2
;;
esac