diff --git a/tests/benchmark-upgrade.yml b/tests/benchmark-upgrade.yml new file mode 100644 index 00000000..606a4a1a --- /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-neutron-resources-upgrade.yml + +- include: common/test-install-neutron.yml + +- include: test-neutron-resources-results.yml diff --git a/tests/test-neutron-resources-results.yml b/tests/test-neutron-resources-results.yml new file mode 100644 index 00000000..1c3c97cd --- /dev/null +++ b/tests/test-neutron-resources-results.yml @@ -0,0 +1,30 @@ +--- +# 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 + gather_facts: no + tasks: + - name: Kill resource test + command: pkill -f rolling_test + ignore_errors: yes + - 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-neutron-resources-upgrade.yml b/tests/test-neutron-resources-upgrade.yml new file mode 100644 index 00000000..5b52966d --- /dev/null +++ b/tests/test-neutron-resources-upgrade.yml @@ -0,0 +1,43 @@ +--- +# 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 sdk + pip: + name: "{{ item }}" + with_items: + - "python-openstacksdk" + - "python-keystoneclient" + - "python-glanceclient" + - name: Run rolling test script + command: ./openstack-ansible-ops/bowling_ball/rolling_tests.py neutron + 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-neutron-upgrades.sh b/tests/test-neutron-upgrades.sh index 5d9d4ffd..d58ab824 100755 --- a/tests/test-neutron-upgrades.sh +++ b/tests/test-neutron-upgrades.sh @@ -86,7 +86,7 @@ export ANSIBLE_LOG_PATH="${ANSIBLE_LOG_DIR}/ansible-execute-newton-neutron-insta execute_ansible_playbook # Prepare environment for the upgrade of Neutron -export TEST_PLAYBOOK="${COMMON_TESTS_PATH}/test-install-neutron.yml" +export TEST_PLAYBOOK="${WORKING_DIR}/tests/benchmark-upgrade.yml" export ANSIBLE_LOG_PATH="${ANSIBLE_LOG_DIR}/ansible-execute-newton-upgrade.log" # Excute the upgrade of Neutron