Bug 1488115

Summary: [RFE] [All DFG] Move bundled OpenStack services tempest plugins to a separate Repo
Product: Red Hat OpenStack Reporter: Chandan Kumar <chkumar>
Component: openstack-tempestAssignee: Chandan Kumar <chkumar>
Status: CLOSED CURRENTRELEASE QA Contact: Martin Kopec <mkopec>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 13.0 (Queens)CC: apannu, apevec, jdanjou, lhh, mmagr, sclewis, slinaber, tfreger, whayutin
Target Milestone: Upstream M2Keywords: FutureFeature, Tracking
Target Release: 13.0 (Queens)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-02-22 14:15:22 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1533541, 1533544, 1533555, 1533557, 1533558, 1533561, 1533563, 1533566, 1533570, 1533573, 1533574, 1533580, 1533586, 1537569, 1538557, 1574931    

Description Chandan Kumar 2017-09-04 11:16:50 UTC
Goal: Move bundled OpenStack services tempest plugins to a separate Repo
It is the Queens Upstream Community Goal: https://governance.openstack.org/tc/goals/queens/split-tempest-plugins.html

Problem:
Tempest is the testing framework for validating OpenStack cloud through tempest plugins.
Till RHOS-12, Most of the OpenStack Services (except Sahara, Designate and Horizon have their own tempest plugins in a separate repo) have bundled intree tempest plugins.

Below is the list of problems due to bundled tempest plugins:
[copied from https://governance.openstack.org/tc/goals/queens/split-tempest-plugins.html]
1. When you deploy an all in one system with multiple services that have bundled tempest plugins and then run tempest outside of a venv tempest will see the tests for all the plugins whether you intended to use them or not. It is also a fairly common occurrence for a project to ship a broken plugin that breaks at import time. This prevents unittest discovery from working which will block any tests from running.

2. A packager tries to use a stable version of your project with a newer tempest. This results in conflicting requirements because tempest is branchless and follows master requirements and makes using stable release plugins with master tempest impossible.

3. Most projects don’t actually use the same tests across release boundaries (or just don’t use plugins on stable branches), which means breaking api changes can land. There are 2 exceptions to this trove and ironic which we hacked together a mechanism to install the project repo from master in the tempest venv.

4. Plugin requirements aren’t exposed at install time. Some projects use test-requirements to set tempest plugin requirements (since it is for tests) which do not get installed when you pip install a project. However the entrypoint always gets exposed and tempest will pick it up regardless of whether all the requirements are installed.

Solution:
* Move bundled OpenStack services tempest plugins to a separate Repo fixes the issues.

Completion Criteria:
* Create a new separate repo for the tempest plugin
* Migrate all the functionality from the bundled plugin to the new repo
* Switch gating jobs to use the new plugin project instead of the bundled one
* Delete the bundled tempest plugin from the project repo
* Package Tempest plugin in RDO
* Fix openstack services package by Removing tempest plugin references in RDO
* Integrate the package in puppet-tempest
* Take ownership of the Tempest plugin based on the DFG it falls.

Comment 6 Jakub Libosvar 2018-03-28 08:35:34 UTC
*** Bug 1544683 has been marked as a duplicate of this bug. ***

Comment 7 Martin Kopec 2019-02-22 14:15:22 UTC
This BZ has been finished since RHOS-13 release. All the plugins were split from Tempest and moved to separate repositories.