Modify upgrade-* scripts to allow skip configuration if not needed

This allow grenade to move and test from a brand new release to master without
any change.

This way it allows to enable d-g grenade testing new-release->master where for
a just released Openstack means that we don't need any new configuration yet.

Change-Id: I3e685deb61b95116420eae9cacb6b38dc405ffe9
This commit is contained in:
Mauro S. M. Rodrigues 2013-12-09 11:22:10 +00:00
parent d0654b98c0
commit ac53d2c3f9
10 changed files with 51 additions and 30 deletions

View File

@ -1686,6 +1686,28 @@ function policy_add() {
mv ${tmpfile} ${policy_file}
}
# This function triggers the upgrade process for each project if it exists,
# otherwise it shows up a warning message about the lack of this file.
function upgrade_project(){
# NOTE(maurosr): Ideally in a new upgrade test right after a release no new
# configuration is need, so we can go on without the from-<release> directory.
# This is also useful due to cross dependencie between d-g and grenade when
# enabling grenade to run a an upgrade between a new pair of releases.
project=$1
base_dir=$2
branch=$3
upgrade_dir=$(get_release_name_from_branch $branch)
upgrade_file=${base_dir}/"from-"${upgrade_dir}/"upgrade-"${project}
if [[ -e ${upgrade_file} ]]; then
source ${upgrade_file} && configure_${project}_upgrade
else
echo "Warning: No new configurations were found for Openstack Cinder. If"\
"your patch fails in during the upgrade this may be the cause."
fi
}
# Restore xtrace
$XTRACE

View File

@ -80,10 +80,8 @@ install_cinderclient
install_cinder
install_cinderclient
# configure_cinder
upgrade_dir=$(get_release_name_from_branch $BASE_DEVSTACK_BRANCH)
source $GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
configure_cinder_upgrade
# calls upgrade-cinder for specific release
upgrade_project cinder $GRENADE_DIR $BASE_DEVSTACK_BRANCH
# Simulate init_cinder()
create_cinder_volume_group

View File

@ -22,9 +22,9 @@ set -o xtrace
# Upgrade DevStack
# ================
upgrade_dir=$(get_release_name_from_branch $BASE_DEVSTACK_BRANCH)
source $GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
configure_devstack_upgrade
# calls upgrade-devstack for specific release
upgrade_project devstack $GRENADE_DIR $BASE_DEVSTACK_BRANCH
# Preserve accrc files for future usage
cp -a $BASE_DEVSTACK_DIR/accrc $TARGET_DEVSTACK_DIR/accrc

View File

@ -80,10 +80,8 @@ source $TARGET_DEVSTACK_DIR/lib/glance
install_glanceclient
install_glance
# configure_glance()
upgrade_dir=$(get_release_name_from_branch $BASE_DEVSTACK_BRANCH)
source $GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
configure_glance_upgrade
# calls upgrade-glance for specific release
upgrade_project glance $GRENADE_DIR $BASE_DEVSTACK_BRANCH
# Simulate init_glance()
create_glance_cache_dir

View File

@ -76,9 +76,8 @@ source $TARGET_DEVSTACK_DIR/lib/keystone
install_keystoneclient
install_keystone
upgrade_dir=$(get_release_name_from_branch $BASE_DEVSTACK_BRANCH)
source $GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
configure_keystone_upgrade
# calls upgrade-keystone for specific release
upgrade_project keystone $GRENADE_DIR $BASE_DEVSTACK_BRANCH
# Simulate init_keystone()
# Migrate the database

View File

@ -99,10 +99,8 @@ NOVNC_DIR=$DEST/noVNC
install_novaclient
install_nova
# configure_nova()
upgrade_dir=$(get_release_name_from_branch $BASE_DEVSTACK_BRANCH)
source $GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
configure_nova_upgrade
# calls upgrade-nova for specific release
upgrade_project nova $GRENADE_DIR $BASE_DEVSTACK_BRANCH
# Simulate init_nova()
create_nova_cache_dir

View File

@ -33,8 +33,7 @@ source $TARGET_DEVSTACK_DIR/lib/oslo
# will actually use the wrong one.
sudo pip uninstall -y oslo.config
upgrade_dir=$(get_release_name_from_branch $BASE_DEVSTACK_BRANCH)
source $GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
configure_oslo_upgrade
# calls upgrade-oslo for specific release
upgrade_project oslo $GRENADE_DIR $BASE_DEVSTACK_BRANCH
install_oslo

View File

@ -19,9 +19,20 @@ source $GRENADE_DIR/grenaderc
# For debugging
set -o xtrace
# NOTE(maurosr): Ideally in a new upgrade test right after a release no new
# configuration is need, so we can go on without the from-<release> directory.
# This is also useful due to cross dependencie between d-g and grenade when
# enabling grenade to run a an upgrade between a new pair of releases.
# Get packages to be updated
upgrade_dir=$(get_release_name_from_branch $BASE_DEVSTACK_BRANCH)
source $GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
upgrade_file=$GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
if [ -e $upgrade_file ]; then
source $upgrade_file
else
echo "Warning: No new configurations were found for new necessary" \
"packages. If your patch fails during the upgrade this may be the cause."
fi
# SQLAlchemy is 0.7.8 ((cinder, nova)
PIPS="$GLANCE_PIPS $HORIZON_PIPS $NOVA_PIPS $QUANTUM_PIPS"

View File

@ -78,10 +78,8 @@ cp -pr /etc/rsyncd.conf $SAVE_DIR
install_swift
install_swiftclient
# configure_swift
upgrade_dir=$(get_release_name_from_branch $BASE_DEVSTACK_BRANCH)
source $GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
configure_swift_upgrade
# calls upgrade-swift for specific release
upgrade_project swift $GRENADE_DIR $BASE_DEVSTACK_BRANCH
# Simulate swift_init()

View File

@ -61,10 +61,8 @@ source $TARGET_DEVSTACK_DIR/lib/tempest
# install_tempest()
install_tempest
# configure_tempest()
upgrade_dir=$(get_release_name_from_branch $BASE_DEVSTACK_BRANCH)
source $GRENADE_DIR/"from-"$upgrade_dir/${0##*/}
configure_tempest_upgrade
# calls upgrade-tempest for specific release
upgrade_project tempest $GRENADE_DIR $BASE_DEVSTACK_BRANCH
OS_USERNAME=admin
configure_tempest