From 3d3917f9af0ee14e79a05995e79834debd08a1c5 Mon Sep 17 00:00:00 2001 From: Nolan Brubaker Date: Wed, 24 May 2017 11:57:09 -0400 Subject: [PATCH] Run service test during glance upgrade Run the Glance API tests to create and delete images during an upgrade Logs will be written to /var/log/glance_rolling.log The result of the tests is collected in Ansible, but the gate currently does not pass or fail due to it - it's simply stored in the 'rolling_test_benchmark_results' variable and displayed. Change-Id: Ie37c15fb3379f8b687e7e47e6aa45deb01802424 --- tests/benchmark-upgrade.yml | 20 ++++++++++++ tests/test-glance-resources-results.yml | 28 +++++++++++++++++ tests/test-glance-resources-upgrade.yml | 42 +++++++++++++++++++++++++ tests/test-glance-upgrades.sh | 4 ++- 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 tests/benchmark-upgrade.yml create mode 100644 tests/test-glance-resources-results.yml create mode 100644 tests/test-glance-resources-upgrade.yml diff --git a/tests/benchmark-upgrade.yml b/tests/benchmark-upgrade.yml new file mode 100644 index 00000000..f1f73667 --- /dev/null +++ b/tests/benchmark-upgrade.yml @@ -0,0 +1,20 @@ +--- +# Copyright 2017, 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. + +- include: test-glance-resources-upgrade.yml + +- include: common/test-install-glance.yml + +- include: test-glance-resources-results.yml diff --git a/tests/test-glance-resources-results.yml b/tests/test-glance-resources-results.yml new file mode 100644 index 00000000..43439a8e --- /dev/null +++ b/tests/test-glance-resources-results.yml @@ -0,0 +1,28 @@ +--- +# Copyright 2017, 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 to report resource tests + hosts: localhost + user: root + tasks: + - name: Kill resource test + command: pkill -f rolling_test + - name: Register upgrade benchmarking results + async_status: jid={{ rolling_test_benchmark.ansible_job_id }} + register: rolling_test_benchmark_results + until: rolling_test_benchmark_results.finished + - name: Display basic summary + debug: + msg: "Finished upgrade with {{ rolling_test_benchmark_results.stdout }}% API response failure rate" diff --git a/tests/test-glance-resources-upgrade.yml b/tests/test-glance-resources-upgrade.yml new file mode 100644 index 00000000..52de37d5 --- /dev/null +++ b/tests/test-glance-resources-upgrade.yml @@ -0,0 +1,42 @@ +--- +# Copyright 2017, 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 to run resource tests against an openstack service + hosts: localhost + user: root + become: true + # TODO: remove the static reference to openstack1 + vars: + test_keystone_host: openstack1 + working_dir: "{{ lookup('env', 'WORKING_DIR') }}" + tasks: + - name: Install openstack clients + pip: + name: "{{ item }}" + with_items: + - python-keystoneclient + - python-glanceclient + - name: Run rolling test script + command: ./openstack-ansible-ops/bowling_ball/rolling_tests.py glance + args: + chdir: "{{ working_dir }}" + async: 100000 + poll: 0 + environment: + OS_AUTH_URL: "{{ keystone_service_publicurl }}" + OS_PASSWORD: "{{ keystone_auth_admin_password }}" + register: rolling_test_benchmark + vars_files: + - common/test-vars.yml diff --git a/tests/test-glance-upgrades.sh b/tests/test-glance-upgrades.sh index a0561632..f1b325a3 100755 --- a/tests/test-glance-upgrades.sh +++ b/tests/test-glance-upgrades.sh @@ -42,6 +42,8 @@ export TEST_CHECK_MODE=${TEST_CHECK_MODE:-false} export TEST_IDEMPOTENCE=${TEST_IDEMPOTENCE:-false} export COMMON_TESTS_PATH="${WORKING_DIR}/tests/common" +export OSA_OPS_DIR="${WORKING_DIR}/openstack-ansible-ops" +export BOWLING_BALL_DIR="${OSA_OPS_DIR}/bowling_ball" echo "ANSIBLE_OVERRIDES: ${ANSIBLE_OVERRIDES}" echo "ANSIBLE_PARAMETERS: ${ANSIBLE_PARAMETERS}" @@ -85,7 +87,7 @@ export ANSIBLE_LOG_PATH="${ANSIBLE_LOG_DIR}/ansible-execute-glance-install.log" execute_ansible_playbook # Prepare environment for the upgrade of Glance -export TEST_PLAYBOOK="${COMMON_TESTS_PATH}/test-install-glance.yml" +export TEST_PLAYBOOK="${WORKING_DIR}/tests/benchmark-upgrade.yml" export ANSIBLE_LOG_PATH="${ANSIBLE_LOG_DIR}/ansible-execute-glance-upgrade.log" # Excute the upgrade of Glance