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