
When doing the role upgrade, we run every playbook with current's branch ansible. This is normal for the infrastructure bits (which are running on current branch), but not for the installation of the previous branch's role, which should use previous branch's environment. Depends-On: I7ebb045885dd645b820de2b7f75b46c755c015f6 Change-Id: I7069c906395b37e8af20db82d88d8a069faf5f79 Related-Bug: #1741471
110 lines
4.0 KiB
Bash
Executable File
110 lines
4.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright 2016, 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.
|
|
|
|
# WARNING:
|
|
# This file is use by all OpenStack-Ansible roles for testing purposes.
|
|
# Any changes here will affect all OpenStack-Ansible role repositories
|
|
# with immediate effect.
|
|
|
|
# PURPOSE:
|
|
# This script executes test Ansible playbooks required for performing
|
|
# an upgrade test of the os_neutron role.
|
|
# Due to the way Ansible caches and handles modules, we need to run
|
|
# separate Ansible runs to ensure the "upgrade" uses the new
|
|
# "neutron_migrations_facts" module, instead of the cached version
|
|
# used when deploying the previous Neutron version.
|
|
|
|
## Shell Opts ----------------------------------------------------------------
|
|
|
|
set -e
|
|
|
|
## Vars ----------------------------------------------------------------------
|
|
|
|
export WORKING_DIR=${WORKING_DIR:-$(pwd)}
|
|
export ROLE_NAME=${ROLE_NAME:-''}
|
|
|
|
export ANSIBLE_PARAMETERS=${ANSIBLE_PARAMETERS:-"-vvv"}
|
|
export TEST_PLAYBOOK=$WORKING_DIR/tests/test-upgrade.yml
|
|
export TEST_CHECK_MODE=${TEST_CHECK_MODE:-false}
|
|
export TEST_IDEMPOTENCE=${TEST_IDEMPOTENCE:-false}
|
|
export ANSIBLE_OVERRIDES=$WORKING_DIR/tests/os_swift-overrides.yml
|
|
|
|
export COMMON_TESTS_PATH="${WORKING_DIR}/tests/common"
|
|
|
|
echo "ANSIBLE_OVERRIDES: ${ANSIBLE_OVERRIDES}"
|
|
echo "ANSIBLE_PARAMETERS: ${ANSIBLE_PARAMETERS}"
|
|
echo "TEST_PLAYBOOK: ${TEST_PLAYBOOK}"
|
|
echo "TEST_CHECK_MODE: ${TEST_CHECK_MODE}"
|
|
echo "TEST_IDEMPOTENCE: ${TEST_IDEMPOTENCE}"
|
|
|
|
## Functions -----------------------------------------------------------------
|
|
|
|
function execute_ansible_playbook {
|
|
|
|
export ANSIBLE_CLI_PARAMETERS="${ANSIBLE_PARAMETERS} -e @${ANSIBLE_OVERRIDES}"
|
|
export ANSIBLE_BIN=${ANSIBLE_BIN:-"ansible-playbook"}
|
|
CMD_TO_EXECUTE="${ANSIBLE_BIN} ${TEST_PLAYBOOK} $@ ${ANSIBLE_CLI_PARAMETERS}"
|
|
|
|
echo "Executing: ${CMD_TO_EXECUTE}"
|
|
echo "With:"
|
|
echo " ANSIBLE_INVENTORY: ${ANSIBLE_INVENTORY}"
|
|
echo " ANSIBLE_LOG_PATH: ${ANSIBLE_LOG_PATH}"
|
|
|
|
${CMD_TO_EXECUTE}
|
|
|
|
}
|
|
|
|
## Main ----------------------------------------------------------------------
|
|
|
|
# Ensure that the Ansible environment is properly prepared
|
|
source "${COMMON_TESTS_PATH}/test-ansible-env-prep.sh"
|
|
|
|
# Prepare environment for the initial deploy of (previous and current) Swift
|
|
# No upgrading or testing is done yet.
|
|
export ANSIBLE_LOG_PATH="${ANSIBLE_LOG_DIR}/ansible-execute-swift-install.log"
|
|
|
|
# Execute the setup of current infrastructure
|
|
execute_ansible_playbook
|
|
|
|
# Prepare environment for the deploy of previous Nova:
|
|
# No upgrading or testing is done yet.
|
|
export TEST_PLAYBOOK="${WORKING_DIR}/tests/test-install-previous-swift.yml"
|
|
export ANSIBLE_LOG_PATH="${ANSIBLE_LOG_DIR}/ansible-execute-previous_swift-install.log"
|
|
export PREVIOUS_VENV="ansible-previous"
|
|
export ANSIBLE_BIN="${WORKING_DIR}/.tox/${PREVIOUS_VENV}/bin/ansible-playbook"
|
|
source ${COMMON_TESTS_PATH}/test-create-previous-venv.sh
|
|
|
|
# Execute the setup of previous Neutron
|
|
execute_ansible_playbook
|
|
|
|
# Unset previous branch overrides
|
|
unset PREVIOUS_VENV
|
|
unset ANSIBLE_BIN
|
|
|
|
# Prepare environment for the upgrade of Swift
|
|
export TEST_PLAYBOOK="${WORKING_DIR}/tests/benchmark-upgrade.yml"
|
|
export ANSIBLE_LOG_PATH="${ANSIBLE_LOG_DIR}/ansible-execute-swift-upgrade.log"
|
|
|
|
# Excute the upgrade of Neutron
|
|
execute_ansible_playbook
|
|
|
|
# Prepare the environment for the testing of upgraded Swift
|
|
export TEST_PLAYBOOK="${WORKING_DIR}/tests/test-swift-functional.yml"
|
|
export ANSIBLE_LOG_PATH="${ANSIBLE_LOG_DIR}/ansible-execute-swift-upgrade-test.log"
|
|
|
|
# Execute testing of upgraded Neutron
|
|
execute_ansible_playbook
|