#!/usr/bin/env bash # ``upgrade-nova`` echo "*********************************************************************" echo "Begin $0" echo "*********************************************************************" # Clean up any resources that may be in use cleanup() { set +o errexit echo "*********************************************************************" echo "ERROR: Abort $0" echo "*********************************************************************" # Kill ourselves to signal any calling process trap 2; kill -2 $$ } trap cleanup SIGHUP SIGINT SIGTERM # 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 # This script exits on an error so that errors don't compound and you see # only the first error that occurred. set -o errexit # Print the commands being run so that we can see the command that triggers # an error. It is also useful for following allowing as the install occurs. set -o xtrace # Set for DevStack compatibility TOP_DIR=$TARGET_DEVSTACK_DIR # Upgrade Nova # ============ # Kill running Nova processes for serv in n-api n-cauth n-cpu n-crt n-net n-novnc n-obj n-sch n-vol n-xvnc; do screen -S $SCREEN_NAME -p $serv -X kill done MYSQL_HOST=${MYSQL_HOST:-localhost} MYSQL_USER=${MYSQL_USER:-root} BASE_SQL_CONN=$(source $BASE_DEVSTACK_DIR/stackrc; echo ${BASE_SQL_CONN:-mysql://$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST}) # Duplicate some setup bits from target DevStack cd $TARGET_DEVSTACK_DIR source $TARGET_DEVSTACK_DIR/stackrc # From stack.sh FLOATING_RANGE=${FLOATING_RANGE:-172.24.4.224/28} FIXED_RANGE=${FIXED_RANGE:-10.0.0.0/24} HOST_IP=$(get_default_host_ip $FIXED_RANGE $FLOATING_RANGE "$HOST_IP_IFACE" "$HOST_IP") if [ "$HOST_IP" == "" ]; then die $LINENO "Could not determine host ip address. Either localrc specified dhcp on ${HOST_IP_IFACE} or defaulted" fi SERVICE_HOST=${SERVICE_HOST:-$HOST_IP} SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service} S3_SERVICE_PORT=${S3_SERVICE_PORT:-8080} source $TARGET_DEVSTACK_DIR/lib/database # Just do this rather than bring in all of glance GLANCE_HOSTPORT=$SERVICE_HOST:9292 SYSLOG=`trueorfalse False $SYSLOG` # Get functions from current DevStack source $TARGET_DEVSTACK_DIR/lib/rpc_backend source $TARGET_DEVSTACK_DIR/lib/keystone source $TARGET_DEVSTACK_DIR/lib/nova source $TARGET_DEVSTACK_DIR/lib/baremetal source $TARGET_DEVSTACK_DIR/lib/neutron # install_neutronclient() install_neutronclient NOVNC_DIR=$DEST/noVNC # Save current config files for posterity [[ -d $SAVE_DIR/etc.nova ]] || cp -pr $NOVA_CONF_DIR $SAVE_DIR/etc.nova # install_nova() install_novaclient install_nova # calls upgrade-nova for specific release upgrade_project nova $GRENADE_DIR $BASE_DEVSTACK_BRANCH # Simulate init_nova() create_nova_cache_dir create_nova_keys_dir # Migrate the database nova-manage --config-file $NOVA_CONF db sync || die $LINENO "DB sync error" # Start Nova start_nova_api start_nova set +o xtrace echo "*********************************************************************" echo "SUCCESS: End $0" echo "*********************************************************************"