86 lines
3.0 KiB
Bash
Executable File
86 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# ``upgrade-glance``
|
|
|
|
# Keep track of the grenade directory
|
|
GRENADE_DIR=$(cd $(dirname "$0") && pwd)
|
|
|
|
# Import common functions
|
|
source $GRENADE_DIR/functions
|
|
|
|
# Determine what system we are running on. This provides ``os_VENDOR``,
|
|
# ``os_RELEASE``, ``os_UPDATE``, ``os_PACKAGE``, ``os_CODENAME``
|
|
# and ``DISTRO``
|
|
GetDistro
|
|
|
|
# Source params
|
|
source $GRENADE_DIR/grenaderc
|
|
|
|
# For debugging
|
|
set -o xtrace
|
|
|
|
|
|
# Upgrade Images
|
|
# ==============
|
|
|
|
# Based on http://bcwaldon.cc/2012/09/05/glance-essex-to-folsom-upgrade.html
|
|
|
|
WORK_GLANCECLIENT_DIR=$START_DIR/python-glanceclient
|
|
WORK_GLANCE_DIR=$START_DIR/glance
|
|
|
|
GLANCE_CONF_DIR=${GLANCE_CONF_DIR:-/etc/glance}
|
|
GLANCE_REGISTRY_CONF=${GLANCE_REGISTRY_CONF:-$GLANCE_CONF_DIR/glance-registry.conf}
|
|
GLANCE_API_CONF=${GLANCE_API_CONF:-$GLANCE_CONF_DIR/glance-api.conf}
|
|
GLANCE_REGISTRY_PASTE_INI=${GLANCE_REGISTRY_PASTE_INI:-$GLANCE_CONF_DIR/glance-registry-paste.ini}
|
|
GLANCE_API_PASTE_INI=${GLANCE_API_PASTE_INI:-$GLANCE_CONF_DIR/glance-api-paste.ini}
|
|
|
|
# Duplicate some setup bits from trunk DevStack
|
|
(cd $DEVSTACK_FINAL_DIR; \
|
|
DEST=$START_DIR; \
|
|
source ./stackrc; \
|
|
|
|
# install_glance()
|
|
RECLONE=yes; \
|
|
git_clone $GLANCECLIENT_REPO $WORK_GLANCECLIENT_DIR $GLANCECLIENT_BRANCH; \
|
|
git_clone $GLANCE_REPO $WORK_GLANCE_DIR $GLANCE_BRANCH; \
|
|
|
|
# configure_glance()
|
|
setup_develop $WORK_GLANCECLIENT_DIR; \
|
|
setup_develop $WORK_GLANCE_DIR; \
|
|
)
|
|
|
|
# Save original files and prepare to upgrade conf files
|
|
[[ -r $GLANCE_REGISTRY_CONF.$START_RELEASE ]] || \
|
|
cp -p $GLANCE_REGISTRY_CONF $GLANCE_REGISTRY_CONF.$START_RELEASE
|
|
|
|
[[ -r $GLANCE_API_CONF.$START_RELEASE ]] || \
|
|
cp -p $GLANCE_API_CONF $GLANCE_API_CONF.$START_RELEASE
|
|
|
|
[[ -r $GLANCE_REGISTRY_PASTE_INI.$START_RELEASE ]] || \
|
|
cp -p $GLANCE_REGISTRY_PASTE_INI $GLANCE_REGISTRY_PASTE_INI.$START_RELEASE
|
|
cp $WORK_GLANCE_DIR/etc/glance-registry-paste.ini $GLANCE_REGISTRY_PASTE_INI
|
|
|
|
[[ -r $GLANCE_API_PASTE_INI.$START_RELEASE ]] || \
|
|
cp -p $GLANCE_API_PASTE_INI $GLANCE_API_PASTE_INI.$START_RELEASE
|
|
cp $WORK_GLANCE_DIR/etc/glance-api-paste.ini $GLANCE_API_PASTE_INI
|
|
|
|
# Migrate the auth info from paste to config
|
|
echo -e "\n[keystone_authtoken]" >>$GLANCE_REGISTRY_CONF
|
|
echo -e "\n[keystone_authtoken]" >>$GLANCE_API_CONF
|
|
for key in auth_host auth_port auth_protocol admin_tenant_name admin_user admin_password; do
|
|
iniset $GLANCE_REGISTRY_CONF keystone_authtoken $key $(iniget $GLANCE_REGISTRY_PASTE_INI.$START_RELEASE filter:authtoken $key)
|
|
iniset $GLANCE_API_CONF keystone_authtoken $key $(iniget $GLANCE_API_PASTE_INI.$START_RELEASE filter:authtoken $key)
|
|
done
|
|
|
|
# Copy glance-registry sql config to glance-api to enable v2 API
|
|
iniset $GLANCE_API_CONF DEFAULT enable_v2_api true
|
|
for key in sql_connection sql_idle_timeout sql_max_retries sql_retry_interval db_auto_create; do
|
|
VAL=$(iniget $GLANCE_REGISTRY_CONF DEFAULT $key)
|
|
[[ -n "$VAL" ]] && iniset $GLANCE_API_CONF DEFAULT $key $VAL
|
|
done
|
|
|
|
# Migrate the database
|
|
glance-manage db_sync
|
|
|
|
echo "glance-registry --config-file=$GLANCE_REGISTRY_CONF"
|
|
echo "glance-api --config-file=$GLANCE_API_CONF" |