aboutsummaryrefslogtreecommitdiffstats
path: root/meta-openstack/recipes-devtools/python/python-nova/nova.init
blob: 46b28d320fa20492a3750e81aadf63ce130a6f16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/sh

### BEGIN INIT INFO
# Provides:          nova-compute
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: OpenStack Compute (Nova) - @suffix@
# Description:       OpenStack Compute (Nova) - @suffix@
### END INIT INFO

SUFFIX="@suffix@"
DESC="nova-@suffix@"
DAEMON="/usr/bin/nova-$SUFFIX"
PIDFILE="/var/run/nova/nova-$SUFFIX.pid"

if [ ! -d /var/run/nova ]; then
	mkdir -p /var/run/nova
	chown nova:root /var/run/nova/
fi

if [ ! -d /var/lock/nova ]; then
	mkdir -p /var/lock/nova
	chown nova:root /var/lock/nova/
fi

if ! [ -x ${DAEMON} ] ; then
	exit 0
fi

start ()
{
    if [ -e $PIDFILE ]; then
        PIDDIR=/proc/$(cat $PIDFILE)
        if [ -d ${PIDDIR} ]; then
            echo "$DESC already running."
            exit 1
        else
            echo "Removing stale PID file $PIDFILE"
            rm -f $PIDFILE
        fi
    fi
    PIDDIR=`dirname $PIDFILE`
    if [ ! -d $PIDDIR ]; then
        mkdir -p $PIDDIR
        chown nova $PIDDIR
    fi
    if [ ! -d /var/log/nova ]; then
    	mkdir /var/log/nova
    fi
    echo -n "Starting $DESC..."

    start-stop-daemon --start --quiet --background \
        --pidfile ${PIDFILE} --make-pidfile --exec ${DAEMON} \
	-- --log-dir=/var/log/nova

    if [ $? -eq 0 ]; then
        echo "done."
    else
        echo "failed."
    fi
}

stop ()
{
    echo -n "Stopping $DESC..."
    start-stop-daemon --stop --quiet --pidfile $PIDFILE
    if [ $? -eq 0 ]; then
        echo "done."
    else
        echo "failed."
    fi
    rm -f $PIDFILE
}

status()
{
    pid=`cat $PIDFILE 2>/dev/null`
    if [ -n "$pid" ]; then
        if ps -p $pid >&- ; then
            echo "$DESC is running"
            return
        fi
    fi
    echo "$DESC is not running"
}

reset()
{
    . /etc/nova/openrc

    # Nova comute
    simple_delete "nova list --all-tenant" "nova delete" 1 "vm"

    stop

    # This is to make sure postgres is configured and running
    if ! pidof postmaster > /dev/null; then
       /etc/init.d/postgresql-init
       /etc/init.d/postgresql start
       sleep 5
    fi

    sudo -u postgres dropdb nova
    sudo -u postgres createdb nova
    sleep 2
    nova-manage db sync

    start
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart|force-reload|reload)
        stop
        start
        ;;
    status)
	status
        ;;
    reset)
	reset
        ;;
    *)
        echo "Usage: $0 {start|stop|force-reload|restart|reload|status|reset}"
        exit 1
        ;;
esac

exit 0