Browse code

Merge "Add unstack.sh"

Jenkins authored on 2012/04/11 02:08:47
Showing 1 changed files
1 1
new file mode 100755
... ...
@@ -0,0 +1,60 @@
0
+#!/usr/bin/env bash
1
+#
2
+# Stops that which is started by ``stack.sh`` (mostly)
3
+# mysql and rabbit are left running as OpenStack code refreshes
4
+# do not require them to be restarted.
5
+#
6
+# Stop all processes by setting UNSTACK_ALL or specifying ``--all``
7
+# on the command line
8
+
9
+# Keep track of the current devstack directory.
10
+TOP_DIR=$(cd $(dirname "$0") && pwd)
11
+
12
+# Import common functions
13
+source $TOP_DIR/functions
14
+
15
+# Load local configuration
16
+source $TOP_DIR/stackrc
17
+
18
+# Determine what system we are running on.  This provides ``os_VENDOR``,
19
+# ``os_RELEASE``, ``os_UPDATE``, ``os_PACKAGE``, ``os_CODENAME``
20
+GetOSVersion
21
+
22
+if [[ "$1" == "--all" ]]; then
23
+    UNSTACK_ALL=${UNSTACK_ALL:-1}
24
+fi
25
+
26
+# Shut down devstack's screen to get the bulk of OpenStack services in one shot
27
+SESSION=$(screen -ls | grep "[0-9].stack" | awk '{ print $1 }')
28
+if [[ -n "$SESSION" ]]; then
29
+    screen -X -S $SESSION quit
30
+fi
31
+
32
+# Swift runs daemons
33
+if is_service_enabled swift; then
34
+    swift-init all stop
35
+fi
36
+
37
+# Apache has the WSGI processes
38
+if is_service_enabled horizon; then
39
+    stop_service apache2
40
+fi
41
+
42
+# Get the iSCSI volumes
43
+if is_service_enabled n-vol; then
44
+    TARGETS=$(sudo tgtadm --op show --mode target)
45
+    if [[ -n "$TARGETS" ]]; then
46
+        # FIXME(dtroyer): this could very well require more here to
47
+        #                 clean up left-over volumes
48
+        echo "iSCSI target cleanup needed:"
49
+        echo "$TARGETS"
50
+    fi
51
+    sudo stop tgt
52
+fi
53
+
54
+if [[ -n "$UNSTACK_ALL" ]]; then
55
+    # Stop MySQL server
56
+    if is_service_enabled mysql; then
57
+        stop_service mysql
58
+    fi
59
+fi