openstack-ansible/scripts/run-upgrade.sh

83 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright 2015, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# NOTICE: To run this in an automated fashion run the script via
# root@HOSTNAME:/opt/openstack-ansible# echo "YES" | bash scripts/run-upgrade.sh
## Shell Opts ----------------------------------------------------------------
set -e -u -v
## Functions -----------------------------------------------------------------
function check_for_juno {
if [ -d "/etc/rpc_deploy" ];then
echo "--------------ERROR--------------"
echo "/etc/rpc_deploy directory found, which looks like you're trying to upgrade from Juno."
echo "Please upgrade your environment to Kilo before proceeding."
exit 1
fi
}
function check_for_kilo {
if [[ ! -d "/etc/openstack_deploy" ]]; then
echo "--------------ERROR--------------"
echo "/etc/openstack_deploy directory not found."
echo "It appears you do not have a Kilo environment installed."
exit 2
fi
}
function pre_flight {
## Library Check -------------------------------------------------------------
echo "Checking for required libraries." 2> /dev/null || source $(dirname ${0})/scripts-library.sh
## Pre-flight Check ----------------------------------------------------------
# Clear the screen and make sure the user understands whats happening.
clear
# Notify the user.
echo -e "
This script will perform a v11.x to v12.x upgrade.
Once you start the upgrade there's no going back.
Note, this is an online upgrade and while the
in progress running VMs will not be impacted.
However, you can expect some hiccups with OpenStack
API services while the upgrade is running.
Are you ready to perform this upgrade now?
"
# Confirm the user is ready to upgrade.
read -p 'Enter "YES" to continue or anything else to quit: ' UPGRADE
if [ "${UPGRADE}" == "YES" ]; then
echo "Running Upgrade from v11.x to v12.x"
else
exit 99
fi
}
## Main ----------------------------------------------------------------------
function main {
pre_flight
check_for_juno
check_for_kilo
}
main