
# 查询Spark异步操作状态 - ShowSparkOperatorState
#### 功能介绍
查询Spark异步操作的执行状态，用于获取异步操作（如重启集群等）的当前状态和执行结果。该接口为同步接口。
#### 接口约束
请按需间隔一段时间轮询状态。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0003.html)。
#### URI
POST /v2/workspaces/{workspace_id}/spark-operators/{operation_id}/show-state
表1路径参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| workspace_id | 是    | String | **参数解释**：工作空间ID，用于资源隔离。可在控制台的工作空间页面查看。 **约束限制**：不涉及。 **取值范围**：只能由英文字母、数字及中划线组成，且长度为32\~36个字符。 **默认取值**：不涉及。 |
| operation_id | 是    | String | **参数解释**：异步操作唯一ID，用于标识一次异步操作（如重启集群等）。 **约束限制**：不涉及。 **取值范围**：只能由英文字母、数字及中划线组成，长度为1\~64个字符。 **默认取值**：不涉及。    |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释**：用户Token。 **约束限制**：不涉及。 **取值范围**：长度不超过65534个字符。 **默认取值**：不涉及。 |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数            | 参数类型                                                                                                                                                                                                                                                                                                                             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| status        | String                                                                                                                                                                                                                                                                                                                           | **参数解释**：操作状态，用于标识异步操作的当前执行状态。 **取值范围**： - RUNNING：运行中。   - FAILED：失败。   - SUCCESS：成功。    |
| operator_info | One of: - [SqlRestartCluster] object    | **参数解释**：操作详情描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| message       | String                                                                                                                                                                                                                                                                                                                           | **参数解释**：操作描述信息，包含操作状态描述或失败时的错误信息。 **取值范围**：长度为0\~1024个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| create_time   | Long                                                                                                                                                                                                                                                                                                                             | **参数解释**：操作创建时间，用于记录操作提交的时间。 **取值范围**：Unix时间戳，单位为毫秒，取值范围为0\~9223372036854775807。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| end_time      | Long                                                                                                                                                                                                                                                                                                                             | **参数解释**：操作结束时间，用于记录操作完成的时间。 **取值范围**：Unix时间戳，单位为毫秒，取值范围为0\~9223372036854775807。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表4SqlRestartCluster 
| 参数               | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| endpoint_name    | String | **参数解释**：SparkSql端点名称。 **取值范围**：只能由小写字母、数字及中划线组成，必须以小写字母开头，以小写字母或数字结尾，且长度为1\~63个字符。                                                                                                                                                                                                                                                                                                                                                                                                        |
| restart_strategy | String | **参数解释**：集群重启策略，用于指定重启方式。 **取值范围**： - FORCE：强制重启，不等待正在运行的作业完成。   - GRACEFUL：优雅重启，等待所有正在运行的作业完成后再重启。    |
   
**状态码：400**
表5响应Body参数 
| 参数           | 参数类型   | 描述                                                                                         |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为0\~64个字符。  |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为0\~512个字符。 |
| solution_msg | String | **参数解释**：解决方案描述。 **取值范围**：长度为0\~4096个字符。         |
   
**状态码：401**
表6响应Body参数 
| 参数           | 参数类型   | 描述                                                                                         |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为0\~64个字符。  |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为0\~512个字符。 |
| solution_msg | String | **参数解释**：解决方案描述。 **取值范围**：长度为0\~4096个字符。         |
   
**状态码：403**
表7响应Body参数 
| 参数           | 参数类型   | 描述                                                                                         |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为0\~64个字符。  |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为0\~512个字符。 |
| solution_msg | String | **参数解释**：解决方案描述。 **取值范围**：长度为0\~4096个字符。         |
   
**状态码：500**
表8响应Body参数 
| 参数 | 参数类型   | 描述    |
|:---|:---|:---|
| -  | String | 错误信息。 |
   
#### 请求示例
查询Spark异步操作状态，用于获取异步操作（如重启集群等）的当前状态和执行结果。
```
POST /v2/workspaces/{workspace_id}/spark-operators/{operation_id}/show-state
```
#### 响应示例
**状态码：200**
异步下发重启集群成功。
```
{
  "status" : "SUCCESS",
  "message" : "Operation completed successfully",
  "create_time" : 1781494373844,
  "end_time" : 1781494381804,
  "operator_info" : {
    "type" : "RESTART_CLUSTER",
    "endpoint_name" : "spark-sql-cwk",
    "restart_strategy" : "FORCE"
  }
}
```
**状态码：400**
请求参数错误。
```
{
  "error_code" : "AIDataLake.01011001",
  "error_msg" : "Invalid parameter operation_id",
  "solution_msg" : "Please check the input parameters according to the documentation(operation_id for show operator state)."
}
```
**状态码：401**
认证失败。
```
{
  "error_code" : "AIDataLake.01011003",
  "error_msg" : "auth token not exists in header",
  "solution_msg" : "Please check if auth token is included in the request header."
}
```
**状态码：403**
权限不足。
```
{
  "error_code" : "AIDataLake.01011005",
  "error_msg" : "current account has no permission",
  "solution_msg" : "Please connect administrators to add permission."
}
```
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | 异步下发重启集群成功。 |
| 400 | 请求参数错误。     |
| 401 | 认证失败。       |
| 403 | 权限不足。       |
| 500 | 服务内部错误。     |
   
