tree 8f09ff072fe6d4405283324a4ad0bc7a91ac8ef5
parent 2df6114e44e1a0af48451a901d3d88c6c7975dd8
author Ghanshyam <gmann@ghanshyammann.com> 1562164853 +0000
committer Ghanshyam Mann <gmann@ghanshyammann.com> 1562313863 +0000

Define the Integrated-gate-networking 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-networking'
gate template for neutron gate which will run only nova and neutron 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-networking template on neutron gate.

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

Change-Id: Ifca8172f2f929105af4bad8ab72b05c2c45a5f58
