From a5e3fa7180f32140848fb7fe5ab22b4f12036dd2 Mon Sep 17 00:00:00 2001 From: Andy McCrae Date: Fri, 11 Nov 2016 17:47:23 +0000 Subject: [PATCH] Swift upgrade testing. Implement upgrade testing for os_swift role. This patch adds an upgrade testenv, which configures a previous version of swift, and the test-vars from the previous stable branch to be used by the previous version of swift. We don't run functional tests after the initial stable/newton deploy because a working stable/newton branch is already tested, and it's assumed it worked if the upgrade works too - which is more efficient. This follows the pattern setup for Keystone in: https://review.openstack.org/#/c/384269/ Change-Id: Icefc1c75b814b9d7dc5e79422e975346b9482e9d Implements: blueprint upgrade-testing --- tests/ansible-role-requirements.yml | 4 ++++ tests/test-install-previous-swift.yml | 23 +++++++++++++++++++++++ tests/test.yml | 9 +++++++++ tox.ini | 15 +++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 tests/test-install-previous-swift.yml diff --git a/tests/ansible-role-requirements.yml b/tests/ansible-role-requirements.yml index 6a67d695..ad4f9ce2 100644 --- a/tests/ansible-role-requirements.yml +++ b/tests/ansible-role-requirements.yml @@ -46,3 +46,7 @@ src: https://git.openstack.org/openstack/openstack-ansible-rsyslog_client scm: git version: master +- name: os_previous_swift + src: https://git.openstack.org/openstack/openstack-ansible-os_swift + scm: git + version: stable/newton diff --git a/tests/test-install-previous-swift.yml b/tests/test-install-previous-swift.yml new file mode 100644 index 00000000..0404c0b5 --- /dev/null +++ b/tests/test-install-previous-swift.yml @@ -0,0 +1,23 @@ +--- +# 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. + +- name: Playbook for deploying swift + hosts: "{{ swift_groups | default('swift_all:swift_remote_all') }}" + user: root + gather_facts: true + roles: + - role: "os_previous_swift" + vars_files: + - common/previous/test-vars.yml diff --git a/tests/test.yml b/tests/test.yml index 849e6467..29c165ce 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -22,5 +22,14 @@ # Install Keystone - include: common/test-install-keystone.yml +# Setup Swift-hosts +- include: common/test-setup-swifthosts.yml + +# Install previous swift +- include: test-install-previous-swift.yml + when: + - swift_upgrade is defined + - swift_upgrade | bool + # Install Swift - include: common/test-install-swift.yml diff --git a/tox.ini b/tox.ini index b91c5d16..2cca0348 100644 --- a/tox.ini +++ b/tox.ini @@ -111,6 +111,21 @@ commands = bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" +[testenv:upgrade] +deps = + {[testenv:ansible]deps} +setenv = + {[testenv]setenv} + ANSIBLE_PARAMETERS=-vvv -e swift_upgrade=True +commands = + {[testenv:tests_clone]commands} + bash -c "if [ ! -d "{toxinidir}/tests/common/previous" ]; then \ + git clone https://git.openstack.org/openstack/openstack-ansible-tests -b stable/newton \ + {toxinidir}/tests/common/previous; \ + fi" + bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" + + [testenv:func_pypy] deps = {[testenv:ansible]deps}