cloudkitty/api-ref/source/v2/task/reprocessing.inc
Rafael Weingärtner 60d91d8ce4 Improve reprocessing task documentation
Change-Id: I51e50d1b4f7d5fbe7dcbda7ddcc8b8453eb5c439
2023-04-03 10:28:51 -03:00

148 lines
4.1 KiB
PHP

======================
Task schedule endpoint
======================
CloudKitty has a task endpoint `/v2/task/<type_of_task>`, which allows
operators to schedule administrative tasks, such as reprocessing.
Currently, the only task available is the reprocessing one, which is avaiable
via the following endpoints.
- POST `/v2/task/reprocesses` -- to create a reprocessing task.
- GET `/v2/task/reprocesses/<path_scope_id>` -- to retrieve a reprocessing task.
- GET `/v2/task/reprocesses` -- to retrieve all reprocessing task.
Create a reprocessing task
==========================
The endpoint used to schedule a reprocessing task. The scheduled tasks are
loaded to execution once every processing cycle, as defined in the
CloudKitty `period` configuration.
.. rest_method:: POST `/v2/task/reprocesses`
.. rest_parameters:: task/reprocessing_parameters.yml
- scope_ids: scope_ids
- start_reprocess_time: start_reprocess_time
- end_reprocess_time: end_reprocess_time
- reason: reason
Status codes
------------
.. rest_status_code:: success http_status.yml
- 200
.. rest_status_code:: error http_status.yml
- 400
- 403
- 405
Response
--------
We will return an empty object as the response in case of success:
.. code-block:: javascript
{}
Example
-------
.. code-block:: shell
curl -s -X POST "https://<cloudkitty_server_and_port_here>/v2/task/reprocesses" -H "Accept: application/json" -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: ${ACCESS_TOKEN_KEYSTONE}" -H "Content-Type: application/json" -d '{"reason": "Reprocessing test", "scope_ids": "<Some scope ID>", "start_reprocess_time": "2021-06-01 00:00:00+00:00", "end_reprocess_time": "2021-06-01 23:00:00+00:00"}'
The scope IDs can be retrieved via "/v2/scope" API, which is the API that one can use to list all scopes, and their status.
Retrieve a reprocessing task
============================
The endpoint used to retrieve a reprocessing task. By using this endpoint, one
can for instance check the progress of the reprocessing tasks.
.. rest_method:: GET `/v2/task/reprocesses/<path_scope_id>`
.. rest_parameters:: task/reprocessing_parameters.yml
- path_scope_id: path_scope_id
Status codes
------------
.. rest_status_code:: success http_status.yml
- 200
.. rest_status_code:: error http_status.yml
- 400
- 403
- 405
Response
--------
We will return the scope data in case of a valid scope ID:
.. code-block:: javascript
{"scope_id": "scope ID goes here",
"reason": "The reason for this reprocessing for this scope",
"start_reprocess_time": "2021-06-01 00:00:00+00:00",
"end_reprocess_time": "2021-07-01 00:00:00+00:00",
"current_reprocess_time": "2021-06-06 00:00:00+00:00"}
Example
-------
.. code-block:: shell
curl -s -X GET "https://<cloudkitty_server_and_port_here>/v2/task/reprocesses/<scope ID goes here>" -H "Accept: application/json" -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: ${ACCESS_TOKEN_KEYSTONE}"
Retrieve all reprocessing tasks
===============================
The endpoint used to retrieve all reprocessing tasks. By using this endpoint,
one can retrieve all reprocessing tasks scheduled for a scope.
.. rest_method:: GET `/v2/task/reprocesses`
.. rest_parameters:: task/reprocessing_parameters.yml
- scope_ids: scope_ids_query
- order: scope_ids_order_query
Status codes
------------
.. rest_status_code:: success http_status.yml
- 200
.. rest_status_code:: error http_status.yml
- 400
- 403
- 405
Response
--------
We will return the scope data in case of a valid scope ID:
.. code-block:: javascript
[{"scope_id": "scope ID goes here",
"reason": "The reason for this reprocessing for this scope",
"start_reprocess_time": "2021-06-01 00:00:00+00:00",
"end_reprocess_time": "2021-07-01 00:00:00+00:00",
"current_reprocess_time": "2021-06-06 00:00:00+00:00"}]
Example
-------
.. code-block:: shell
curl -s -X GET "https://<cloudkitty_server_and_port_here>/v2/task/reprocesses" -H "Accept: application/json" -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: ${ACCESS_TOKEN_KEYSTONE}"