Updated on 2024-04-29 GMT+08:00

Querying the Cluster List

Function

This API is used to query the cluster list.

Calling Method

For details, see Calling APIs.

URI

GET /v1.1/{project_id}/clusters

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain the project ID, see Project ID and Account ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token. It can be obtained by calling the IAM API (value of X-Subject-Token in the response header).

Response Parameters

Status code: 200

Table 3 Response body parameters

Parameter

Type

Description

clusters

Array of clusters objects

Cluster list. For details, see the descriptions of clusters parameters.

Table 4 clusters

Parameter

Type

Description

customerConfig

CustomerConfig object

User configuration

datastore

Datastore object

CDM information

instances

Array of ClusterDetailInstance objects

Cluster node information. For details, see the descriptions of instances parameters.

azName

String

AZ name

dbuser

String

Database user

flavorName

String

Flavor name

recentEvent

Integer

Number of events

isAutoOff

Boolean

Auto shutdown

isScheduleBootOff

Boolean

Whether to enable scheduled startup/shutdown. The scheduled startup/shutdown and auto shutdown functions cannot be enabled at the same time.

clusterMode

String

Cluster mode: sharding

namespace

String

Namespace

task

ClusterTask object

Task information

publicEndpoint

String

EIP bound to the cluster

actionProgress

ActionProgress object

Cluster operation progress, which consists of a key and a value. The key indicates an ongoing task, and the value indicates the progress of the ongoing task. An example is "action_progress":{"SNAPSHOTTING":"16%"}.

created

String

Cluster creation time in ISO 8601 format: YYYY-MM-DDThh:mm:ssZ

bakExpectedStartTime

String

Start time

bakKeepDay

Integer

Retention duration

name

String

Cluster name

statusDetail

String

Cluster status: normal

id

String

Cluster ID

isFrozen

String

Whether the cluster is frozen. The value can be 0 (not frozen) or 1 (frozen).

updated

String

Cluster update time in ISO 8601 format: YYYY-MM-DDThh:mm:ssZ

status

String

Cluster status

  • 100: creating

  • 200: normal

  • 300: failed

  • 303: failed to be created

  • 500: restarting

  • 800: frozen

  • 900: stopped

  • 910: stopping

  • 920: starting

failedReasons

FailedReasons object

Failure cause. If this parameter is left empty, the cluster is in normal state.

Table 5 CustomerConfig

Parameter

Type

Description

failureRemind

String

Failure notification

clusterName

String

Cluster type

serviceProvider

String

Service provisioning

localDisk

String

Whether the disk is a local disk

ssl

String

Whether to enable SSL

createFrom

String

Source

resourceId

String

Resource ID

flavorType

String

Flavor type

workSpaceId

String

Workspace ID

trial

String

Trial

Table 6 Datastore

Parameter

Type

Description

type

String

Type. Generally, the value is cdm.

version

String

Cluster version

Table 7 ClusterDetailInstance

Parameter

Type

Description

flavor

flavor object

VM flavor of a node. For details, see the descriptions of flavor parameters.

volume

volume object

Disk information of a node. For details, see the descriptions of volume parameters.

status

String

Node status

  • 100: creating

  • 200: normal

  • 300: failed

  • 303: failed to be created

  • 400: deleted

  • 800: frozen

actions

Array of strings

Node operation status

  • REBOOTING: restarting

  • RESTORING: restoring

  • REBOOT_FAILURE: failed to restart

type

String

Node type. Currently, only cdm is available.

id

String

Node VM ID

name

String

Name of the VM on the node

isFrozen

String

Whether the node is frozen. The value can be 0 (not frozen) or 1 (frozen).

components

String

Component

config_status

String

Node configuration status. The value is null when the cluster list is queried.

  • In-Sync: The configuration has been synchronized.

  • Applying: The configuration is in progress.

  • Sync-Failure: The configuration fails.

role

String

Instance role

group

String

Group

links

Array of ClusterLinks objects

Link information

paramsGroupId

String

Group ID

publicIp

String

Public IP address

manageIp

String

Management IP address

trafficIp

String

Traffic IP address

shard_id

String

Slice ID

manage_fix_ip

String

Management fix IP address

private_ip

String

Private IP address

internal_ip

String

Internal IP address

resource

Array of Resource objects

Resource information (null is returned for querying the cluster list)

Table 8 flavor

Parameter

Type

Description

id

String

VM flavor ID

links

Array of ClusterLinks objects

Link information

Table 9 volume

Parameter

Type

Description

type

String

Type of disks on the node. Only local disks are supported.

size

Long

Size of the disk on the node (GB)

Table 11 Resource

Parameter

Type

Description

resource_id

String

Resource ID

resource_type

String

Resource type: server

Table 12 ClusterTask

Parameter

Type

Description

description

String

Task description

id

String

Task ID

name

String

Task name

Table 13 ActionProgress

Parameter

Type

Description

CREATING

String

Cluster creation progress, for example, 29%

GROWING

String

Cluster expansion progress, for example, 29%

RESTORING

String

Cluster restoration progress, for example, 29%

SNAPSHOTTING

String

Cluster snapshotting progress, for example, 29%

REPAIRING

String

Cluster repairing progress, for example, 29%

Table 14 FailedReasons

Parameter

Type

Description

CREATE_FAILED

CREATE_FAILED object

Cause of the cluster creation failure

Table 15 CREATE_FAILED

Parameter

Type

Description

errorCode

String

Error code

errorMsg

String

Failure cause

Example Requests

GET /v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters

Example Responses

Status code: 200

ok

{
  "clusters" : [ {
    "publicEndpoint" : "49.xx.xx.10",
    "actionProgress" : { },
    "created" : "2018-09-05T08:38:25",
    "name" : "cdm-c018",
    "statusDetail" : "Normal",
    "id" : "bae65496-643e-47ca-84af-948672de7eeb",
    "isFrozen" : "0",
    "updated" : "2018-09-05T08:38:25",
    "status" : "200"
  } ]
}

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
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.cdm.v1.region.cdmRegion;
import com.huaweicloud.sdk.cdm.v1.*;
import com.huaweicloud.sdk.cdm.v1.model.*;


public class ListClustersSolution {

    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);

        cdmClient client = cdmClient.newBuilder()
                .withCredential(auth)
                .withRegion(cdmRegion.valueOf("<YOUR REGION>"))
                .build();
        ListClustersRequest request = new ListClustersRequest();
        try {
            ListClustersResponse response = client.listClusters(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
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcdm.v1.region.cdm_region import cdmRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcdm.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 = __import__('os').getenv("CLOUD_SDK_AK")
    sk = __import__('os').getenv("CLOUD_SDK_SK")
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId) \

    client = cdmClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(cdmRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListClustersRequest()
        response = client.list_clusters(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
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    cdm "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cdm/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cdm/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cdm/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 := cdm.NewcdmClient(
        cdm.cdmClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListClustersRequest{}
	response, err := client.ListClusters(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

ok

400

Request error.

401

Authentication failed.

403

You do not have required permissions to perform this operation.

404

The requested resource was not found.

500

An internal service error occurred. For details, see error codes.

503

Service unavailable.

Error Codes

See Error Codes.