Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-gtools / conf / init.d / snf-ganeti-eventd @ 5984a712

History | View | Annotate | Download (4.3 kB)

1
#! /bin/sh
2

    
3
### BEGIN INIT INFO
4
# Provides:          snf-ganeti-eventd
5
# Required-Start:    $remote_fs $syslog ganeti
6
# Required-Stop:     $remote_fs $syslog 
7
# Default-Start:     2 3 4 5
8
# Default-Stop:      0 1 6
9
# X-Start-After:	 ganeti
10
# Short-Description: Synnefo ganeti-eventd daemon
11
# Description:       ganeti-eventd is a daemon 
12
### END INIT INFO
13

    
14
set -e
15

    
16
# /etc/init.d/snf-ganeti-eventd: start and stop the ganeti-eventd daemon
17
# script skeleton stolen from rsyncd
18

    
19

    
20
DAEMON=/usr/sbin/snf-ganeti-eventd
21
SNF_EVENTD_PID_FILE=/var/run/snf-ganeti-eventd.pid
22
SNF_EVENTD_DEFAULTS=/etc/default/snf-ganeti-eventd
23
SNF_EVENTD_OPTS=''
24
SNF_EVENTD_ENABLE=true
25
SNF_USER="root"
26

    
27
test -x $DAEMON || exit 0
28

    
29
. /lib/lsb/init-functions
30

    
31
if [ -s $SNF_EVENTD_DEFAULTS ]; then
32
    . $SNF_EVENTD_DEFAULTS
33
fi
34

    
35
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
36

    
37
check_ganeti_master() {
38
    MASTER=`/usr/sbin/gnt-cluster getmaster`
39
    HOST=`/bin/hostname -f`
40

    
41
    if [ "x$MASTER" != x$HOST ]; then
42
        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
        log_end_msg 0
44
        exit 0
45
    fi
46
}
47

    
48
eventd_start() {
49
    if start-stop-daemon --start --chuid $SNF_USER --pidfile $SNF_EVENTD_PID_FILE \
50
		--exec $DAEMON -- $SNF_EVENTD_OPTS
51
    then
52
        rc=0
53
        sleep 1
54
        if ! kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
55
            log_failure_msg "snf-ganeti-eventd daemon failed to start"
56
            rc=1
57
        fi
58
    else
59
        rc=1
60
    fi
61
    if [ $rc -eq 0 ]; then
62
        log_end_msg 0
63
    else
64
        log_end_msg 1
65
        rm -f $SNF_EVENTD_PID_FILE
66
    fi
67
} # eventd_start
68

    
69
case "$1" in
70
  start)
71
        # Check if we are on the Ganeti master node
72
        check_ganeti_master
73

    
74
        if "$SNF_EVENTD_ENABLE"; then
75
            log_daemon_msg "Starting snf-ganeti-eventd daemon" "snf-ganeti-eventd"
76
            if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
77
                log_progress_msg "apparently already running"
78
                log_end_msg 0
79
                exit 0
80
            fi
81
            eventd_start
82
        else
83
            if [ -s "$SNF_EVENTD_DEFAULTS" ]; then
84
                [ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, not starting..."
85
            fi
86
        fi
87
        ;;
88
  force-start)
89
        if "$SNF_EVENTD_ENABLE"; then
90
            log_daemon_msg "Starting snf-ganeti-eventd daemon" "snf-ganeti-eventd"
91
        else
92
            if [ -s "$SNF_EVENTD_DEFAULTS" ]; then
93
                [ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, starting anyway"
94
            fi
95
        fi
96

    
97
        if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
98
            log_progress_msg "apparently already running"
99
            log_end_msg 0
100
            exit 0
101
        fi
102
        eventd_start
103
        ;;
104
  stop)
105
        log_daemon_msg "Stopping snf-ganeti-eventd daemon" "snf-ganeti-eventd"
106
        start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_EVENTD_PID_FILE
107
        log_end_msg $?
108
        rm -f $SNF_EVENTD_PID_FILE
109
        ;;
110
  restart)
111
        set +e
112
        if $SNF_EVENTD_ENABLE; then
113
            log_daemon_msg "Restarting snf-ganeti-eventd daemon" "snf-ganeti-eventd"
114
            if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
115
                start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_EVENTD_PID_FILE || true
116
                sleep 1
117
            else
118
                log_warning_msg "snf-ganeti-eventd daemon not running, attempting to start."
119
                rm -f $SNF_EVENTD_PID_FILE
120
            fi
121
            # Check if we are on the Ganeti master node, before starting
122
            check_ganeti_master
123
            eventd_start
124
        else
125
            if [ -s "$SNF_EVENTD_DEFAULTS" ]; then
126
                [ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, not starting..."
127
            fi
128
        fi
129
        ;;
130

    
131
  status)
132
        status_of_proc -p $SNF_EVENTD_PID_FILE "$DAEMON" ganeti-eventd
133
        exit $? # notreached due to set -e
134
        ;;
135
  *)
136
        echo "Usage: /etc/init.d/snf-ganeti-eventd {start|stop|restart|force-start|status}"
137
        exit 1
138
esac
139

    
140
exit 0