Task Management¶
Pulp can execute almost any call asynchronously and some calls are always executed asynchronously. Pulp provides REST APIs to inspect and manage the tasks executing these calls.
Task Report¶
The task information object is used to report information about any asynchronously executed task.
_href (string) - uri path to retrieve this task report object.
state (string) - the current state of the task. The possible values include: ‘waiting’, ‘skipped’, ‘running’, ‘suspended’, ‘finished’, ‘error’ and ‘canceled’.
task_id (string) - the unique id of the task that is executing the asynchronous call
task_type (string) - deprecated the fully qualified (package/method) type of the task that is executing the asynchronous call. The field is empty for tasks performed by consumer agent.
progress_report (object) - arbitrary progress information, usually in the form of an object
result (any) - the return value of the call, if any
exception (null or string) - deprecated the error exception value, if any
traceback (null or array) - deprecated the resulting traceback if an exception was raised
start_time (null or string) - the time the call started executing
finish_time (null or string) - the time the call stopped executing
tags (array) - arbitrary tags useful for looking up the call report
spawned_tasks (array) - List of objects containing the uri and task id for any tasks that were spawned by this task.
worker_name (string) - The worker associated with the task. This field is empty if a worker is not yet assigned.
queue (string) - The queue associated with the task. This field is empty if a queue is not yet assigned.
error (null or object) - Any, errors that occurred that did not cause the overall call to fail. See Error Details.
Note
The exception and traceback fields have been deprecated as of Pulp 2.4. The information about errors that have occurred will be contained in the error block. See Error Details for more information.
Example Task Report:
{
"_href": "/pulp/api/v2/tasks/0fe4fcab-a040-11e1-a71c-00508d977dff/",
"state": "running",
"worker_name": "reserved_resource_worker-0@your.domain.com",
"task_id": "0fe4fcab-a040-11e1-a71c-00508d977dff",
"task_type": "pulp.server.tasks.repository.sync_with_auto_publish",
"progress_report": {}, # contents depend on the operation
"result": null,
"start_time": "2012-05-17T16:48:00Z",
"finish_time": null,
"exception": null,
"traceback": null,
"tags": [
"pulp:repository:f16",
"pulp:action:sync"
],
"spawned_tasks": [{"href": "/pulp/api/v2/tasks/7744e2df-39b9-46f0-bb10-feffa2f7014b/",
"task_id": "7744e2df-39b9-46f0-bb10-feffa2f7014b" }],
"error": null
}
Polling Task Progress¶
Poll a task for progress and result information for the asynchronous call it is executing. Polling returns a Task Report
/pulp/api/v2/tasks/<task_id>/
200 - if the task is found
404 - if the task is not found
Cancelling a Task¶
Some asynchronous tasks may be canceled by the user before they complete. A task must be in the waiting or running states in order to be canceled.
Note
It is possible for a task to complete or experience an error before the cancellation request is processed, so it is not guaranteed that a task’s final state will be ‘canceled’ as a result of this call. In these instances this method call will still return a response code of 200.
/pulp/api/v2/tasks/<task_id>/
200 - if the task cancellation request was successfully received
404 - if the task is not found
Listing Tasks¶
All currently running and waiting tasks may be listed. This returns an array of Task Report instances. the array can be filtered by tags.
/pulp/api/v2/tasks/
tag (string) - (optional) only return tasks tagged with all tag parameters
200 - containing an array of tasks
Deleting Completed Tasks¶
All completed tasks with states finished, error, skipped may be deleted. This call returns response code 204 if successful or code 403 if the request is forbidden.
/pulp/api/v2/tasks/
state (string) - (optional) only delete tasks currently in this state
For example:
/pulp/api/v2/tasks/?state=finished&state=skipped
204 - if the tasks were successfully deleted
403 - if there was a forbidden request
Searching for Tasks¶
API callers may also search for tasks. This uses a search criteria document.
/pulp/api/v2/tasks/search/
200 - containing the list of tasks
/pulp/api/v2/tasks/search/
For example:
/pulp/api/v2/tasks/search/?field=id&field=task_type&limit=20
200 - containing the array of tasks.
Task Group Management¶
Cancelling Tasks in a Task Group¶
All asynchronous tasks in a particular task group may be canceled by the user before they complete. A task must be in the waiting or running state in order to be canceled.
Note
It is possible for a task to complete or experience an error before the cancellation request is processed, so it is not guaranteed that a task’s final state will be ‘canceled’ as a result of this call. In these instances this method call will still return a response code of 200.
/pulp/api/v2/task_groups/<group_id>/
200 - if the task group cancellation request was successfully received
404 - if the task group is not found
Task Group Summary¶
Task Group Summary object summarizes the state of all the tasks belonging to a task group.
accepted (int) - number of tasks in ‘accepted’ state
finished (int) - number of tasks in ‘finished’ state
running (int) - number of tasks in ‘running’ state
canceled (int) - number of tasks in ‘canceled’ state
waiting (int) - number of tasks in ‘waiting’ state
skipped (int) - number of tasks in ‘skipped’ state
suspended (int) - number of tasks in ‘suspended’ state
error (int) - number of tasks in ‘error’ state
total (int) - total number of tasks in the task group
Example task group summary:
{
"accepted": 0,
"finished": 100,
"running": 4,
"canceled": 0,
"waiting": 2,
"skipped": 0,
"suspended": 0,
"error": 0,
"total": 106
}
Polling Task Group Progress¶
Poll a group of tasks for progress summary. Polling returns a Cancelling Tasks in a Task Group
/pulp/api/v2/task_groups/<task_group_id>/state_summary/
200 - if the task group is found
404 - if the task group id is not found