添加资源池
功能介绍
该接口用于添加资源池。
调用方法
请参见如何调用API。
URI
PUT /v2/{project_id}/clusters/{cluster_id}/workload/queues
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
workload_queue |
是 |
WorkloadQueue object |
资源池对象。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
workload_queue_name |
是 |
String |
资源池名称。以小写字母开头,只包含小写字母、数字、下划线(_),长度3-28个字符。 |
logical_cluster_name |
否 |
String |
逻辑集群名称。非逻辑集群模式下该字段不填,逻辑集群模式下需指定逻辑集群名称。 |
workload_resource_item_list |
是 |
Array of WorkloadResource objects |
资源配置队列。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
resource_name |
是 |
String |
资源名称。
说明:
添加资源池时,所有的资源类型都要填写。其中cpu_limit 仅限在8.1.3以上集群支持。 |
resource_value |
是 |
Integer |
资源属性值。
|
响应参数
参数 |
参数类型 |
描述 |
---|---|---|
workload_res_code |
Integer |
返回状态。 |
workload_res_str |
String |
状态描述。 |
请求示例
添加资源池test11,选择共享配额设为12%,内存资源设为0(不限制),存储资源设为-1(不限制),查询并发设为10:
PUT https://{Endpoint}/v2/89cd04f168b84af6be287f71730fdb4b/clusters/e59d6b86-9072-46eb-a996-13f8b44994c1/workload/queues { "workload_queue": { "workload_queue_name": "test11", "workload_resource_item_list": [ { "resource_name": "memory", "resource_value": "0" }, { "resource_name": "tablespace", "resource_value": "-1" }, { "resource_name": "activestatements", "resource_value": "10" }, { "resource_name": "cpu_limit", "resource_value": 0 }, { "resource_name": "cpu_share", "resource_value": 12 } ], "logical_cluster_name": "" } }
响应示例
状态码: 200
添加资源池状态成功。
{ "workload_res_code" : 0, "workload_res_str" : "Success to create the resource pool." }
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
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.dws.v2.region.DwsRegion; import com.huaweicloud.sdk.dws.v2.*; import com.huaweicloud.sdk.dws.v2.model.*; import java.util.List; import java.util.ArrayList; public class AddWorkloadQueueSolution { 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"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); DwsClient client = DwsClient.newBuilder() .withCredential(auth) .withRegion(DwsRegion.valueOf("cn-north-4")) .build(); AddWorkloadQueueRequest request = new AddWorkloadQueueRequest(); WorkloadQueueReq body = new WorkloadQueueReq(); List<WorkloadResource> listWorkloadQueueWorkloadResourceItemList = new ArrayList<>(); listWorkloadQueueWorkloadResourceItemList.add( new WorkloadResource() .withResourceName("memory") .withResourceValue(0) ); listWorkloadQueueWorkloadResourceItemList.add( new WorkloadResource() .withResourceName("tablespace") .withResourceValue(-1) ); listWorkloadQueueWorkloadResourceItemList.add( new WorkloadResource() .withResourceName("activestatements") .withResourceValue(10) ); listWorkloadQueueWorkloadResourceItemList.add( new WorkloadResource() .withResourceName("cpu_limit") .withResourceValue(0) ); listWorkloadQueueWorkloadResourceItemList.add( new WorkloadResource() .withResourceName("cpu_share") .withResourceValue(12) ); WorkloadQueue workloadQueuebody = new WorkloadQueue(); workloadQueuebody.withWorkloadQueueName("test11") .withLogicalClusterName("") .withWorkloadResourceItemList(listWorkloadQueueWorkloadResourceItemList); body.withWorkloadQueue(workloadQueuebody); request.withBody(body); try { AddWorkloadQueueResponse response = client.addWorkloadQueue(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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkdws.v2.region.dws_region import DwsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkdws.v2 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.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = DwsClient.new_builder() \ .with_credentials(credentials) \ .with_region(DwsRegion.value_of("cn-north-4")) \ .build() try: request = AddWorkloadQueueRequest() listWorkloadResourceItemListWorkloadQueue = [ WorkloadResource( resource_name="memory", resource_value=0 ), WorkloadResource( resource_name="tablespace", resource_value=-1 ), WorkloadResource( resource_name="activestatements", resource_value=10 ), WorkloadResource( resource_name="cpu_limit", resource_value=0 ), WorkloadResource( resource_name="cpu_share", resource_value=12 ) ] workloadQueuebody = WorkloadQueue( workload_queue_name="test11", logical_cluster_name="", workload_resource_item_list=listWorkloadResourceItemListWorkloadQueue ) request.body = WorkloadQueueReq( workload_queue=workloadQueuebody ) response = client.add_workload_queue(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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" dws "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/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") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := dws.NewDwsClient( dws.DwsClientBuilder(). WithRegion(region.ValueOf("cn-north-4")). WithCredential(auth). Build()) request := &model.AddWorkloadQueueRequest{} var listWorkloadResourceItemListWorkloadQueue = []model.WorkloadResource{ { ResourceName: "memory", ResourceValue: int32(0), }, { ResourceName: "tablespace", ResourceValue: int32(-1), }, { ResourceName: "activestatements", ResourceValue: int32(10), }, { ResourceName: "cpu_limit", ResourceValue: int32(0), }, { ResourceName: "cpu_share", ResourceValue: int32(12), }, } logicalClusterNameWorkloadQueue:= "" workloadQueuebody := &model.WorkloadQueue{ WorkloadQueueName: "test11", LogicalClusterName: &logicalClusterNameWorkloadQueue, WorkloadResourceItemList: listWorkloadResourceItemListWorkloadQueue, } request.Body = &model.WorkloadQueueReq{ WorkloadQueue: workloadQueuebody, } response, err := client.AddWorkloadQueue(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
200 |
添加资源池成功。 |
400 |
请求错误。 |
401 |
鉴权失败。 |
403 |
没有操作权限。 |
404 |
找不到资源。 |
500 |
服务内部错误。 |
503 |
服务不可用。 |