diff options
Diffstat (limited to 'app-emulation/ganeti/files/ganeti.initd-r3')
-rw-r--r-- | app-emulation/ganeti/files/ganeti.initd-r3 | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/app-emulation/ganeti/files/ganeti.initd-r3 b/app-emulation/ganeti/files/ganeti.initd-r3 new file mode 100644 index 000000000000..d425fd0dccc6 --- /dev/null +++ b/app-emulation/ganeti/files/ganeti.initd-r3 @@ -0,0 +1,83 @@ +#!/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: |