获取升级详情信息
功能介绍
由于升级过程时间较长,该接口可以展示当前升级(切换AZ)节点的各个阶段信息。
调用方法
请参见如何调用API。
URI
GET /v1.0/{project_id}/clusters/{cluster_id}/upgrade/detail
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID。获取方法请参见获取项目ID和名称。 |
cluster_id |
是 |
String |
待升级的集群的ID。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
start |
否 |
Integer |
偏移量。 偏移量为一个大于0小于终端节点服务总个数的整数, 表示从偏移量后面的终端节点服务开始查询。 |
limit |
否 |
Integer |
查询返回终端节点服务的连接列表限制每页个数,即每页返回的个数。 |
action_mode |
否 |
String |
查询升级行为。
|
请求参数
无
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
totalSize |
Integer |
下发执行接口次数。 |
detailList |
Array of GetUpgradeDetailInfo objects |
升级任务详情。 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
任务ID。 |
startTime |
String |
升级开始时间。 |
endTime |
String |
升级结束时间。 |
status |
String |
任务状态。
|
agencyName |
String |
委托名称,委托给CSS,允许CSS调用您的其他云服务。 |
imageInfo |
GetTargetImageIdDetail object |
镜像详情信息。 |
totalNodes |
String |
所有需要升级的节点名称集合。 |
completedNodes |
String |
所有升级完成的节点名称集合。 |
currentNodeName |
String |
当前正在升级的节点名称。 |
executeTimes |
String |
重试次数。 |
migrateParam |
String |
集群当前升级的行为。当有query参数时显示该返回值。 |
finalAzInfoMap |
String |
集群升级预期结果。当有query参数时显示该返回值。 |
currentNodeDetail |
Array of CurrentNodeDetail objects |
当前正在升级节点任务详情。 |
请求示例
-
集群升级请求示例
GET /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代码示例。
状态码
状态码 |
描述 |
---|---|
200 |
请求已成功。 |
400 |
非法请求。 建议直接修改该请求,不要重试该请求。 |
403 |
请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 |
错误码
请参见错误码。