modularize mysql db saving
let projects declare that they will have a database to be saved, and we'll do it for them, in the mysql case. Eventually other saving issues should be left to per project save-state.sh scripts. services which aren't always enabled in grenade jobs have their settings files guarded with conditionals. Eventually we'll do conditional loading of these settings files, however for now this lets the rest of the infrastructure around running actions based on PLUGIN_DIRS and UPGRADE_SERVICES be *non* conditional, which simplifies them. Change-Id: I06cad95ca319e4403772e5fb394c0f8965e0bf9d
This commit is contained in:
parent
176ab63307
commit
7546f56cce
21
functions
21
functions
@ -21,27 +21,14 @@ set +o xtrace
|
||||
function save_data {
|
||||
local release=$1
|
||||
local dir=$2
|
||||
local mysql_services="keystone glance nova cinder ironic"
|
||||
|
||||
echo_summary "Sourcing $release DevStack config"
|
||||
source $dir/functions
|
||||
source $dir/stackrc
|
||||
echo_summary "Dumping $release databases"
|
||||
mkdir -p $SAVE_DIR
|
||||
if grep -q 'connection *= *mysql' /etc/ceilometer/ceilometer.conf; then
|
||||
mysql_services+=" ceilometer"
|
||||
elif grep -q 'connection *= *mongo' /etc/ceilometer/ceilometer.conf; then
|
||||
save_mysql_dbs $release $dir
|
||||
|
||||
# TODO(sdague): this should go into per project save-state scripts
|
||||
if grep -q 'connection *= *mongo' /etc/ceilometer/ceilometer.conf; then
|
||||
mongodump --db ceilometer --out $SAVE_DIR/ceilometer-dump.$release
|
||||
fi
|
||||
for db in $mysql_services ; do
|
||||
if mysql -uroot -p$MYSQL_PASSWORD -c $db -e ''; then
|
||||
mysqldump -uroot -p$MYSQL_PASSWORD $db >$SAVE_DIR/$db.sql.$release
|
||||
fi
|
||||
done
|
||||
neutron_db_names=$(mysql -uroot -p$MYSQL_PASSWORD -e "show databases;" | grep neutron || :)
|
||||
for neutron_db in $neutron_db_names; do
|
||||
mysqldump -uroot -p$MYSQL_PASSWORD $neutron_db >$SAVE_DIR/$neutron_db.sql.$release
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
@ -218,6 +218,7 @@ function run_javelin() {
|
||||
# Install 'Base' Build of OpenStack
|
||||
# =================================
|
||||
|
||||
ENABLED_SERVICES=$(source $BASE_DEVSTACK_DIR/stackrc; echo $ENABLED_SERVICES)
|
||||
load_settings
|
||||
|
||||
if [[ "$RUN_BASE" == "True" ]]; then
|
||||
|
19
inc/upgrade
19
inc/upgrade
@ -14,6 +14,25 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
DATABASES_TO_SAVE=""
|
||||
|
||||
# save_data
|
||||
function save_mysql_dbs {
|
||||
local release=$1
|
||||
local dir=$2
|
||||
# pull the mysql pass from the old config
|
||||
local mysql_pass=$(source $dir/stackrc && echo $MYSQL_PASSWORD)
|
||||
for db in $DATABASES_TO_SAVE; do
|
||||
mysqldump -uroot -p$mysql_pass $db >$SAVE_DIR/$db.sql.$release
|
||||
done
|
||||
}
|
||||
|
||||
# register a database we should save
|
||||
function register_db_to_save {
|
||||
for db in $@; do
|
||||
DATABASES_TO_SAVE+=" $db"
|
||||
done
|
||||
}
|
||||
|
||||
function upgrade_service {
|
||||
local local_service=$1
|
||||
|
@ -1 +1,2 @@
|
||||
register_project_for_upgrade keystone
|
||||
register_project_for_upgrade keystone
|
||||
register_db_to_save keystone
|
||||
|
@ -1 +1,4 @@
|
||||
register_project_for_upgrade ceilometer
|
||||
register_project_for_upgrade ceilometer
|
||||
if grep -q 'connection *= *mysql' /etc/ceilometer/ceilometer.conf; then
|
||||
register_db_to_save ceilometer
|
||||
fi
|
@ -1 +1,2 @@
|
||||
register_project_for_upgrade glance
|
||||
register_project_for_upgrade glance
|
||||
register_db_to_save glance
|
@ -1 +1,5 @@
|
||||
register_project_for_upgrade neutron
|
||||
# eventually this conditional will end up at a different level
|
||||
if is_service_enabled q-svc; then
|
||||
register_project_for_upgrade neutron
|
||||
register_db_to_save neutron
|
||||
fi
|
@ -1 +1,2 @@
|
||||
register_project_for_upgrade nova
|
||||
register_project_for_upgrade nova
|
||||
register_db_to_save nova
|
@ -1 +1,2 @@
|
||||
register_project_for_upgrade cinder
|
||||
register_project_for_upgrade cinder
|
||||
register_db_to_save cinder
|
@ -1 +1,4 @@
|
||||
register_project_for_upgrade ironic
|
||||
if is_ironic_enabled; then
|
||||
register_project_for_upgrade ironic
|
||||
register_db_to_save ironic
|
||||
fi
|
Loading…
x
Reference in New Issue
Block a user