blob: d425fd0dccc6ead85f4e50e9606146f8ddf8d228 [file] [log] [blame]
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
depend() {
need localmount logger
after bootmisc sshd
use net
}
DAEMON_UTIL="/usr/lib/ganeti/daemon-util"
is_master() {
[ -z "${ganeti_master}" ] && ganeti_master="$(gnt-cluster getmaster)"
[ -z "${local_hostname}" ] && local_hostname="$(hostname -f)"
[ "${ganeti_master}" = "${local_hostname}" ]
}
start() {
if ! [ -e ${DAEMON_UTIL} ]; then
eerror "Could not find daemon utility at ${DAEMON_UTIL}"
return 1
elif ! ${DAEMON_UTIL} check-config ; then
eerror "Incomplete configuration, will not run."
return 1
fi
local daemon retval=0 optsvar started_daemons daemon_opts
for daemon in $(${DAEMON_UTIL} list-start-daemons); do
optsvar="${daemon//-/_}"
case "${daemon#ganeti-}" in
masterd|rapi|luxid) is_master || continue;;
esac
eval daemon_opts=\"\$\{${optsvar^^*}_OPTS\}\"
ebegin "Starting ${daemon}"
eindent
${DAEMON_UTIL} start ${daemon} ${GANETI_OPTS} ${daemon_opts} || retval=${?}
if [ ${retval} != 0 ] && [ -n "${started_daemons}" ]; then
case ${daemon} in
*-kvmd) retval=0; ewarn "Failed to start kvmd, continuing anyway";;
*)
eerror "Stopping already started daemons"
eindent
eend ${code} "$(${DAEMON_UTIL} check-exitcode ${code})"
for daemon in ${started_daemons}; do
ebegin "Stopping ${daemon}"
${DAEMON_UTIL} stop ${daemon} ${GANETI_OPTS}
eend ${?}
done
eoutdent; eoutdent
return ${retval}
;;
esac
fi
eoutdent
started_daemons="${started_daemons} ${daemon}"
done
}
stop() {
if ! [ -e ${DAEMON_UTIL} ]; then
eerror "Could not find daemon utility at ${DAEMON_UTIL}"
return 1
fi
local daemon
for daemon in $(${DAEMON_UTIL} list-stop-daemons) ; do \
case "${daemon#ganeti-}" in
masterd|rapi|luxid) is_master || continue;;
esac
${DAEMON_UTIL} stop ${daemon} ${GANETI_OPTS}
done
}
# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: