获取集群升级或切换AZ的详情信息
功能介绍
由于升级过程时间较长,该接口可以展示当前集群升级或者切换AZ时,节点的各个阶段信息。
调用方法
请参见如何调用API。
URI
GET /v1.0/{project_id}/clusters/{cluster_id}/upgrade/detail
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数解释: 项目ID。获取方法请参见获取项目ID和名称。 约束限制: 不涉及 取值范围: 获取方法请参见获取项目ID和名称。 默认取值: 不涉及 |
cluster_id |
是 |
String |
参数解释: 待升级的集群的ID。 约束限制: 不涉及 取值范围: 获取方法请参见获取集群ID。 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
start |
否 |
Integer |
参数解释: 指定查询起始值,默认值为1,即从第1个任务开始查询。 约束限制: 不涉及 取值范围: 1-1000 默认取值: 1 |
limit |
否 |
Integer |
参数解释: 指定查询个数,默认值为10,即一次查询10个任务信息。 约束限制: 不涉及 取值范围: 1-1000 默认取值: 10 |
action_mode |
否 |
String |
参数解释: 查询集群升级详情或者切换AZ详情。 约束限制: 不涉及 取值范围:
|
请求参数
无
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
totalSize |
Integer |
参数解释: 任务总数。 |
detailList |
Array of GetUpgradeDetailInfo objects |
参数解释: 升级或者切换AZ任务详情。 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
参数解释: 任务ID。 |
startTime |
String |
参数解释: 任务开始时间。 |
endTime |
String |
参数解释: 任务结束时间。 |
status |
String |
参数解释: 任务状态。 取值范围:
|
agencyName |
String |
参数解释: 委托名称,委托给CSS,允许CSS调用您的其他云服务。 |
imageInfo |
GetTargetImageIdDetail object |
参数解释: 镜像详情信息。 |
totalNodes |
String |
参数解释: 所有需要升级或者切换AZ的节点名称集合。 |
completedNodes |
String |
参数解释: 所有升级或者切换AZ完成的节点名称集合。 |
currentNodeName |
String |
参数解释: 当前正在升级或者切换AZ的节点名称。 |
executeTimes |
String |
参数解释: 重试次数。 |
migrateParam |
String |
参数解释: 当action_mode为AZ_MIGRATION才有该参数,表示集群切换AZ任务的请求参数。 |
finalAzInfoMap |
String |
参数解释: 当action_mode为AZ_MIGRATION才有该参数,表示集群切换AZ后,各节点对应的AZ详情。 |
currentNodeDetail |
Array of CurrentNodeDetail objects |
参数解释: 当前正在升级或切换可用区的节点任务详情。 |
请求示例
-
查询集群升级详情。
GET https://{Endpoint}/v1.0/6204a5bd270343b5885144cf9c8c158d/clusters/ea244205-d641-45d9-9dcb-ab2236bcd07e/upgrade/detail
-
集群升级请求示例
GET /v1.0/6204a5bd270343b5885144cf9c8c158d/clusters/ea244205-d641-45d9-9dcb-ab2236bcd07e/upgrade/detail?action_mode=AZ_MIGRATION
响应示例
状态码: 200
请求已成功。
-
集群镜像升级响应示例。
{ "totalSize" : 1, "detailList" : [ { "id" : "b7ac4c5b-3bda-4feb-a303-eb80f4bce986", "startTime" : "2023-01-05T02:23:39", "endTime" : "", "status" : "RUNNING", "agencyName" : "css_test_agency", "imageInfo" : { "id" : "439b5d30-5968-45df-b088-d030a858522d", "displayName" : "7.10.2_22.5.1_1230", "imageDesc" : "The latest image of version 7.10.2 will be officially released on December 30, 2022. the stability of the cluster has been optimized. It is recommended that you upgrade to this version.", "datastoreType" : "elasticsearch", "datastoreVersion" : "7.10.2", "priority" : 16 }, "totalNodes" : "css-test-ess-esn-1-1,css-test-ess-esn-2-1,css-test-ess-esn-3-1", "completedNodes" : "", "currentNodeName" : "css-test-ess-esn-1-1", "executeTimes" : "1", "currentNodeDetail" : [ { "order" : 0, "name" : "Data migration", "status" : "SUCCESS", "desc" : "Data is migrated from a node to other nodes in the cluster by running the exclude command.", "beginTime" : "2023-01-05T02:23:42", "endTime" : "2023-01-05T02:29:51" }, { "order" : 12, "name" : "Task status update", "status" : "WAITING", "desc" : "The cluster task status is refreshed. If there are no nodes to be replaced, the task is marked as completed. Otherwise, another node starts to be replaced.", "beginTime" : "", "endTime" : "" } ] } ] }
-
切换AZ响应示例。
{ "totalSize" : 1, "detailList" : [ { "id" : "8ebe958b-b8c6-4939-b5a7-85aee9468888", "startTime" : "2022-12-29T08:32:29", "endTime" : "", "status" : "RUNNING", "agencyName" : "css_test_agency", "totalNodes" : "css-test-ess-esn-2-1,css-test-ess-esn-1-1,css-test-ess-esn-3-1", "completedNodes" : "css-test-ess-esn-2-1", "currentNodeName" : "css-test-ess-esn-1-1", "executeTimes" : "1", "migrateParam" : "{\"instType\":\"ess\",\"migrateType\":\"az_migrate\",\"sourceAz\":\"cn-north-4a\",\"targetAz\":\"cn-north-4c\"}", "finalAzInfoMap" : "{\"cn-north-4c\":\"css-test-ess-esn-2-1,css-test-ess-esn-1-1,css-test-ess-esn-3-1\"}", "currentNodeDetail" : [ { "order" : 0, "name" : "Data migration", "status" : "SUCCESS", "desc" : "Data is migrated from a node to other nodes in the cluster by running the exclude command.", "beginTime" : "2022-12-29T08:41:05", "endTime" : "2022-12-29T08:41:23" }, { "order" : 12, "name" : "Task status update", "status" : "RUNNING", "desc" : "The cluster task status is refreshed. If there are no nodes to be replaced, the task is marked as completed. Otherwise, another node starts to be replaced.", "beginTime" : "2023-01-04T06:53:42", "endTime" : "" } ] } ] }
SDK代码示例
SDK代码示例如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.css.v1.region.CssRegion; import com.huaweicloud.sdk.css.v1.*; import com.huaweicloud.sdk.css.v1.model.*; public class UpgradeDetailSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); CssClient client = CssClient.newBuilder() .withCredential(auth) .withRegion(CssRegion.valueOf("<YOUR REGION>")) .build(); UpgradeDetailRequest request = new UpgradeDetailRequest(); request.withClusterId("{cluster_id}"); try { UpgradeDetailResponse response = client.upgradeDetail(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcss.v1.region.css_region import CssRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcss.v1 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = CssClient.new_builder() \ .with_credentials(credentials) \ .with_region(CssRegion.value_of("<YOUR REGION>")) \ .build() try: request = UpgradeDetailRequest() request.cluster_id = "{cluster_id}" response = client.upgrade_detail(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" css "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := css.NewCssClient( css.CssClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.UpgradeDetailRequest{} request.ClusterId = "{cluster_id}" response, err := client.UpgradeDetail(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.css.v1.region.CssRegion; import com.huaweicloud.sdk.css.v1.*; import com.huaweicloud.sdk.css.v1.model.*; public class UpgradeDetailSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); CssClient client = CssClient.newBuilder() .withCredential(auth) .withRegion(CssRegion.valueOf("<YOUR REGION>")) .build(); UpgradeDetailRequest request = new UpgradeDetailRequest(); request.withClusterId("{cluster_id}"); try { UpgradeDetailResponse response = client.upgradeDetail(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcss.v1.region.css_region import CssRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcss.v1 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = CssClient.new_builder() \ .with_credentials(credentials) \ .with_region(CssRegion.value_of("<YOUR REGION>")) \ .build() try: request = UpgradeDetailRequest() request.cluster_id = "{cluster_id}" response = client.upgrade_detail(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" css "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := css.NewCssClient( css.CssClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.UpgradeDetailRequest{} request.ClusterId = "{cluster_id}" response, err := client.UpgradeDetail(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
200 |
请求已成功。 |
400 |
非法请求。 建议直接修改该请求,不要重试该请求。 |
403 |
请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 |
错误码
请参见错误码。