Story #6414
closedAs a user, I can keep track of a group of tasks
100%
Description
User experience¶
A task that dispatches some number of tasks returns a list of created resources that includes at least one TaskGroup href.
The user can then perform a GET on the TaskGroup and receive a data structure that looks like this:
{ "pulp_created": "2019-07-23T08:18:12.927007Z", "pulp_href": "/pulp/api/v3/task-groups/59f8a786-c7d7-4e2b-ad07-701479d403c5/", "description": "foo group of tasks", "waiting": 0, "skipped": 0, "running": 0, "completed": 1, "failed": 1, "canceled": 0 }
Users that want detailed information on all of the tasks in the task group can do so via the /task/ api.
http GET :24817/pulp/api/v3/tasks/?task_group=/pulp/api/v3/task-groups/59f8a786-c7d7-4e2b-ad07-701479d403c5/
http GET :24817/pulp/api/v3/tasks/?task_group=/pulp/api/v3/task-groups/59f8a786-c7d7-4e2b-ad07-701479d403c5/&state=failed
Implementation¶
TaskGroup model, viewset, and serializer need to be created.
Task model needs to have an optional 'task_group' foreign key added.
The enque_with_reservation[0] method needs to accept an optional 'task_group' keyword argument. When the 'task_group' is specified it is saved as a ForeignKey on the Task model that is created for tracking that task.
[0] https://github.com/pulp/pulpcore/blob/master/pulpcore/tasking/tasks.py#L148
Related issues
As a user, I have Task Groups
closes: #6414 https://pulp.plan.io/issues/6414