blob: f16d35bf08c6876c04d0ff3d1976f8ac6c4901e7 [file] [log] [blame]
#!/bin/sh
# ganeti daemons init script
#
# chkconfig: 2345 99 01
# description: Ganeti Cluster Manager
### BEGIN INIT INFO
# Provides: ganeti
# Required-Start: $syslog $remote_fs
# Required-Stop: $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Ganeti Cluster Manager
# Description: Ganeti Cluster Manager
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
DESC="Ganeti cluster"
DAEMON_UTIL=@PKGLIBDIR@/daemon-util
SCRIPTNAME="@SYSCONFDIR@/init.d/ganeti"
test -f "$DAEMON_UTIL" || exit 0
if [ -r /lib/lsb/init-functions ]; then
. /lib/lsb/init-functions
elif [ -r /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
else
echo "Unable to find init functions"
exit 1
fi
check_exitcode() {
RC=$1
if errmsg=$($DAEMON_UTIL check-exitcode $RC)
then
log_action_end_msg 0 "$errmsg"
else
log_action_end_msg 1 "$errmsg"
fi
}
start_action() {
# called as start_action daemon-name
local daemon="$1"
log_action_begin_msg "$daemon"
$DAEMON_UTIL start "$@"
check_exitcode $?
}
stop_action() {
# called as stop_action daemon-name
local daemon="$1"
log_action_begin_msg "$daemon"
$DAEMON_UTIL stop "$@"
check_exitcode $?
}
maybe_do() {
requested="$1"; shift
action="$1"; shift
target="$1"
if [ -z "$requested" -o "$requested" = "$target" ]; then
$action "$@"
fi
}
start_all() {
if ! $DAEMON_UTIL check-config; then
log_warning_msg "Incomplete configuration, will not run."
exit 0
fi
for i in $($DAEMON_UTIL list-start-daemons); do
maybe_do "$1" start_action $i
done
}
stop_all() {
for i in $($DAEMON_UTIL list-stop-daemons); do
maybe_do "$1" stop_action $i
done
}
status_all() {
local daemons="$1" status ret
if [ -z "$daemons" ]; then
daemons=$($DAEMON_UTIL list-start-daemons)
fi
status=0
for i in $daemons; do
if status_of_proc $($DAEMON_UTIL daemon-executable $i) $i; then
ret=0
else
ret=$?
# Use exit code from first failed call
if [ "$status" -eq 0 ]; then
status=$ret
fi
fi
done
exit $status
}
if [ -n "$2" ] && ! errmsg=$($DAEMON_UTIL is-daemon-name "$2" 2>&1); then
log_failure_msg "$errmsg"
exit 1
fi
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$2"
start_all "$2"
;;
stop)
log_daemon_msg "Stopping $DESC" "$2"
stop_all "$2"
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$2"
stop_all "$2"
start_all "$2"
;;
status)
status_all "$2"
;;
*)
log_success_msg "Usage: $SCRIPTNAME {start|stop|force-reload|restart}"
exit 1
;;
esac
exit 0