#! /bin/sh
### BEGIN INIT INFO
# Provides:          swift-object-expirer
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Swift object server expirer
# Description:       Object expirer daemon for Swift.
### END INIT INFO

SERVICE_NAME="object-expirer"
PRINT_NAME="object expirer daemon"
PIDS_LOCATION="/var/run/swift"
SWIFT_INIT_TOOL="/usr/bin/swift-init"
KILL_WAIT=15


kill_service()
{
	SERVICE_PIDS=`sed \
		-e 's/^/-/g' \
		${PIDS_LOCATION}/${SERVICE_NAME}/*.pid \
		${PIDS_LOCATION}/${SERVICE_NAME}.pid \
		2>/dev/null \
		| tr -s '[:space:]' ' '`

	if [ "${SERVICE_PIDS}" != "" ] ; then
		kill -9 ${SERVICE_PIDS} >/dev/null 2>&1
	fi

	return 0
}

. /lib/lsb/init-functions

# Include Swift defaults if available
if [ -f /etc/default/swift ] ; then
    . /etc/default/swift
fi

if ! [ -x ${SWIFT_INIT_TOOL} ] ; then
	exit 5
fi

case "$1" in
start)
	log_daemon_msg "Starting Swift ${PRINT_NAME}" "swift-init ${SERVICE_NAME}"
	${SWIFT_INIT_TOOL} ${SERVICE_NAME} start
	log_end_msg $?
	exit $?
;;
stop)
	log_daemon_msg "Stopping Swift ${PRINT_NAME}" "swift-init ${SERVICE_NAME}"
	${SWIFT_INIT_TOOL} --kill-wait=${KILL_WAIT} ${SERVICE_NAME} stop
	[ "$?" -ne 0 ] && kill_service
	log_end_msg 0
	exit 0
;;
restart)
	log_daemon_msg "Restarting Swift ${PRINT_NAME}" "swift-init ${SERVICE_NAME}"
	${SWIFT_INIT_TOOL} --kill-wait=${KILL_WAIT} ${SERVICE_NAME} stop
	[ "$?" -ne 0 ] && kill_service
	${SWIFT_INIT_TOOL} ${SERVICE_NAME} start
	log_end_msg $?
	exit $?
;;
reload|force-reload)
	log_daemon_msg "Gracefully restarting Swift ${PRINT_NAME}" "swift-init ${SERVICE_NAME}"
	${SWIFT_INIT_TOOL} --kill-wait=${KILL_WAIT} ${SERVICE_NAME} shutdown
	[ "$?" -ne 0 ] && kill_service
	${SWIFT_INIT_TOOL} ${SERVICE_NAME} start
	log_end_msg $?
	exit $?
;;
status)
	exec ${SWIFT_INIT_TOOL} ${SERVICE_NAME} status
;;
*)
	echo "Usage: $0 {start|stop|restart|reload|force-reload|status}"
	exit 1
;;
esac

exit 0
