Refactor Scenario Runner

Registered by Mikhail Dubov

The functionality of Rally gets growing faster and faster - we are now concentrated on implementing such things as different benchmarking modes, benchmark scenario validators etc. The current implementation of the ScenarioRunner class, which is a tool that underlies the benchmark engine and is actually responsible for the scenario launching, is not very flexible and thus error-prone. The goal of this blueprint is to reimplement this class in a more object-oriented way.

The proposed steps are as follows:
1) Move some helper methods that delete resources to the rally.benchmark.utils module;
2) Create two context classes: UserGenerator and ResourceCleaner, which will take away some code from the ScenarioRunner class (which performs temporary users creation and resource cleanup, respectively) and use these classes from the ScenarioRunner; also add the preliminary support for two benchmarking modes: admin and non-admin;
3) Implement different benchmarking strategies (continuous/periodic) via subclassing, not via many methods and "if"s inside the single ScenarioRunner class;
4) Move the benchmark scenario validators from ScenarioRunner to the benchmark engine class.

Blueprint information

Status:
Complete
Approver:
Boris Pavlovic
Priority:
High
Drafter:
Mikhail Dubov
Direction:
Approved
Assignee:
Mikhail Dubov
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Mikhail Dubov
Completed by
Boris Pavlovic

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/scenario-runner-refactoring,n,z

Addressed by: https://review.openstack.org/69886
    Start refactoring scenario runner

Addressed by: https://review.openstack.org/70771
    Implement ScenarioRunner execution types via inheritance

Gerrit topic: https://review.openstack.org/#q,topic:bp/benchmarking-with-predefined-users,n,z

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.