根据云主机需求获取物理机资源的分配信息(GetHostResourceAllocation)
API请求
URLs
POST zstack/v1/hosts/{uuid}/resource-allocationHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"strategy": "continuous",
"scene": "normal",
"vcpu": 60
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST //localhost:8080/zstack/v1/hosts/21529457e42c30f0a9b2a137915a0b28/resource-allocation -d '{"params": {"strategy": "continuous", "scene": "normal", "vcpu": 60}}'参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 物理机UUID | 4.3.12 | |
| strategy | String | body(包含在params结构中) | 资源分配策略 | continuous(连续分配策略) | 4.3.12 |
| scene | String | body(包含在params结构中) | 场景类型 |
|
4.3.12 |
| vcpu | String | body(包含在params结构中) | 云主机需要分配的vCPU数量 | [1,512] | 4.3.12 |
API返回
返回示例
{
"name": "example",
"uuid": "f7bae73b9874344b8766dfcdda48ad6e",
"vCPUPin": [
{
"vCPU": "0",
"pCPU": "13"
},
{
"vCPU": "1",
"pCPU": "12"
},
{
"vCPU": "2",
"pCPU": "11"
},
{
"vCPU": "3",
"pCPU": "10"
},
{
"vCPU": "4",
"pCPU": "9"
},
{
"vCPU": "5",
"pCPU": "8"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.3.12 |
| name | String | 资源名称 | 4.3.12 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.3.12 |
| vCPUPin | array[json] | 此次分配推荐的vCPU pin信息,详情请见CPU Pin | 4.3.12 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.3.12 |
| description | String | 错误的概要描述 | 4.3.12 |
| details | String | 错误的详细信息 | 4.3.12 |
| elaboration | String | 保留字段,默认为null | 4.3.12 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.3.12 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.3.12 |
#CPU Pin
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vCPU | string | 云主机vCPU id | 4.3.12 |
| pCPU | string | 物理机pCPU id | 4.3.12 |
SDK示例
Java
SDK
GetHostResourceAllocationAction action = new GetHostResourceAllocationAction()
action.uuid = "ff6d905e75d63e18ab0a9fc2ac14951c"
action.scene = "normal"
action.strategy = "continuous"
action.vcpu = 60
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetHostResourceAllocationAction.Result res = action.call()Python
SDK
GetHostResourceAllocationAction action = new GetHostResourceAllocationAction()
action.uuid = "ff6d905e75d63e18ab0a9fc2ac14951c"
action.scene = "normal"
action.strategy = "continuous"
action.vcpu = 60
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetHostResourceAllocationAction.Result res = action.call()