Comment 4 for bug 1904055

Revision history for this message
Andrey Kurilin (andreykurilin) wrote :

Sorry for the long reply. New Year deadlines and holidays :)

If you are still interested in working on this task:

1) run_in_parallel option is incorrect and should be replaced with something like 'runner' section like we have at workloads.

2) There is special class that covers the logic of running tasks - rally.task.engine

3) https://github.com/openstack/rally/blob/3.2.0/rally/task/engine.py#L500 takes care of running the workloads.

4) https://github.com/openstack/rally/blob/3.2.0/rally/task/engine.py#L466 is taking care of running subtasks. This code covers 'serial' execution

5) The new entity SubtaskRunner should be introduced. The logic of finding the proper plugin and further execution can be copy-pasted (with adoption) from workloads (see #3 point).

6) The current code of _run_subtasks (see #4) should go to SerialSubtaskRunner.

7) The feature of running workloads in parallel should be implemented in the separate plugin of SubtaskRunner. It can be similar to https://github.com/openstack/rally/blob/master/rally/plugins/task/runners/constant.py#L154 .

PS: Feel free to ping me on Gitter or email, it should be a quicker way to reach me.