#!/bin/sh # # ganeti ganeti node daemon starter script # # chkconfig: 345 20 80 # description: Ganeti Xen Cluster Manager # processname: ganeti-noded # processname: ganeti-masterd # processname: ganeti-confd # processname: ganeti-rapi # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ $NETWORKING = "no" ] && exit 0 # Check for and source configuration file otherwise set defaults [ -f /etc/sysconfig/ganeti ] && . /etc/sysconfig/ganeti # Configurations to the ganeti [ -z "$GANETIRUNDIR" ] && GANETIRUNDIR="/var/run/ganeti" [ -z "$GANETI_DEFAULTS_FILE" ] && GANETI_DEFAULTS_FILE="/etc/default/ganeti" [ -z "$GANETI_STATEDIR" ] && GANETI_STATEDIR="/var/lib/ganeti" [ -z "$NODED" ] && NODED="ganeti-noded" [ -z "$NODED_ARGS" ] && NODED_ARGS="" [ -z "$MASTERD" ] && MASTERD="ganeti-masterd" [ -z "$MASTERD_ARGS" ] && MASTERD_ARGS="" [ -z "$CONFD" ] && CONFD="ganeti-confd" [ -z "$CONFD_ARGS" ] && CONFD_ARGS="" [ -z "$RAPI" ] && RAPI="ganeti-rapi" [ -z "$RAPI_ARGS" ] && RAPI_ARGS="" test -f `type -path $NODED` || exit 0 if [ -s $GANETI_DEFAULTS_FILE ]; then . $GANETI_DEFAULTS_FILE fi RETVAL=0 check_config() { for fname in "$GANETI_STATEDIR/server.pem" do if ! [ -f "$fname" ]; then action $"Config $fname not there, will not run." false exit 0 fi done } check_exitcode() { RC=$1 case $RC in 0) success && return 0 ;; 11) success $"not master" && return 0 ;; *) failure $"exit code $RC" && return 1 ;; esac } start_action() { # called as start_action daemon-name local daemon="$1"; shift echo -n $"Starting ${daemon}: " ${daemon} "$@" check_exitcode $? RETVAL=$? echo return $RETVAL } stop_action() { # called as stop_action daemon-name local daemon="$1" echo -n $"Stopping ${daemon}: " killproc -p "${GANETIRUNDIR}/${daemon}.pid" ${daemon} check_exitcode $? echo return $RETVAL } maybe_do() { requested="$1"; shift action="$1"; shift target="$1" if [ -z "$requested" -o "$requested" = "$target" ]; then $action "$@" fi } if [ -n "$2" -a \ "$2" != "$NODED" -a \ "$2" != "$MASTERD" -a \ "$2" != "$RAPI" ]; then action $"Unknown daemon '$2' requested" false exit 1 fi start() { check_config maybe_do "$2" start_action ${NODED} ${NODED_ARGS} RETVAL=$? maybe_do "$2" start_action ${MASTERD} ${MASTERD_ARGS} # maybe_do "$2" start_action ${CONFD} ${CONFD_ARGS} maybe_do "$2" start_action ${RAPI} ${RAPI_ARGS} [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ganeti return $RETVAL } stop() { maybe_do "$2" stop_action ${RAPI} # maybe_do "$2" stop_action ${CONFD} maybe_do "$2" stop_action ${MASTERD} maybe_do "$2" stop_action ${NODED} RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ganeti return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart|force-reload) stop start ;; *) echo "Usage: $0 {start|stop|force-reload|restart}" exit 1 ;; esac exit 0