|
|
|
#!/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:
|