Make tempest scenario manager a stable interface

Registered by Ghanshyam Mann on 2020-03-19

Make tempest scenario manager a stable interface

Tempest plugins often defines their own scenario manager, like for example:
https://opendev.org/openstack/congress-tempest-plugin/src/branch/master/congress_tempest_plugin/tests/scenario/manager.py
https://opendev.org/openstack/barbican-tempest-plugin/src/branch/master/barbican_tempest_plugin/tests/scenario/manager.py
https://opendev.org/openstack/cyborg-tempest-plugin/src/branch/master/cyborg_tempest_plugin/tests/scenario/manager.py
https://opendev.org/openstack/manila-tempest-plugin/src/branch/master/manila_tempest_tests/tests/scenario/manager.py
etc

We need to find common manager methods among plugins and define them in Tempest. Plugins should reuse the code from Tempest then
and drop any duplicit methods from their repositories.

The stable manager should provide the following methods responsible for:

When the above is done a recommended scenario test structure is defined for tempest plugins to follow.

List of tempest plugins: https://docs.openstack.org/tempest/latest/plugin-registry.html

Goals:
consumers like tempest plugins use tempest manager stable interface rather than their own manager (that is the current situation)
consumers/tempest plugins follow the recommended structure of scenario tests

Changes needed:
We need to make all the methods consistent with names and parameters. So that is is easy to use and not end up with changes for future requirements of arg etc.
remove the duplicate wrapper etc if any
Separate the methods in related classes. Currently, lot of things are there in the base or single classes.
Add docstring about method usage and parameter.
Check for common methods that are used in multiple scenario tests but not present in scenario manager.

More Details: https://etherpad.openstack.org/p/tempest-scenario-manager

Blueprint information

Status:
Not started
Approver:
Ghanshyam Mann
Priority:
Medium
Drafter:
Ghanshyam Mann
Direction:
Approved
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.