更新时间:2024-10-08 GMT+08:00
分享

获取升级详情信息

功能介绍

由于升级过程时间较长,该接口可以展示当前升级(切换AZ)节点的各个阶段信息。

调用方法

请参见如何调用API

URI

GET /v1.0/{project_id}/clusters/{cluster_id}/upgrade/detail

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。获取方法请参见获取项目ID和名称

cluster_id

String

待升级的集群的ID。

表2 Query参数

参数

是否必选

参数类型

描述

start

Integer

偏移量。 偏移量为一个大于0小于终端节点服务总个数的整数, 表示从偏移量后面的终端节点服务开始查询。

limit

Integer

查询返回终端节点服务的连接列表限制每页个数,即每页返回的个数。

action_mode

String

查询升级行为。

  • 查询集群版本升级详情:不填写该参数。

  • 查询切换AZ详情:当前仅支持AZ_MIGRATION。

请求参数

响应参数

状态码: 200

表3 响应Body参数

参数

参数类型

描述

totalSize

Integer

下发执行接口次数。

detailList

Array of GetUpgradeDetailInfo objects

升级任务详情。

表4 GetUpgradeDetailInfo

参数

参数类型

描述

id

String

任务ID。

startTime

String

升级开始时间。

endTime

String

升级结束时间。

status

String

任务状态。

  • RUNNING:升级中。

  • SUCCESS:升级成功。

  • FAILED:升级失败。

  • PARTIAL_FAILED:部分升级失败。

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

当前正在升级节点任务详情。

表5 GetTargetImageIdDetail

参数

参数类型

描述

id

String

可以升级的目标镜像ID。

displayName

String

可以升级的目标镜像名称。

imageDesc

String

镜像描述信息。

datastoreType

String

镜像引擎类型。

datastoreVersion

String

镜像引擎版本。

priority

Integer

优先级。

表6 CurrentNodeDetail

参数

参数类型

描述

order

Integer

升级任务序号。

name

String

升级任务名称。

status

String

当前任务状态。

desc

String

当前任务描述。

beginTime

String

当前任务开始时间。

endTime

String

当前任务结束时间。

请求示例

  • 集群升级请求示例

    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

请求被拒绝访问。

返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。

错误码

请参见错误码

相关文档