--- Title: Actions requests alwaysopen: false categories: - docs - operate - rs description: Actions requests headerRange: '[1-2]' hideListLinks: true linkTitle: actions weight: $weight url: '/operate/rs/7.8/references/rest-api/requests/actions/' --- | Method | Path | Description | |--------|------|-------------| | [GET](#get-all-actions) | `/v1/actions` | Get all actions | | [GET](#get-action) | `/v1/actions/{uid}` | Get a single action | ## Get all actions {#get-all-actions} ``` GET /v1/actions ``` Get the status of all running, pending, or completed actions on all clusters, nodes, and databases. This API tracks long-lived API requests that return either a `task_id` or an `action_uid`. #### Required permissions | Permission name | |-----------------| | [view_status_of_cluster_action]({{< relref "/operate/rs/7.8/references/rest-api/permissions#view_status_of_cluster_action" >}}) | ### Request {#get-all-request} #### Example HTTP request ``` GET /v1/actions ``` ### Response {#get-all-response} Returns a JSON array of [action objects]({{< relref "/operate/rs/7.8/references/rest-api/objects/action" >}}), which represent tasks, and an array of [state-machine objects]({{< relref "/operate/rs/7.8/references/rest-api/objects/state-machine" >}}). | Field | Type/Value | Description | |-------|------------|-------------| | action_uid | string | The action's globally unique identifier | | name | string | Name of the running or failed state machine | | progress | float (range: 0-100) | Percent of completed steps for the action | | status | "pending"
"active"
"completed"
"failed" | The action's status | | node_uid | string | UID of the node where the operation runs (optional) | | object_name | string | The object that the action runs on (optional) | | state | string | The current state of the state machine (optional) | | pending_ops | JSON object | List of operations that are waiting to run (optional)
{{}}"pending_ops": {
"3": {
"heartbeat": integer,
"snapshot": { ... },
"last_sample_time": integer,
"op_name": string,
"status_code": string,
"status_description": string,
"progress": float
}
}{{
}}
`pending_ops` is a map where the key is the `shard_id`, and the value is a map that can include the following optional fields:
**heartbeat**: The time, in seconds since the Unix epoch, since the last change in the progress of the operation.
**snapshot**: A map of properties stored by the operation that are needed to run.
**last_sample_time**: The time, in seconds since the Unix epoch, when the last snapshot of the operation was taken.
**op_name**: The name of the operation from the state machine that is running.
**status_code**: The code for the operation's current status.
**status_description**: The operation's current status.
**progress**: The operation's progress in percentage (1 to 100). | Regardless of an action’s source, each action in the response contains the following attributes: `name`, `action_uid`, `status`, and `progress`. #### Example JSON body ```json { "actions": [ { "action_uid": "159ca2f8-7bf3-4cda-97e8-4eb560665c28", "name": "retry_bdb", "node_uid": "2", "progress": "100", "status": "completed", "task_id": "159ca2f8-7bf3-4cda-97e8-4eb560665c28" }, { "action_uid": "661697c5-c747-41bd-ab81-ffc8fd13c494", "name": "retry_bdb", "node_uid": "1", "progress": "100", "status": "completed", "task_id": "661697c5-c747-41bd-ab81-ffc8fd13c494" } ], "state-machines": [ { "action_uid": "a10586b1-60bc-428e-9bc6-392eb5f0d8ae", "heartbeat": 1650378874, "name": "SMCreateBDB", "object_name": "bdb:1", "progress": 100, "status": "completed" } ] } ``` ### Status codes {#get-all-status-codes} | Code | Description | |------|-------------| | [200 OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) | No error, response provides info about an ongoing action | | [404 Not Found](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5) | Action does not exist (i.e. not currently running and no available status of last run).| ## Get a specific action {#get-action} ``` GET /v1/actions/{uid} ``` Get the status of a specific action. #### Required permissions | Permission name | |-----------------| | [view_status_of_cluster_action]({{< relref "/operate/rs/7.8/references/rest-api/permissions#view_status_of_cluster_action" >}}) | ### Request {#get-request} #### Example HTTP request ``` GET /v1/actions/{uid} ``` #### URL parameters | Field | Type | Description | |-------|------|-------------| | uid | string | The action_uid to check | ### Response {#get-response} Returns an [action object]({{< relref "/operate/rs/7.8/references/rest-api/objects/action" >}}). | Field | Type/Value | Description | |-------|------------|-------------| | action_uid | string | The action's globally unique identifier | | name | string | Name of the running or failed state machine | | progress | float (range: 0-100) | Percent of completed steps for the action | | status | "pending"
"active"
"completed"
"failed" | The action's status | | node_uid | string | UID of the node where the operation runs (optional) | | object_name | string | The object that the action runs on (optional) | | state | string | The current state of the state machine (optional) | | pending_ops | JSON object | List of operations that are waiting to run (optional)
{{}}"pending_ops": {
"3": {
"heartbeat": integer,
"snapshot": { ... },
"last_sample_time": integer,
"op_name": string,
"status_code": string,
"status_description": string,
"progress": float
}
}{{
}}
`pending_ops` is a map where the key is the `shard_id`, and the value is a map that can include the following optional fields:
**heartbeat**: The time, in seconds since the Unix epoch, since the last change in the progress of the operation.
**snapshot**: A map of properties stored by the operation that are needed to run.
**last_sample_time**: The time, in seconds since the Unix epoch, when the last snapshot of the operation was taken.
**op_name**: The name of the operation from the state machine that is running.
**status_code**: The code for the operation's current status.
**status_description**: The operation's current status.
**progress**: The operation's progress in percentage (1 to 100). | Regardless of an action’s source, each action contains the following attributes: `name`, `action_uid`, `status`, and `progress`. #### Example JSON body ```json { "action_uid": "159ca2f8-7bf3-4cda-97e8-4eb560665c28", "name": "retry_bdb", "node_uid": "2", "progress": "100", "status": "completed", "task_id": "159ca2f8-7bf3-4cda-97e8-4eb560665c28" } ``` ### Status codes {#get-status-codes} | Code | Description | |------|-------------| | [200 OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) | No error, response provides info about an ongoing action | | [404 Not Found](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5) | Action does not exist (i.e. not currently running and no available status of last run) |