Statistics
| Branch: | Tag: | Revision:

root / doc / examples / ganeti.initd.in @ c27ba1cc

History | View | Annotate | Download (2.5 kB)

1
#!/bin/sh
2
# ganeti node daemon starter script
3
# based on skeleton from Debian GNU/Linux
4
### BEGIN INIT INFO
5
# Provides:          ganeti
6
# Required-Start:    $syslog $remote_fs
7
# Required-Stop:     $syslog $remote_fs
8
# Default-Start:     2 3 4 5
9
# Default-Stop:      0 1 6
10
# Short-Description: Ganeti Cluster Manager
11
# Description:       Ganeti Cluster Manager
12
### END INIT INFO
13

    
14
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
15
DESC="Ganeti cluster"
16

    
17
NODED="ganeti-noded"
18
MASTERD="ganeti-masterd"
19
CONFD="ganeti-confd"
20
RAPI="ganeti-rapi"
21

    
22
DAEMON_UTIL=@PKGLIBDIR@/daemon-util
23

    
24
SCRIPTNAME="@SYSCONFDIR@/init.d/ganeti"
25

    
26
test -f "@PREFIX@/sbin/$NODED" || exit 0
27

    
28
. /lib/lsb/init-functions
29

    
30
check_config() {
31
    for fname in \
32
        "@LOCALSTATEDIR@/lib/ganeti/server.pem"
33
    do
34
        if ! [ -f "$fname" ]; then
35
            log_end_msg 0
36
            log_warning_msg "Config $fname not there, will not run."
37
            exit 0
38
        fi
39
    done
40
}
41

    
42
check_exitcode() {
43
    RC=$1
44
    case $RC in
45
        0)
46
            log_action_end_msg 0
47
            ;;
48
        11)
49
            log_action_end_msg 0 "not master"
50
            ;;
51
        *)
52
            log_action_end_msg 1 "exit code $RC"
53
            ;;
54
    esac
55
}
56

    
57
start_action() {
58
    # called as start_action daemon-name
59
    local daemon="$1"
60
    log_action_begin_msg "$daemon"
61
    $DAEMON_UTIL start "$@"
62
    check_exitcode $?
63
}
64

    
65
stop_action() {
66
    # called as stop_action daemon-name
67
    local daemon="$1"
68
    log_action_begin_msg "$daemon"
69
    $DAEMON_UTIL stop "$@"
70
    check_exitcode $?
71
}
72

    
73
maybe_do() {
74
    requested="$1"; shift
75
    action="$1"; shift
76
    target="$1"
77
    if [ -z "$requested" -o "$requested" = "$target" ]; then
78
        $action "$@"
79
    fi
80
}
81

    
82
start_all() {
83
    check_config
84
    for i in $NODED $MASTERD $CONFD $RAPI; do \
85
        maybe_do "$1" start_action $i
86
    done
87
}
88

    
89
stop_all() {
90
    for i in $RAPI $CONFD $MASTERD $NODED; do \
91
        maybe_do "$1" stop_action $i
92
    done
93
}
94

    
95
if [ -n "$2" -a \
96
    "$2" != "$NODED" -a \
97
    "$2" != "$CONFD" -a \
98
    "$2" != "$MASTERD" -a \
99
    "$2" != "$RAPI" ]; then
100
    log_failure_msg "Unknown daemon '$2' requested"
101
    exit 1
102
fi
103

    
104
case "$1" in
105
    start)
106
        log_daemon_msg "Starting $DESC" "$2"
107
        start_all "$2"
108
        ;;
109
    stop)
110
        log_daemon_msg "Stopping $DESC" "$2"
111
        stop_all "$2"
112
        ;;
113
    restart|force-reload)
114
        stop_all "$2"
115
        start_all "$2"
116
        ;;
117
    *)
118
        log_success_msg "Usage: $SCRIPTNAME {start|stop|force-reload|restart}"
119
        exit 1
120
        ;;
121
esac
122

    
123
exit 0