From ee7fd1f7e9a4bfc374f005a72ef112921ce785d9 Mon Sep 17 00:00:00 2001 From: Ghanshyam Date: Fri, 5 Jul 2019 09:36:57 +0000 Subject: [PATCH] Define the Integrated-gate-compute gate template tempest-full job run all services API and scenario tests (non slow) and this job is part of Integrated-gate gate template which run on multiple services (nova, neutron, cinder, glance, placement) check and gate pipeline. But there are many unrelated tests run on each project gate. For example, neutron gate run cinder only tests and fail due to cinder bugs. There is no point of breaking the neutron gate due to cinder only test failure and slow down the neutron development phase. This is what we dicussed in Train PTG in denver to improve the integrated gate[1] and came up with idea of split the integated-gate template into much logical way so that only dependent services tests run on their gate. One way was to move the service only tests to service tempest plugin side but Tempest is used by interop as well as on production cloud testing so moving the test is not good idea. This commit propose the idea of defining the 'Integrated-gate-compute' gate template for nova gate which will run only nova, neutron, cinder and glance tests. ML discussion: http://lists.openstack.org/pipermail/openstack-discuss/2019-May/005871.html Next step will be to replace the Integrated-gate-py3 template with new Integrated-gate-compute template on nova gate. It will also help to disable the non-nova related serviecs and tests which cannot be disabled from tempest-full job. [1] https://etherpad.openstack.org/p/qa-train-ptg Change-Id: I807d4cac6214395df292a6955686ea44677c3481 --- .zuul.yaml | 37 +++++++++++++++++++ ...pest-integrated-gate-compute-blacklist.txt | 13 +++++++ tox.ini | 12 ++++++ 3 files changed, 62 insertions(+) create mode 100644 tools/tempest-integrated-gate-compute-blacklist.txt diff --git a/.zuul.yaml b/.zuul.yaml index f969bfaa7a..0b64f85e02 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -191,6 +191,27 @@ s-proxy: false c-bak: false +- job: + name: tempest-integrated-compute + parent: devstack-tempest + branches: ^(?!stable/ocata).*$ + description: | + This job runs integration tests for compute. This is + subset of 'tempest-full' job and run Nova, Neutron, Cinder (except backup tests) + and Glance related tests. This is meant to be run on Nova gate only. + vars: + tox_envlist: integrated-compute + devstack_localrc: + USE_PYTHON3: true + FORCE_CONFIG_DRIVE: true + ENABLE_VOLUME_MULTIATTACH: true + devstack_services: + s-account: false + s-container: false + s-object: false + s-proxy: false + c-bak: false + - job: name: tempest-integrated-placement parent: devstack-tempest @@ -569,6 +590,22 @@ - grenade-py3 - tempest-integrated-networking +- project-template: + name: integrated-gate-compute + description: | + Run the python3 Tempest compute integration tests + (Nova, Neutron, Cinder and Glance related) in check and gate + for the Nova integrated gate. This is meant to be + run on Nova gate only. + check: + jobs: + - grenade-py3 + - tempest-integrated-compute + gate: + jobs: + - grenade-py3 + - tempest-integrated-compute + - project-template: name: integrated-gate-placement description: | diff --git a/tools/tempest-integrated-gate-compute-blacklist.txt b/tools/tempest-integrated-gate-compute-blacklist.txt new file mode 100644 index 0000000000..88052620f6 --- /dev/null +++ b/tools/tempest-integrated-gate-compute-blacklist.txt @@ -0,0 +1,13 @@ +# This file includes the backlist of tests which need to be +# skipped for Integrated-gate-compute template. Integrated-gate-compute template +# needs to run only Nova, Neutron, Cinder and Glance related tests and rest all +# tests will be skipped by below list. + +# Skip keystone and Swift API tests. +tempest.api.identity +tempest.api.object_storage + +# Skip Swift only scenario tests. +tempest.scenario.test_object_storage_basic_ops.TestObjectStorageBasicOps.test_swift_basic_ops +tempest.scenario.test_object_storage_basic_ops.TestObjectStorageBasicOps.test_swift_acl_anonymous_download +tempest.scenario.test_volume_backup_restore.TestVolumeBackupRestore.test_volume_backup_restore diff --git a/tox.ini b/tox.ini index b75b03ce96..8b6169b855 100644 --- a/tox.ini +++ b/tox.ini @@ -130,6 +130,18 @@ commands = tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --blacklist_file ./tools/tempest-integrated-gate-networking-blacklist.txt {posargs} tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --blacklist_file ./tools/tempest-integrated-gate-networking-blacklist.txt {posargs} +[testenv:integrated-compute] +envdir = .tox/tempest +sitepackages = {[tempestenv]sitepackages} +setenv = {[tempestenv]setenv} +deps = {[tempestenv]deps} +# The regex below is used to select which tests to run and exclude the slow tag and +# tests listed in blacklist file: +commands = + find . -type f -name "*.pyc" -delete + tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --blacklist_file ./tools/tempest-integrated-gate-compute-blacklist.txt {posargs} + tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --blacklist_file ./tools/tempest-integrated-gate-compute-blacklist.txt {posargs} + [testenv:integrated-placement] envdir = .tox/tempest sitepackages = {[tempestenv]sitepackages}