From 1c9bcb9b4eebcad5969fc47f00daa606264496e3 Mon Sep 17 00:00:00 2001 From: Andy McCrae Date: Mon, 21 Nov 2016 10:48:42 +0000 Subject: [PATCH] Cinder upgrade testing. Implement upgrade testing for os_cinder role. This patch adds an upgrade testenv, which configures a previous version of Cinder, and the test-vars from the previous stable branch to be used by the previous version of Cinder. 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: I674fe8cefac6f487c766d51f874f1b43468cdaaa Implements: blueprint upgrade-testing --- tests/ansible-role-requirements.yml | 5 ++++- tests/test-install-previous-cinder.yml | 31 ++++++++++++++++++++++++++ tests/test.yml | 6 +++++ tox.ini | 15 +++++++++++++ 4 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 tests/test-install-previous-cinder.yml diff --git a/tests/ansible-role-requirements.yml b/tests/ansible-role-requirements.yml index a9d640a8..21cf55d4 100644 --- a/tests/ansible-role-requirements.yml +++ b/tests/ansible-role-requirements.yml @@ -46,4 +46,7 @@ src: https://git.openstack.org/openstack/openstack-ansible-openstack_hosts scm: git version: master - +- name: os_previous_cinder + src: https://git.openstack.org/openstack/openstack-ansible-os_cinder + scm: git + version: stable/newton diff --git a/tests/test-install-previous-cinder.yml b/tests/test-install-previous-cinder.yml new file mode 100644 index 00000000..6332f60b --- /dev/null +++ b/tests/test-install-previous-cinder.yml @@ -0,0 +1,31 @@ +--- +# 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: Deploy cinder + hosts: cinder_all + user: root + gather_facts: true + pre_tasks: + - include: common/ensure-rabbitmq.yml + vhost_name: "{{ cinder_rabbitmq_vhost }}" + user_name: "{{ cinder_rabbitmq_userid }}" + user_password: "{{ cinder_rabbitmq_password }}" + - include: common/create-grant-db.yml + db_name: "{{ cinder_galera_database }}" + db_password: "{{ cinder_container_mysql_password }}" + roles: + - role: "os_previous_cinder" + vars_files: + - common/previous/test-vars.yml diff --git a/tests/test.yml b/tests/test.yml index 171570fa..3a5b0589 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -25,6 +25,12 @@ # Install Keystone - include: common/test-install-keystone.yml +# Install previous Cinder +- include: test-install-previous-cinder.yml + when: + - cinder_upgrade is defined + - cinder_upgrade | bool + # Install Cinder - include: common/test-install-cinder.yml diff --git a/tox.ini b/tox.ini index 531ebf80..51d73f91 100644 --- a/tox.ini +++ b/tox.ini @@ -110,6 +110,21 @@ commands = bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" +[testenv:upgrade] +deps = + {[testenv:ansible]deps} +setenv = + {[testenv]setenv} + ANSIBLE_PARAMETERS=-vvv -e cinder_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:linters] deps = {[testenv:ansible]deps}