Obtaining Details About a Cluster Upgrade or AZ Switchover
Function
By deploying a CSS cluster across multiple AZs, you can increase the cluster's availability, lower the likelihood of data loss, and minimize service downtime. You can deploy a cluster across two or three AZs within a region. The upgrade may take a long time. This API can be used to check phase-by-phase information during a cluster upgrade or AZ switchover.
Calling Method
For details, see Calling APIs.
URI
GET /v1.0/{project_id}/clusters/{cluster_id}/upgrade/detail
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Definition: Project ID. For details about how to obtain the project ID and name, see Obtaining the Project ID and Name. Constraints: N/A Value range: Project ID of the account. Default value: N/A |
cluster_id |
Yes |
String |
Definition: ID of the cluster to be upgraded. For details about how to obtain the cluster ID, see Obtaining the Cluster ID. Constraints: N/A Value range: Cluster ID. Default value: N/A |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
offset |
No |
Integer |
Definition: The start value of the query. The default value is 1, indicating that the query starts from the first task. Constraints: N/A Value range: 1-1000 Default value: 1 |
limit |
No |
Integer |
Definition: Number of AZs to be queried. The default value is 10, indicating that 10 AZs are queried at a time. Constraints: N/A Value range: 1-1000 Default value: 10 |
action_mode |
No |
String |
Definition: Query details about a cluster upgrade or AZ change operation. Constraints: N/A Value range:
Default value: UPGRADING |
Request Parameters
None
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
totalSize |
Integer |
Definition: Total number of cluster upgrade or AZ change tasks. Value range: N/A |
detailList |
Array of GetUpgradeDetailInfo objects |
Definition: Details of cluster upgrade or AZ change tasks. Value range: N/A |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Definition: ID of the upgrade or AZ change task. Value range: N/A |
startTime |
String |
Definition: Start time of an upgrade or AZ change task. Value range: N/A |
endTime |
String |
Definition: End time of an upgrade or AZ change task. Value range: N/A |
status |
String |
Definition: Status of an upgrade or AZ change task. Value range:
|
agencyName |
String |
Definition: Agency name. You can create an agency to allow CSS to call other cloud services. Value range: N/A |
imageInfo |
GetTargetImageIdDetail object |
Definition: Image details. Value range: N/A |
totalNodes |
String |
Definition: Names of all nodes that need to be upgraded or switched to another AZ. Value range: N/A |
completedNodes |
String |
Definition: Nodes where upgrade or AZ change tasks have been completed. Value range: N/A |
currentNodeName |
String |
Definition: Name of the node that is being upgraded or switched to another AZ. Value range: N/A |
executeTimes |
String |
Definition: Number of times the upgrade or AZ change task was retried. Value range: N/A |
migrateParam |
String |
Definition: This parameter is available only when action_mode is set to AZ_MIGRATION. It indicates the request parameter of the AZ change task. Value range: N/A |
finalAzInfoMap |
String |
Definition: This parameter is available only when action_mode is set to AZ_MIGRATION. It indicates the AZ details of each node after AZ switchover. Value range: N/A |
currentNodeDetail |
Array of CurrentNodeDetail objects |
Definition: Task details of the node that is being upgraded or switched to another AZ. Value range: N/A |
batchSize |
Integer |
Definition: Number of nodes where data is being migrated concurrently. Value range: N/A |
currentBatchNodes |
String |
Definition: Nodes where data is being migrated. Value range: N/A |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Definition: ID of an image that can be upgraded. Value range: N/A |
displayName |
String |
Definition: Name of an image that can be upgraded. Value range: N/A |
imageDesc |
String |
Definition: Image description. Value range: N/A |
datastoreType |
String |
Definition: Cluster engine type. Value range:
|
datastoreVersion |
String |
Definition: Image engine version. Value range: N/A |
priority |
Integer |
Definition: Priority of the target image. A larger value indicates a higher priority. Value range: N/A |
Parameter |
Type |
Description |
---|---|---|
order |
Integer |
Definition: SN of the upgrade or AZ switchover task. Value range: N/A |
name |
String |
Definition: Name of the upgrade or AZ switchover task. Value range: N/A |
status |
String |
Definition: Status of the upgrade or AZ change task of the current cluster. Value range:
|
desc |
String |
Definition: Description of the upgrade or AZ change task of the current cluster. Value range: N/A |
beginTime |
String |
Definition: Start time of the upgrade or AZ change task of the current cluster. Value range: N/A |
endTime |
String |
Definition: End time of the upgrade or AZ change task of the current cluster. Value range: N/A |
Example Requests
-
Query cluster upgrade details.
GET https://{Endpoint}/v1.0/{project_id}/clusters/ea244205-d641-45d9-9dcb-ab2236bcd07e/upgrade/detail
-
Query details about a cluster AZ change task.
GET https://{Endpoint}/v1.0/{project_id}/clusters/ea244205-d641-45d9-9dcb-ab2236bcd07e/upgrade/detail?action_mode=AZ_MIGRATION
Example Responses
Status code: 200
Request succeeded.
-
Example response for querying cluster upgrade details.
{ "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" : "" } ] } ] }
-
Example response for querying cluster AZ change details.
{ "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 Sample Code
The SDK sample code is as follows.
Java
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()); } } } |
Python
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) |
Go
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) } } |
More
For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.
Status Codes
Status Code |
Description |
---|---|
200 |
Request succeeded. |
400 |
Invalid request. The client should not repeat the request without modifications. |
403 |
Request rejected. The server has received the request and understood it, but the server refuses to respond to it. The client should not repeat the request without modifications. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot