blob: 78e2a7a8264558461376a6c1b511510ee8c91db3 [file] [log] [blame]
Sean Dague9a413ab2015-02-04 12:44:18 -05001#!/bin/bash
Dean Troyer995eb922013-03-07 16:11:40 -06002
3# **clean.sh**
4
5# ``clean.sh`` does its best to eradicate traces of a Grenade
6# run except for the following:
7# - both base and target code repos are left alone
8# - packages (system and pip) are left alone
9
10# This means that all data files are removed. More??
11
12# Keep track of the current devstack directory.
13TOP_DIR=$(cd $(dirname "$0") && pwd)
14
15# Import common functions
16source $TOP_DIR/functions
17
Dean Troyerb9e25132013-10-01 14:45:04 -050018FILES=$TOP_DIR/files
19
Dean Troyer995eb922013-03-07 16:11:40 -060020# Load local configuration
Sean Dague53753292014-12-04 19:38:15 -050021source $TOP_DIR/openrc
Dean Troyer995eb922013-03-07 16:11:40 -060022
23# Get the variables that are set in stack.sh
Dean Troyer58f9cf72013-06-04 12:51:54 -050024if [[ -r $TOP_DIR/.stackenv ]]; then
25 source $TOP_DIR/.stackenv
26fi
Dean Troyer995eb922013-03-07 16:11:40 -060027
28# Determine what system we are running on. This provides ``os_VENDOR``,
29# ``os_RELEASE``, ``os_UPDATE``, ``os_PACKAGE``, ``os_CODENAME``
30# and ``DISTRO``
31GetDistro
32
Dean Troyer53ffc712013-12-17 11:13:40 -060033# Import apache functions
34source $TOP_DIR/lib/apache
35source $TOP_DIR/lib/ldap
Dean Troyer995eb922013-03-07 16:11:40 -060036
37# Import database library
38source $TOP_DIR/lib/database
39source $TOP_DIR/lib/rpc_backend
40
41source $TOP_DIR/lib/tls
Dean Troyer53ffc712013-12-17 11:13:40 -060042
Sean Dague59d9cec2014-04-02 18:43:42 -040043source $TOP_DIR/lib/oslo
Mahito67168e82015-08-18 23:59:29 -070044source $TOP_DIR/lib/lvm
Dean Troyer995eb922013-03-07 16:11:40 -060045source $TOP_DIR/lib/horizon
46source $TOP_DIR/lib/keystone
47source $TOP_DIR/lib/glance
48source $TOP_DIR/lib/nova
49source $TOP_DIR/lib/cinder
50source $TOP_DIR/lib/swift
51source $TOP_DIR/lib/ceilometer
52source $TOP_DIR/lib/heat
Dean Troyer5a9739a2015-03-25 11:33:51 -050053source $TOP_DIR/lib/neutron-legacy
Dean Troyer53ffc712013-12-17 11:13:40 -060054source $TOP_DIR/lib/ironic
Dean Troyer53ffc712013-12-17 11:13:40 -060055
Dean Troyer995eb922013-03-07 16:11:40 -060056
Dean Troyercdf3d762013-10-15 09:42:43 -050057# Extras Source
58# --------------
59
60# Phase: source
61if [[ -d $TOP_DIR/extras.d ]]; then
62 for i in $TOP_DIR/extras.d/*.sh; do
63 [[ -r $i ]] && source $i source
64 done
65fi
Dean Troyer995eb922013-03-07 16:11:40 -060066
67# See if there is anything running...
68# need to adapt when run_service is merged
69SESSION=$(screen -ls | awk '/[0-9].stack/ { print $1 }')
70if [[ -n "$SESSION" ]]; then
71 # Let unstack.sh do its thing first
72 $TOP_DIR/unstack.sh --all
73fi
74
Dean Troyercdf3d762013-10-15 09:42:43 -050075# Run extras
76# ==========
77
78# Phase: clean
ajmillere6843e52015-04-11 09:52:48 -070079load_plugin_settings
Al Millera1701fa2015-02-20 08:10:41 -080080run_phase clean
81
Dean Troyercdf3d762013-10-15 09:42:43 -050082if [[ -d $TOP_DIR/extras.d ]]; then
83 for i in $TOP_DIR/extras.d/*.sh; do
84 [[ -r $i ]] && source $i clean
85 done
86fi
87
Dean Troyer995eb922013-03-07 16:11:40 -060088# Clean projects
Sean Dague9a413ab2015-02-04 12:44:18 -050089
90# BUG: cinder tgt doesn't exit cleanly if it's not running.
91cleanup_cinder || /bin/true
92
Dean Troyer995eb922013-03-07 16:11:40 -060093cleanup_glance
94cleanup_keystone
95cleanup_nova
Mark McClainb05c8762013-07-06 23:29:39 -040096cleanup_neutron
Dean Troyer995eb922013-03-07 16:11:40 -060097cleanup_swift
98
Dean Troyerb9e25132013-10-01 14:45:04 -050099if is_service_enabled ldap; then
100 cleanup_ldap
101fi
102
Dean Troyer2aa2a892013-08-04 19:53:19 -0500103# Do the hypervisor cleanup until this can be moved back into lib/nova
Dean Troyere4fa7212014-01-15 15:04:49 -0600104if is_service_enabled nova && [[ -r $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER ]]; then
Dean Troyer2aa2a892013-08-04 19:53:19 -0500105 cleanup_nova_hypervisor
106fi
107
Dean Troyer995eb922013-03-07 16:11:40 -0600108# Clean out /etc
Gary Kottonb00e4182014-05-01 05:16:59 -0700109sudo rm -rf /etc/keystone /etc/glance /etc/nova /etc/cinder /etc/swift /etc/heat /etc/neutron
Dean Troyer995eb922013-03-07 16:11:40 -0600110
111# Clean out tgt
Dean Troyer53ffc712013-12-17 11:13:40 -0600112sudo rm -f /etc/tgt/conf.d/*
Dean Troyer995eb922013-03-07 16:11:40 -0600113
114# Clean up the message queue
115cleanup_rpc_backend
116cleanup_database
117
Davanum Srinivas93d09c22015-04-11 18:45:09 -0400118# Clean out data and status
119sudo rm -rf $DATA_DIR $DEST/status
120
121# Clean out the log file and log directories
122if [[ -n "$LOGFILE" ]] && [[ -f "$LOGFILE" ]]; then
123 sudo rm -f $LOGFILE
124fi
125if [[ -n "$LOGDIR" ]] && [[ -d "$LOGDIR" ]]; then
126 sudo rm -rf $LOGDIR
127fi
Dean Troyer53ffc712013-12-17 11:13:40 -0600128if [[ -n "$SCREEN_LOGDIR" ]] && [[ -d "$SCREEN_LOGDIR" ]]; then
129 sudo rm -rf $SCREEN_LOGDIR
130fi
131
Dean Troyerb1d8e8e2015-02-16 13:58:35 -0600132# Clean up venvs
Monty Taylor61045ca2015-05-14 11:20:39 -0400133DIRS_TO_CLEAN="$WHEELHOUSE ${PROJECT_VENV[@]} .config/openstack"
Dean Troyerb1d8e8e2015-02-16 13:58:35 -0600134rm -rf $DIRS_TO_CLEAN
135
Dean Troyer995eb922013-03-07 16:11:40 -0600136# Clean up files
Sean Dague2e2b28b2014-02-19 09:02:02 -0500137
ZhiQiang Fanecd05632014-06-28 16:50:22 +0800138FILES_TO_CLEAN=".localrc.auto docs/files docs/html shocco/ stack-screenrc test*.conf* test.ini*"
Sean Dague2e2b28b2014-02-19 09:02:02 -0500139FILES_TO_CLEAN+=".stackenv .prereqs"
140
Shashank Hegdecb415692014-02-27 16:46:43 -0800141for file in $FILES_TO_CLEAN; do
ZhiQiang Fanecd05632014-06-28 16:50:22 +0800142 rm -rf $TOP_DIR/$file
Sean Dague2e2b28b2014-02-19 09:02:02 -0500143done