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:
Complete
Approver:
Ghanshyam Mann
Priority:
Medium
Drafter:
Ghanshyam Mann
Direction:
Approved
Assignee:
Soniya Murlidhar Vyas
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Soniya Murlidhar Vyas on 2021-04-05
Completed by
Soniya Murlidhar Vyas on 2021-04-05

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.opendev.org/#/q/topic:bp/tempest-scenario-manager-stable

Addressed by: https://review.opendev.org/724631
    [WIP] Need to have stable tempest scenario manager

Gerrit topic: https://review.opendev.org/#/q/topic:tempest-scenario-manager-stable

Addressed by: https://review.opendev.org/746492
    Use of single interface for creating image

Gerrit topic: https://review.opendev.org/#/q/topic:scenario-manager-stable

Addressed by: https://review.opendev.org/749025
    Need to have stable implementation of nova_volume_detach() and add missing docstrings

Addressed by: https://review.opendev.org/749926
    Removal of unused parameters

Addressed by: https://review.opendev.org/752231
    Added api to scenario manager

Addressed by: https://review.opendev.org/752445
    Need to have stable implementation of api

Addressed by: https://review.opendev.org/753689
    Added apis to scenario manager

Addressed by: https://review.opendev.org/754081
    Need to have stable implementation of apis

Addressed by: https://review.opendev.org/758555
    Allow kwargs in create_keypair

Addressed by: https://review.opendev.org/758578
    Allow kwargs in create_volume

Addressed by: https://review.opendev.org/758596
    Allow kwargs in create/restore_backup

Addressed by: https://review.opendev.org/758655
    Replace display_name by name in scenario manager

Addressed by: https://review.opendev.org/758658
    Allow kwargs in create_volume_snapshot

Addressed by: https://review.opendev.org/758681
    Allow kwargs in create_volume_type

Gerrit topic: https://review.opendev.org/#/q/topic:feature/kwargs_nova_attach_volume

Addressed by: https://review.opendev.org/760357
    Allow kwargs in nova_attach_volume

Gerrit topic: https://review.opendev.org/#/q/topic:feature/get_server_ip_kwargs

Addressed by: https://review.opendev.org/760379
    Allow kwargs in get_server_ip

Gerrit topic: https://review.opendev.org/#/q/topic:feature/kwargs_create_timestamp

Addressed by: https://review.opendev.org/760385
    Allow kwargs in create_timestamp

Gerrit topic: https://review.opendev.org/#/q/topic:feature/log_console_output_kwargs

Addressed by: https://review.opendev.org/760386
    Allow kwargs in _log_console_output

Addressed by: https://review.opendev.org/760388
    Allow kwargs in create_server_snapshot

Gerrit topic: https://review.opendev.org/#/q/topic:feature/kwargs_get_server_port_id_and_ip4

Addressed by: https://review.opendev.org/760521
    Allow kwargs in _get_server_port_id_and_ip4

Gerrit topic: https://review.opendev.org/#/q/topic:feature/kwargs_get_timestamp

Addressed by: https://review.opendev.org/760534
    Allow kwargs in get_timestamp

Addressed by: https://review.opendev.org/760661
    Add try except around validate_authentication

Addressed by: https://review.opendev.org/760904
    Stabilize _create_loginable_secgroup_rule

Addressed by: https://review.opendev.org/761156
    Allow kwargs in _get_router

Addressed by: https://review.opendev.org/761191
    Allow kwargs in create_floating_ip

Addressed by: https://review.opendev.org/761329
    Allow kwargs in create_volume_from_image

Addressed by: https://review.opendev.org/761333
    Allow kwargs in boot_instance_from_resource

Gerrit topic: https://review.opendev.org/#/q/topic:feature/kwargs_create_floating_ip

Addressed by: https://review.opendev.org/761536
    Allow kwargs in create_floating_ip

Gerrit topic: https://review.opendev.org/#/q/topic:feature/kwargs_image_create

Addressed by: https://review.opendev.org/761629
    Allow kwargs in image_create

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.