Statistics
| Branch: | Tag: | Revision:

root / debian / snf-cyclades-gtools.snf-ganeti-eventd.init @ f73550da

History | View | Annotate | Download (4.2 kB)

1 ddba635c Constantinos Venetsanopoulos
#! /bin/sh
2 ddba635c Constantinos Venetsanopoulos
3 ddba635c Constantinos Venetsanopoulos
### BEGIN INIT INFO
4 ddba635c Constantinos Venetsanopoulos
# Provides:          snf-ganeti-eventd
5 ddba635c Constantinos Venetsanopoulos
# Required-Start:    $remote_fs $syslog ganeti
6 ddba635c Constantinos Venetsanopoulos
# Required-Stop:     $remote_fs $syslog 
7 ddba635c Constantinos Venetsanopoulos
# Default-Start:     2 3 4 5
8 fc2c900d Vangelis Koukis
# Default-Stop:      0 1 6
9 ddba635c Constantinos Venetsanopoulos
# X-Start-After:	 ganeti
10 ddba635c Constantinos Venetsanopoulos
# Short-Description: Synnefo ganeti-eventd daemon
11 ddba635c Constantinos Venetsanopoulos
# Description:       ganeti-eventd is a daemon 
12 ddba635c Constantinos Venetsanopoulos
### END INIT INFO
13 ddba635c Constantinos Venetsanopoulos
14 ddba635c Constantinos Venetsanopoulos
set -e
15 ddba635c Constantinos Venetsanopoulos
16 ddba635c Constantinos Venetsanopoulos
# /etc/init.d/snf-ganeti-eventd: start and stop the ganeti-eventd daemon
17 ddba635c Constantinos Venetsanopoulos
# script skeleton stolen from rsyncd
18 ddba635c Constantinos Venetsanopoulos
19 ddba635c Constantinos Venetsanopoulos
20 ddba635c Constantinos Venetsanopoulos
DAEMON=/usr/sbin/snf-ganeti-eventd
21 ddba635c Constantinos Venetsanopoulos
SNF_EVENTD_PID_FILE=/var/run/snf-ganeti-eventd.pid
22 ddba635c Constantinos Venetsanopoulos
SNF_EVENTD_DEFAULTS=/etc/default/snf-ganeti-eventd
23 ddba635c Constantinos Venetsanopoulos
SNF_EVENTD_OPTS=''
24 ddba635c Constantinos Venetsanopoulos
SNF_EVENTD_ENABLE=true
25 ddba635c Constantinos Venetsanopoulos
SNF_USER="root"
26 ddba635c Constantinos Venetsanopoulos
27 ddba635c Constantinos Venetsanopoulos
test -x $DAEMON || exit 0
28 ddba635c Constantinos Venetsanopoulos
29 ddba635c Constantinos Venetsanopoulos
. /lib/lsb/init-functions
30 ddba635c Constantinos Venetsanopoulos
31 d0220d51 Vangelis Koukis
if [ -s $SNF_EVENTD_DEFAULTS ]; then
32 d0220d51 Vangelis Koukis
    . $SNF_EVENTD_DEFAULTS
33 ddba635c Constantinos Venetsanopoulos
fi
34 ddba635c Constantinos Venetsanopoulos
35 ddba635c Constantinos Venetsanopoulos
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
36 ddba635c Constantinos Venetsanopoulos
37 8dbfc1b7 Constantinos Venetsanopoulos
check_ganeti_master() {
38 8dbfc1b7 Constantinos Venetsanopoulos
    MASTER=`/usr/sbin/gnt-cluster getmaster`
39 8dbfc1b7 Constantinos Venetsanopoulos
    HOST=`/bin/hostname -f`
40 8dbfc1b7 Constantinos Venetsanopoulos
41 8dbfc1b7 Constantinos Venetsanopoulos
    if [ "x$MASTER" != x$HOST ]; then
42 bb84cf5f Vangelis Koukis
        log_warning_msg "snf-ganeti-eventd should run on the ganeti master only, aborting start (use 'force-start' if you know what you are doing)"
43 8dbfc1b7 Constantinos Venetsanopoulos
        log_end_msg 0
44 8dbfc1b7 Constantinos Venetsanopoulos
        exit 0
45 8dbfc1b7 Constantinos Venetsanopoulos
    fi
46 8dbfc1b7 Constantinos Venetsanopoulos
}
47 8dbfc1b7 Constantinos Venetsanopoulos
48 ddba635c Constantinos Venetsanopoulos
eventd_start() {
49 ddba635c Constantinos Venetsanopoulos
    if start-stop-daemon --start --chuid $SNF_USER --pidfile $SNF_EVENTD_PID_FILE \
50 ddba635c Constantinos Venetsanopoulos
		--exec $DAEMON -- $SNF_EVENTD_OPTS
51 ddba635c Constantinos Venetsanopoulos
    then
52 ddba635c Constantinos Venetsanopoulos
        rc=0
53 ddba635c Constantinos Venetsanopoulos
        sleep 1
54 ddba635c Constantinos Venetsanopoulos
        if ! kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
55 ddba635c Constantinos Venetsanopoulos
            log_failure_msg "snf-ganeti-eventd daemon failed to start"
56 ddba635c Constantinos Venetsanopoulos
            rc=1
57 ddba635c Constantinos Venetsanopoulos
        fi
58 ddba635c Constantinos Venetsanopoulos
    else
59 ddba635c Constantinos Venetsanopoulos
        rc=1
60 ddba635c Constantinos Venetsanopoulos
    fi
61 ddba635c Constantinos Venetsanopoulos
    if [ $rc -eq 0 ]; then
62 ddba635c Constantinos Venetsanopoulos
        log_end_msg 0
63 ddba635c Constantinos Venetsanopoulos
    else
64 ddba635c Constantinos Venetsanopoulos
        log_end_msg 1
65 ddba635c Constantinos Venetsanopoulos
    fi
66 ddba635c Constantinos Venetsanopoulos
} # eventd_start
67 ddba635c Constantinos Venetsanopoulos
68 ddba635c Constantinos Venetsanopoulos
case "$1" in
69 ddba635c Constantinos Venetsanopoulos
  start)
70 ddba635c Constantinos Venetsanopoulos
        if "$SNF_EVENTD_ENABLE"; then
71 ddba635c Constantinos Venetsanopoulos
            log_daemon_msg "Starting snf-ganeti-eventd daemon" "snf-ganeti-eventd"
72 ddba635c Constantinos Venetsanopoulos
            if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
73 ddba635c Constantinos Venetsanopoulos
                log_progress_msg "apparently already running"
74 ddba635c Constantinos Venetsanopoulos
                log_end_msg 0
75 ddba635c Constantinos Venetsanopoulos
                exit 0
76 ddba635c Constantinos Venetsanopoulos
            fi
77 bb84cf5f Vangelis Koukis
            # Check if we are on the Ganeti master node
78 bb84cf5f Vangelis Koukis
            check_ganeti_master
79 ddba635c Constantinos Venetsanopoulos
            eventd_start
80 ddba635c Constantinos Venetsanopoulos
        else
81 d0220d51 Vangelis Koukis
            if [ -s "$SNF_EVENTD_DEFAULTS" ]; then
82 d0220d51 Vangelis Koukis
                [ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, not starting..."
83 ddba635c Constantinos Venetsanopoulos
            fi
84 ddba635c Constantinos Venetsanopoulos
        fi
85 ddba635c Constantinos Venetsanopoulos
        ;;
86 bb84cf5f Vangelis Koukis
  force-start)
87 bb84cf5f Vangelis Koukis
        if "$SNF_EVENTD_ENABLE"; then
88 bb84cf5f Vangelis Koukis
            log_daemon_msg "Starting snf-ganeti-eventd daemon" "snf-ganeti-eventd"
89 bb84cf5f Vangelis Koukis
        else
90 bb84cf5f Vangelis Koukis
            if [ -s "$SNF_EVENTD_DEFAULTS" ]; then
91 bb84cf5f Vangelis Koukis
                [ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, starting anyway"
92 bb84cf5f Vangelis Koukis
            fi
93 bb84cf5f Vangelis Koukis
        fi
94 bb84cf5f Vangelis Koukis
95 bb84cf5f Vangelis Koukis
        if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
96 bb84cf5f Vangelis Koukis
            log_progress_msg "apparently already running"
97 bb84cf5f Vangelis Koukis
            log_end_msg 0
98 bb84cf5f Vangelis Koukis
            exit 0
99 bb84cf5f Vangelis Koukis
        fi
100 bb84cf5f Vangelis Koukis
        eventd_start
101 bb84cf5f Vangelis Koukis
        ;;
102 ddba635c Constantinos Venetsanopoulos
  stop)
103 ddba635c Constantinos Venetsanopoulos
        log_daemon_msg "Stopping snf-ganeti-eventd daemon" "snf-ganeti-eventd"
104 ddba635c Constantinos Venetsanopoulos
        start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_EVENTD_PID_FILE
105 ddba635c Constantinos Venetsanopoulos
        log_end_msg $?
106 ddba635c Constantinos Venetsanopoulos
        ;;
107 ddba635c Constantinos Venetsanopoulos
  restart)
108 ddba635c Constantinos Venetsanopoulos
        set +e
109 ddba635c Constantinos Venetsanopoulos
        if $SNF_EVENTD_ENABLE; then
110 ddba635c Constantinos Venetsanopoulos
            log_daemon_msg "Restarting snf-ganeti-eventd daemon" "snf-ganeti-eventd"
111 ddba635c Constantinos Venetsanopoulos
            if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
112 ddba635c Constantinos Venetsanopoulos
                start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_EVENTD_PID_FILE || true
113 ddba635c Constantinos Venetsanopoulos
                sleep 1
114 ddba635c Constantinos Venetsanopoulos
            else
115 ddba635c Constantinos Venetsanopoulos
                log_warning_msg "snf-ganeti-eventd daemon not running, attempting to start."
116 ddba635c Constantinos Venetsanopoulos
            fi
117 8dbfc1b7 Constantinos Venetsanopoulos
            # Check if we are on the Ganeti master node, before starting
118 8dbfc1b7 Constantinos Venetsanopoulos
            check_ganeti_master
119 ddba635c Constantinos Venetsanopoulos
            eventd_start
120 ddba635c Constantinos Venetsanopoulos
        else
121 d0220d51 Vangelis Koukis
            if [ -s "$SNF_EVENTD_DEFAULTS" ]; then
122 d0220d51 Vangelis Koukis
                [ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, not starting..."
123 ddba635c Constantinos Venetsanopoulos
            fi
124 ddba635c Constantinos Venetsanopoulos
        fi
125 ddba635c Constantinos Venetsanopoulos
        ;;
126 ddba635c Constantinos Venetsanopoulos
127 ddba635c Constantinos Venetsanopoulos
  status)
128 ddba635c Constantinos Venetsanopoulos
        status_of_proc -p $SNF_EVENTD_PID_FILE "$DAEMON" ganeti-eventd
129 ddba635c Constantinos Venetsanopoulos
        exit $? # notreached due to set -e
130 ddba635c Constantinos Venetsanopoulos
        ;;
131 ddba635c Constantinos Venetsanopoulos
  *)
132 bb84cf5f Vangelis Koukis
        echo "Usage: /etc/init.d/snf-ganeti-eventd {start|stop|restart|force-start|status}"
133 ddba635c Constantinos Venetsanopoulos
        exit 1
134 ddba635c Constantinos Venetsanopoulos
esac
135 ddba635c Constantinos Venetsanopoulos
136 ddba635c Constantinos Venetsanopoulos
exit 0