tree 59dd36dacf8a75e1b63bc35e1fdddaa33d6f4815
parent ee7fd1f7e9a4bfc374f005a72ef112921ce785d9
author Ghanshyam <gmann@ghanshyammann.com> 1562317112 +0000
committer Ghanshyam Mann <gmann@ghanshyammann.com> 1563251869 +0000

Define the Integrated-gate-object-storage 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-object-storage'
gate template for swift gate which will run only Swift, 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-object-storage template on swift gate.

[1] https://etherpad.openstack.org/p/qa-train-ptg

Change-Id: I70851d41174462b83cc8c525cecdb1b3d65e4ec7
