虚拟机调度策略相关接口
新建主机调度组(CreateHostSchedulingRuleGroup)
API请求
URLs
POST zstack/v1/hostSchedulingRuleGroupHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "test",
"description": "test desc",
"zoneUuid": "4e083eaa197835778fa94d9bfcf012d6",
"clusterUuid": "e7127ff00fbb3ed3a9755c37447b7bf8"
},
"systemTags": [],
"userTags": []
}
Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"test","description":"test desc","zoneUuid":"4e083eaa197835778fa94d9bfcf012d6","clusterUuid":"e7127ff00fbb3ed3a9755c37447b7bf8"}}' http://localhost:8080/zstack/v1/hostSchedulingRuleGroup参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 4.6.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 4.6.0 | |
| zoneUuid | String | body(包含在params结构中) | 数据中心UUID | 4.6.0 | |
| clusterUuid | String | body(包含在params结构中) | 集群UUID | 4.6.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 4.6.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
返回示例
{
"inventory": {
"name": "test",
"description": "test desc",
"zoneUuid": "1eca7fc3081a3750b55930b194d82991",
"clusterUuid": "e73c4aa3e6a03ee3bb4f325ab3b395b1"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.6.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.6.0 |
| inventory | AffinityGroupInventory | 详情参考inventory | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.6.0 |
| description | String | 错误的概要描述 | 4.6.0 |
| details | String | 错误的详细信息 | 4.6.0 |
| elaboration | String | 保留字段,默认为null | 4.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.6.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| zoneUuid | String | 数据中心UUID | 4.6.0 |
| clusterUuid | String | 集群UUID | 4.6.0 |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
SDK示例
Java
SDK
CreateHostSchedulingRuleGroupAction action = new CreateHostSchedulingRuleGroupAction();
action.name = "test";
action.description = "test desc";
action.zoneUuid = "4e083eaa197835778fa94d9bfcf012d6";
action.clusterUuid = "e7127ff00fbb3ed3a9755c37447b7bf8";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateHostSchedulingRuleGroupAction.Result res = action.call();Python
SDK
CreateHostSchedulingRuleGroupAction action = CreateHostSchedulingRuleGroupAction()
action.name = "test"
action.description = "test desc"
action.zoneUuid = "4e083eaa197835778fa94d9bfcf012d6"
action.clusterUuid = "e7127ff00fbb3ed3a9755c37447b7bf8"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateHostSchedulingRuleGroupAction.Result res = action.call()删除主机调度组(DeleteHostSchedulingRuleGroup)
API请求
URLs
DELETE zstack/v1/hostSchedulingRuleGroup/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/hostSchedulingRuleGroup/8e02276953ab35e2b591505b0f3167c9参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DeleteHostSchedulingRuleGroupAction action = new DeleteHostSchedulingRuleGroupAction();
action.uuid = "8e02276953ab35e2b591505b0f3167c9";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteHostSchedulingRuleGroupAction.Result res = action.call();Python
SDK
DeleteHostSchedulingRuleGroupAction action = DeleteHostSchedulingRuleGroupAction()
action.uuid = "8e02276953ab35e2b591505b0f3167c9"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteHostSchedulingRuleGroupAction.Result res = action.call()更新主机调度组(UpdateHostSchedulingRuleGroup)
API请求
URLs
PUT zstack/v1/hostSchedulingRuleGroup/{uuid}Headers
Authorization: OAuth the-session-uuidBody
{
"updateHostSchedulingRuleGroup": {
"name": "test",
"description": "desc"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateHostSchedulingRuleGroup":{"name":"test","description":"desc"}}' http://localhost:8080/zstack/v1/hostSchedulingRuleGroup/7127bed5295f3a3c94d9b3dbc307450d参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.6.0 | |
| name (可选) | String | body(包含在updateHostSchedulingRuleGroup结构中) | 资源名称 | 4.6.0 | |
| description (可选) | String | body(包含在updateHostSchedulingRuleGroup结构中) | 资源的详细描述 | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
返回示例
{
"inventory": {
"uuid": "b96c8635e48435eca42d3cbfca25704f",
"name": "test",
"description": "desc",
"zoneUuid": "afcd30e31ebb38a8b0a2f013fce73f7a",
"clusterUuid": "ae9b2f516fd43913b1d458ebe5f7222d"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.6.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.6.0 |
| inventory | AffinityGroupInventory | 详情参考inventory | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.6.0 |
| description | String | 错误的概要描述 | 4.6.0 |
| details | String | 错误的详细信息 | 4.6.0 |
| elaboration | String | 保留字段,默认为null | 4.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.6.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| zoneUuid | String | 数据中心UUID | 4.6.0 |
| clusterUuid | String | 集群UUID | 4.6.0 |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
SDK示例
Java
SDK
UpdateHostSchedulingRuleGroupAction action = new UpdateHostSchedulingRuleGroupAction();
action.uuid = "7127bed5295f3a3c94d9b3dbc307450d";
action.name = "test";
action.description = "desc";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateHostSchedulingRuleGroupAction.Result res = action.call();Python
SDK
UpdateHostSchedulingRuleGroupAction action = UpdateHostSchedulingRuleGroupAction()
action.uuid = "7127bed5295f3a3c94d9b3dbc307450d"
action.name = "test"
action.description = "desc"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateHostSchedulingRuleGroupAction.Result res = action.call()添加主机到主机调度组(AddHostToHostSchedulingRuleGroup)
API请求
URLs
POST zstack/v1/hostSchedulingRuleGroup/{hostGroupUuid}/host/{hostUuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST http://localhost:8080/zstack/v1/hostSchedulingRuleGroup/801af67a7f1f3610a76e834e45aebf5b/host/602ca3d56dca40fcb04944dbaa9861ee参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| hostGroupUuid | String | url | 主机调度组UUID | 4.6.0 | |
| hostUuid | String | body | 主机UUID | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
AddHostTohostSchedulingRuleGroupAction action = new AddHostTohostSchedulingRuleGroupAction();
action.hostGroupUuid = "663fb7c5b74f3bc9bf629ca3523fb8cc";
action.hostUuid = "64d7de2d3eb431c99998292d1ed5411e";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddHostTohostSchedulingRuleGroupAction.Result res = action.call();Python
SDK
AddHostTohostSchedulingRuleGroupAction action = AddHostTohostSchedulingRuleGroupAction()
action.hostGroupUuid = "663fb7c5b74f3bc9bf629ca3523fb8cc"
action.hostUuid = "64d7de2d3eb431c99998292d1ed5411e"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddHostTohostSchedulingRuleGroupAction.Result res = action.call()从主机调度组解绑主机(DetachHostFromHostSchedulingRuleGroup)
API请求
URLs
DELETE zstack/v1/hostSchedulingRuleGroup/{hostGroupUuid}/hostHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/hostSchedulingRuleGroup/801af67a7f1f3610a76e834e45aebf5b/host参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| hostGroupUuid | String | url | 主机调度组UUID | 4.6.0 | |
| hostUuid | String | body | 主机UUID | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DetachHostFromHostSchedulingRuleGroupAction action = new DetachHostFromHostSchedulingRuleGroupAction();
action.hostGroupUuid = "801af67a7f1f3610a76e834e45aebf5b";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DetachHostFromHostSchedulingRuleGroupAction.Result res = action.call();Python
SDK
DetachHostFromHostSchedulingRuleGroupAction action = DetachHostFromHostSchedulingRuleGroupAction()
action.hostGroupUuid = "801af67a7f1f3610a76e834e45aebf5b"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DetachHostFromHostSchedulingRuleGroupAction.Result res = action.call()新建虚拟机调度组(CreateVmSchedulingRuleGroup)
API请求
URLs
POST zstack/v1/vmSchedulingRuleGroupHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"zoneUuid": "eae13168e86b3698807837ca88c3b2ae",
"name": "test",
"description": "test desc"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"zoneUuid":"eae13168e86b3698807837ca88c3b2ae","name":"test","description":"test desc"}}' http://localhost:8080/zstack/v1/vmSchedulingRuleGroup参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| zoneUuid | String | body(包含在params结构中) | 数据中心UUID | 4.6.0 | |
| name | String | body(包含在params结构中) | 资源名称 | 4.6.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 4.6.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 4.6.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
返回示例
{
"inventory": {
"uuid": "e79dc7a0170c31d18429c7478772c5d7",
"name": "test",
"description": "test desc",
"appliance": "CUSTOMER",
"zoneUuid": "e6a7cd7917473bedbfd420797d93ed50"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.6.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.6.0 |
| inventory | AffinityGroupInventory | 详情参考inventory | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.6.0 |
| description | String | 错误的概要描述 | 4.6.0 |
| details | String | 错误的详细信息 | 4.6.0 |
| elaboration | String | 保留字段,默认为null | 4.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.6.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| appliance | String | 4.6.0 | |
| zoneUuid | String | 数据中心UUID | 4.6.0 |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
SDK示例
Java
SDK
CreateVmSchedulingRuleGroupAction action = new CreateVmSchedulingRuleGroupAction();
action.zoneUuid = "eae13168e86b3698807837ca88c3b2ae";
action.name = "test";
action.description = "test desc";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateVmSchedulingRuleGroupAction.Result res = action.call();Python
SDK
CreateVmSchedulingRuleGroupAction action = CreateVmSchedulingRuleGroupAction()
action.zoneUuid = "eae13168e86b3698807837ca88c3b2ae"
action.name = "test"
action.description = "test desc"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateVmSchedulingRuleGroupAction.Result res = action.call()删除虚拟机调度组(DeleteVmSchedulingRuleGroup)
API请求
URLs
DELETE zstack/v1/vmSchedulingRuleGroup/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/vmSchedulingRuleGroup/d150bf5dca4c32768464817ab2937ac4参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DeleteVmSchedulingRuleGroupAction action = new DeleteVmSchedulingRuleGroupAction();
action.uuid = "d150bf5dca4c32768464817ab2937ac4";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteVmSchedulingRuleGroupAction.Result res = action.call();Python
SDK
DeleteVmSchedulingRuleGroupAction action = DeleteVmSchedulingRuleGroupAction()
action.uuid = "d150bf5dca4c32768464817ab2937ac4"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteVmSchedulingRuleGroupAction.Result res = action.call()更新虚拟机调度组(UpdateVmSchedulingRuleGroup)
API请求
URLs
PUT zstack/v1/vmSchedulingRuleGroup/{uuid}/updateHeaders
Authorization: OAuth the-session-uuidBody
{
"updateVmSchedulingRuleGroup": {
"name": "test",
"description": "test desc"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateVmSchedulingRuleGroup":{"name":"test","description":"test desc"}}' http://localhost:8080/zstack/v1/vmSchedulingRuleGroup/0e8a74e4ff8d3da9bff07f0cc7d58f91/update参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.6.0 | |
| name (可选) | String | body(包含在updateVmSchedulingRuleGroup结构中) | 资源名称 | 4.6.0 | |
| description (可选) | String | body(包含在updateVmSchedulingRuleGroup结构中) | 资源的详细描述 | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
返回示例
{
"inventory": {
"uuid": "75840459a5f83afebc36e605a3189289",
"name": "test",
"description": "test desc",
"appliance": "CUSTOMER",
"zoneUuid": "261246b65f253787b06a29c6c266543c"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.6.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.6.0 |
| inventory | AffinityGroupInventory | 详情参考inventory | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.6.0 |
| description | String | 错误的概要描述 | 4.6.0 |
| details | String | 错误的详细信息 | 4.6.0 |
| elaboration | String | 保留字段,默认为null | 4.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.6.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| appliance | String | 4.6.0 | |
| zoneUuid | String | 数据中心UUID | 4.6.0 |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
SDK示例
Java
SDK
UpdateVmSchedulingRuleGroupAction action = new UpdateVmSchedulingRuleGroupAction();
action.uuid = "0e8a74e4ff8d3da9bff07f0cc7d58f91";
action.name = "test";
action.description = "test desc";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateVmSchedulingRuleGroupAction.Result res = action.call();Python
SDK
UpdateVmSchedulingRuleGroupAction action = UpdateVmSchedulingRuleGroupAction()
action.uuid = "0e8a74e4ff8d3da9bff07f0cc7d58f91"
action.name = "test"
action.description = "test desc"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateVmSchedulingRuleGroupAction.Result res = action.call()添加虚拟机到虚拟机调度组(AddVmToVmSchedulingRuleGroup)
API请求
URLs
POST zstack/v1/vmSchedulingRuleGroup/{vmGroupUuid}/vmInstance/{vmUuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST http://localhost:8080/zstack/v1/vmSchedulingRuleGroup/663fb7c5b74f3bc9bf629ca3523fb8cc/vmInstance/64d7de2d3eb431c99998292d1ed5411e参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vmGroupUuid | String | url | VM调度组UUID | 4.6.0 | |
| vmUuid | String | url | VM UUID | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
AddVmToVmSchedulingRuleGroupAction action = new AddVmToVmSchedulingRuleGroupAction();
action.vmGroupUuid = "663fb7c5b74f3bc9bf629ca3523fb8cc";
action.vmUuid = "64d7de2d3eb431c99998292d1ed5411e";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddVmToVmSchedulingRuleGroupAction.Result res = action.call();Python
SDK
AddVmToVmSchedulingRuleGroupAction action = AddVmToVmSchedulingRuleGroupAction()
action.vmGroupUuid = "663fb7c5b74f3bc9bf629ca3523fb8cc"
action.vmUuid = "64d7de2d3eb431c99998292d1ed5411e"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddVmToVmSchedulingRuleGroupAction.Result res = action.call()从虚拟机调度组解绑虚拟机(DetachVmFromVmSchedulingRuleGroup)
API请求
URLs
DELETE zstack/v1/vmSchedulingRuleGroup/{vmGroupUuid}/vmInstance/Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/vmSchedulingRuleGroup/90c8c8b53cfc302684532e1c447e0a16/vmInstance/参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vmGroupUuid | String | url | VM调度组UUID | 4.6.0 | |
| vmUuid | String | body | VM UUID | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DetachVmFromVmSchedulingRuleGroupAction action = new DetachVmFromVmSchedulingRuleGroupAction();
action.vmGroupUuid = "90c8c8b53cfc302684532e1c447e0a16";
action.vmUuid = "560967aeab103cedb06a4a8d440c8d3d";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DetachVmFromVmSchedulingRuleGroupAction.Result res = action.call();Python
SDK
DetachVmFromVmSchedulingRuleGroupAction action = DetachVmFromVmSchedulingRuleGroupAction()
action.vmGroupUuid = "90c8c8b53cfc302684532e1c447e0a16"
action.vmUuid = "560967aeab103cedb06a4a8d440c8d3d"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DetachVmFromVmSchedulingRuleGroupAction.Result res = action.call()获取虚拟机调度组执行状态(GetVmSchedulingRulesExecuteState)
API请求
URLs
POST zstack/v1/get/vmSchedulingRules/conflict/stateHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"uuids": [
"c6bb1e89239235f8b49bb10bc5d484cc"
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"uuids":["c6bb1e89239235f8b49bb10bc5d484cc"]}}' http://localhost:8080/zstack/v1/get/vmSchedulingRules/conflict/state参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuids | List | body(包含在params结构中) | VM调度组UUID | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
返回示例
{
"ruleMapState": {
"2951e237b86630ac84d8eeb382513260": "Normal"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.6.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.6.0 |
| ruleMapState | Map | 详情参考ruleMapState | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.6.0 |
| description | String | 错误的概要描述 | 4.6.0 |
| details | String | 错误的详细信息 | 4.6.0 |
| elaboration | String | 保留字段,默认为null | 4.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.6.0 |
#ruleMapState
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Conflict | VmSchedulingRuleExecuteState | 冲突 | 4.6.0 |
| Normal | VmSchedulingRuleExecuteState | 正常 | 4.6.0 |
| Invalid | VmSchedulingRuleExecuteState | 无效 | 4.6.0 |
SDK示例
Java
SDK
GetVmSchedulingRulesExecuteStateAction action = new GetVmSchedulingRulesExecuteStateAction();
action.uuids = asList("c6bb1e89239235f8b49bb10bc5d484cc");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetVmSchedulingRulesExecuteStateAction.Result res = action.call();Python
SDK
GetVmSchedulingRulesExecuteStateAction action = GetVmSchedulingRulesExecuteStateAction()
action.uuids = [c6bb1e89239235f8b49bb10bc5d484cc]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetVmSchedulingRulesExecuteStateAction.Result res = action.call()新建虚拟机调度策略(CreateVmSchedulingRule)
API请求
URLs
POST zstack/v1/vmsSchedulingRuleHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"rule": "AFFINITY",
"mode": "SOFT",
"vmGroupUuid": "814bca77193f3e7a871891b17f8e4122",
"hostGroupUuid": "e4241841b9083aed84726be7cbb966bf",
"name": "vm-scheduling-rule",
"description": "desc"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"rule":"AFFINITY","mode":"SOFT","vmGroupUuid":"814bca77193f3e7a871891b17f8e4122","hostGroupUuid":"e4241841b9083aed84726be7cbb966bf","name":"vm-scheduling-rule","description":"desc"}}' http://localhost:8080/zstack/v1/vmsSchedulingRule参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| rule | String | body(包含在params结构中) | 规则 |
|
4.6.0 |
| mode | String | body(包含在params结构中) | 执行力度 |
|
4.6.0 |
| vmGroupUuid | String | body(包含在params结构中) | VM调度组UUID | 4.6.0 | |
| hostGroupUuid (可选) | String | body(包含在params结构中) | 主机调度组UUID | 4.6.0 | |
| name | String | body(包含在params结构中) | 资源名称 | 4.6.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 4.6.0 | |
| policy (可选) | String | body(包含在params结构中) |
|
4.6.0 | |
| type (可选) | String | body(包含在params结构中) | host | 4.6.0 | |
| zoneUuid (可选) | String | body(包含在params结构中) | 数据中心UUID | 4.6.0 | |
| subType (可选) | String | body(包含在params结构中) | 4.6.0 | ||
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 4.6.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
返回示例
{
"inventory": {
"uuid": "d517b42f669b324288fe8977a7df2e4d",
"name": "affinity-group-test",
"description": "affinity group for test",
"policy": "ANTISOFT",
"version": "1.0",
"type": "HOST"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.6.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.6.0 |
| inventory | AffinityGroupInventory | 详情参考inventory | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.6.0 |
| description | String | 错误的概要描述 | 4.6.0 |
| details | String | 错误的详细信息 | 4.6.0 |
| elaboration | String | 保留字段,默认为null | 4.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.6.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| policy | String | 4.6.0 | |
| version | String | 4.6.0 | |
| type | String | 4.6.0 | |
| appliance | String | 4.6.0 | |
| state | String | 4.6.0 | |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
| usages | List | 详情参考usages | 4.6.0 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| affinityGroupUuid | String | 4.6.0 | |
| resourceUuid | String | 4.6.0 | |
| resourceType | String | 4.6.0 | |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
SDK示例
Java
SDK
CreateVmSchedulingRuleAction action = new CreateVmSchedulingRuleAction();
action.rule = "AFFINITY";
action.mode = "SOFT";
action.vmGroupUuid = "814bca77193f3e7a871891b17f8e4122";
action.hostGroupUuid = "e4241841b9083aed84726be7cbb966bf";
action.name = "vm-scheduling-rule";
action.description = "desc";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateVmSchedulingRuleAction.Result res = action.call();Python
SDK
CreateVmSchedulingRuleAction action = CreateVmSchedulingRuleAction()
action.rule = "AFFINITY"
action.mode = "SOFT"
action.vmGroupUuid = "814bca77193f3e7a871891b17f8e4122"
action.hostGroupUuid = "e4241841b9083aed84726be7cbb966bf"
action.name = "vm-scheduling-rule"
action.description = "desc"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateVmSchedulingRuleAction.Result res = action.call()移除虚拟机调度策略(RemoveVmSchedulingRule)
API请求
URLs
DELETE zstack/v1/vmSchedulingRule/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/vmSchedulingRule/b247592a7e773a338a8965dc0d2cffad参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.6.0 | |
| deleteMode (可选) | String | body | 删除模式 |
|
4.6.0 |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
RemoveVmSchedulingRuleAction action = new RemoveVmSchedulingRuleAction();
action.uuid = "b247592a7e773a338a8965dc0d2cffad";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveVmSchedulingRuleAction.Result res = action.call();Python
SDK
RemoveVmSchedulingRuleAction action = RemoveVmSchedulingRuleAction()
action.uuid = "b247592a7e773a338a8965dc0d2cffad"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveVmSchedulingRuleAction.Result res = action.call()变更虚拟机调度策略启用状态(ChangeVmSchedulingRuleState)
API请求
URLs
PUT zstack/v1/vmSchedulingRule/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeVmSchedulingRuleState": {
"state": "enable"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeVmSchedulingRuleState":{"state":"enable"}}' http://localhost:8080/zstack/v1/vmSchedulingRule/907848e59a963a97a237c6dcb26d96ba/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.6.0 | |
| state | String | body(包含在changeVmSchedulingRuleState结构中) |
改变为的状态 |
|
4.6.0 |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
返回示例
{
"inventory": {
"rule": "AFFINITY",
"mode": "SOFT",
"uuid": "8ab474e792183589b6a58bbe473c635a",
"name": "Test-AffinityGroup",
"description": "Test-AffinityGroup",
"version": "1.0",
"type": "HOST",
"appliance": "CUSTOMER",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.6.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.6.0 |
| inventory | AffinityGroupInventory | 详情参考inventory | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.6.0 |
| description | String | 错误的概要描述 | 4.6.0 |
| details | String | 错误的详细信息 | 4.6.0 |
| elaboration | String | 保留字段,默认为null | 4.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.6.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| rule | String | 规则 | 4.6.0 |
| mode | String | 执行模式 | 4.6.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| policy | String | 4.6.0 | |
| version | String | 4.6.0 | |
| type | String | 4.6.0 | |
| appliance | String | 4.6.0 | |
| zoneUuid | String | 数据中心UUID | 4.6.0 |
| state | String | 4.6.0 | |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
| usages | List | 详情参考usages | 4.6.0 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 虚拟机调度组与资源绑定关系的UUID | 4.6.0 |
| affinityGroupUuid | String | 亲和组UUID | 4.6.0 |
| resourceUuid | String | 资源UUID | 4.6.0 |
| resourceType | String | 资源类型 | 4.6.0 |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
SDK示例
Java
SDK
ChangeVmSchedulingRuleStateAction action = new ChangeVmSchedulingRuleStateAction();
action.uuid = "907848e59a963a97a237c6dcb26d96ba";
action.state = "enable";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeVmSchedulingRuleStateAction.Result res = action.call();Python
SDK
ChangeVmSchedulingRuleStateAction action = ChangeVmSchedulingRuleStateAction()
action.uuid = "907848e59a963a97a237c6dcb26d96ba"
action.state = "enable"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangeVmSchedulingRuleStateAction.Result res = action.call()更新虚拟机调度策略(UpdateVmSchedulingRule)
API请求
URLs
PUT zstack/v1/vmSchedulingRule/{uuid}/updateHeaders
Authorization: OAuth the-session-uuidBody
{
"updateVmSchedulingRule": {
"name": "new name",
"description": "desc",
"mode": "SOFT"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateVmSchedulingRule":{"name":"new name","description":"desc","mode":"SOFT"}}' http://localhost:8080/zstack/v1/vmSchedulingRule/5c23ac3de87f33ff955430556e9d1104/update参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.6.0 | |
| name (可选) | String | body(包含在updateVmSchedulingRule结构中) | 资源名称 | 4.6.0 | |
| description (可选) | String | body(包含在updateVmSchedulingRule结构中) | 资源的详细描述 | 4.6.0 | |
| mode (可选) | String | body(包含在updateVmSchedulingRule结构中) | 4.6.0 | ||
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
返回示例
{
"inventory": {
"rule": "AFFINITY",
"mode": "SOFT",
"uuid": "36f4174c0fcf3aefa24927f33aa2eba8",
"name": "group",
"description": "group for test",
"policy": "ANTISOFT",
"type": "HOST"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.6.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.6.0 |
| inventory | AffinityGroupInventory | 详情参考inventory | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.6.0 |
| description | String | 错误的概要描述 | 4.6.0 |
| details | String | 错误的详细信息 | 4.6.0 |
| elaboration | String | 保留字段,默认为null | 4.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.6.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| rule | String | 规则 | 4.6.0 |
| mode | String | 执行模式 | 4.6.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| policy | String | 4.6.0 | |
| version | String | 4.6.0 | |
| type | String | 4.6.0 | |
| appliance | String | 4.6.0 | |
| zoneUuid | String | 数据中心UUID | 4.6.0 |
| state | String | 4.6.0 | |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
| usages | List | 详情参考usages | 4.6.0 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 虚拟机调度组与资源绑定关系的UUID | 4.6.0 |
| affinityGroupUuid | String | 亲和组UUID | 4.6.0 |
| resourceUuid | String | 资源UUID | 4.6.0 |
| resourceType | String | 资源类型 | 4.6.0 |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
SDK示例
Java
SDK
UpdateVmSchedulingRuleAction action = new UpdateVmSchedulingRuleAction();
action.uuid = "5c23ac3de87f33ff955430556e9d1104";
action.name = "new name";
action.description = "desc";
action.mode = "SOFT";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateVmSchedulingRuleAction.Result res = action.call();Python
SDK
UpdateVmSchedulingRuleAction action = UpdateVmSchedulingRuleAction()
action.uuid = "5c23ac3de87f33ff955430556e9d1104"
action.name = "new name"
action.description = "desc"
action.mode = "SOFT"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateVmSchedulingRuleAction.Result res = action.call()从虚拟机调度组校验调度策略(ValidateVmSchedulingRule)
API请求
URLs
PUT zstack/v1/validate/vmSchedulingRuleHeaders
Authorization: OAuth the-session-uuidBody
{
"validateVmSchedulingRule": {
"vmGroupUuid": "2bce1a0af86a3ceebd70ef1aaa3633d1",
"hostGroupUuid": "15b9f0a9a3c43708890eef7552959746",
"rule": "AFFINITY",
"mode": "HARD",
"zoneUuid": "538bdbde4d9d3b919e2cc9ae44542f09"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"validateVmSchedulingRule":{"vmGroupUuid":"2bce1a0af86a3ceebd70ef1aaa3633d1","hostGroupUuid":"15b9f0a9a3c43708890eef7552959746","rule":"AFFINITY","mode":"HARD","zoneUuid":"538bdbde4d9d3b919e2cc9ae44542f09"}}' http://localhost:8080/zstack/v1/validate/vmSchedulingRule参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vmGroupUuid | String | body(包含在validateVmSchedulingRule结构中) | VM调度组UUID | 4.6.0 | |
| hostGroupUuid (可选) | String | body(包含在validateVmSchedulingRule结构中) | 主机调度组UUID | 4.6.0 | |
| rule | String | body(包含在validateVmSchedulingRule结构中) | 调度规则 |
|
4.6.0 |
| mode | String | body(包含在validateVmSchedulingRule结构中) | 执行模式 |
|
4.6.0 |
| zoneUuid (可选) | String | body(包含在validateVmSchedulingRule结构中) | 数据中心UUID | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
ValidateVmSchedulingRuleAction action = new ValidateVmSchedulingRuleAction();
action.vmGroupUuid = "2bce1a0af86a3ceebd70ef1aaa3633d1";
action.hostGroupUuid = "15b9f0a9a3c43708890eef7552959746";
action.rule = "AFFINITY";
action.mode = "HARD";
action.zoneUuid = "538bdbde4d9d3b919e2cc9ae44542f09";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ValidateVmSchedulingRuleAction.Result res = action.call();Python
SDK
ValidateVmSchedulingRuleAction action = ValidateVmSchedulingRuleAction()
action.vmGroupUuid = "2bce1a0af86a3ceebd70ef1aaa3633d1"
action.hostGroupUuid = "15b9f0a9a3c43708890eef7552959746"
action.rule = "AFFINITY"
action.mode = "HARD"
action.zoneUuid = "538bdbde4d9d3b919e2cc9ae44542f09"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ValidateVmSchedulingRuleAction.Result res = action.call()查询虚拟机调度历史(QueryVmSchedHistory)
API请求
URLs
GET zstack//v1/vm/sched-historyGET zstack//v1/vm/sched-history/{vmInstanceUuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm/sched-history?q=vmInstanceUuid=15b5b8ab631d300592bf83d66331f914curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm/sched-history/{vmInstanceUuid}?q=vmInstanceUuid=4240a319fabf3728960d1d7639f3fc0f可查询字段
运行CLI命令行工具,输入QueryVmSchedHistory并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{
"id": 0.0,
"vmInstanceUuid": "ec8fe40b4b0a38bc8f195bfc8bfc72e9",
"accountUuid": "b07dda064256343c894cecfa5d50b42c",
"schedType": "VMHA",
"success": true,
"lastHostUuid": "d4d26f65cfff3fafb98d3da284290455",
"destHostUuid": "bc001bb4d762395db4b2ed97c6d6dae3"
}
]
}
| 名字 | 类型 | 描述 | 起始版 |
|---|---|---|---|
| success | boolean | 0.6 | |
| inventories | List | 详情参考inventories | 4.4.24 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vmInstanceUuid | String | 虚拟机UUID | 4.4.24 |
| accountUuid | String | 账户UUID | 4.4.24 |
| schedType | String | 4.4.24 | |
| success | Boolean | 4.4.24 | |
| lastHostUuid | String | 4.4.24 | |
| destHostUuid | String | 4.4.24 | |
| createDate | Timestamp | 创建时间 | 4.4.24 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.4.24 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.4.24 |
| description | String | 错误的概要描述 | 4.4.24 |
| details | String | 错误的详细信息 | 4.4.24 |
| elaboration | String | 保留字段,默认为null | 4.4.24 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.4.24 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.4.24 |
SDK示例
Java
SDK
QueryVmSchedHistoryAction action = new QueryVmSchedHistoryAction();
action.conditions = asList("vmInstanceUuid=b35d14e4af4c3f4c8f745e73df083020");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryVmSchedHistoryAction.Result res = action.call();Python
SDK
QueryVmSchedHistoryAction action = QueryVmSchedHistoryAction()
action.conditions = ["vmInstanceUuid=f9bd0652c3843cb285c2e7b8c9f4561b"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryVmSchedHistoryAction.Result res = action.call()查询主机调度策略组(QueryHostSchedulingRuleGroup)
API请求
URLs
GET zstack/v1/query/host/schedulingRule/groupHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/query/host/schedulingRule/group?q=uuid=dfa2eb73ea3e3fd48371d91dc19a53b6可查询字段
运行CLI命令行工具,输入QueryHostSchedulingRuleGroup并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "8236e15b68f9391b84c6375033b50b68",
"name": "test",
"description": "description",
"zoneUuid": "54a86b72e1ec3a22b7525996031aabfc"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.7.0 | |
| inventories | List | 详情参考inventories | 4.7.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.7.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| zoneUuid | String | 数据中心UUID | 4.6.0 |
| clusterUuid | String | 集群UUID | 4.6.0 |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
QueryHostSchedulingRuleGroupAction action = new QueryHostSchedulingRuleGroupAction();
action.conditions = asList("uuid=a1ded772a30a3e0a99abffef4eeb17dc");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryHostSchedulingRuleGroupAction.Result res = action.call();Python
SDK
QueryHostSchedulingRuleGroupAction action = QueryHostSchedulingRuleGroupAction()
action.conditions = ["uuid=45cfff84ae4637678b5b2f52b9f6e88d"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryHostSchedulingRuleGroupAction.Result res = action.call()查询虚拟机调度策略组(QueryVmSchedulingRuleGroup)
API请求
URLs
GET zstack/v1/query/vm/schedulingRule/groupHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/query/vm/schedulingRule/group?q=uuid=f0e0262e8a003001a13d0f61ea51baf1可查询字段
运行CLI命令行工具,输入QueryVmSchedulingRuleGroup并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "11ff7ecb7d2b3f129f28e7f48982ca18",
"name": "test",
"description": "description",
"appliance": "appliance",
"zoneUuid": "9839f67b087f37a19360c24e83b1b7a2"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.7.0 | |
| inventories | List | 详情参考inventories | 4.7.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.7.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| appliance | String | 4.6.0 | |
| zoneUuid | String | 数据中心UUID | 4.6.0 |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
QueryVmSchedulingRuleGroupAction action = new QueryVmSchedulingRuleGroupAction();
action.conditions = asList("uuid=3415c61c47643a9989f81aabcf1945db");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryVmSchedulingRuleGroupAction.Result res = action.call();Python
SDK
QueryVmSchedulingRuleGroupAction action = QueryVmSchedulingRuleGroupAction()
action.conditions = ["uuid=dc69c1d78fd236748df8597b74c78861"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryVmSchedulingRuleGroupAction.Result res = action.call()查询虚拟机调度策略(QueryVmSchedulingRule)
API请求
URLs
GET zstack/v1/query/vm/schedulingRuleHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/query/vm/schedulingRule?q=uuid=2964e2f366e73491b858ca2da4052624可查询字段
运行CLI命令行工具,输入QueryVmSchedulingRule并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"rule": "rule",
"mode": "mode",
"uuid": "ef5e45f916b03e7cae291e3134c3eaa1",
"name": "test",
"description": "description"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.7.0 | |
| inventories | List | 详情参考inventories | 4.7.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.7.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| rule | String | 规则 | 4.6.0 |
| mode | String | 执行模式 | 4.6.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.6.0 |
| name | String | 资源名称 | 4.6.0 |
| description | String | 资源的详细描述 | 4.6.0 |
| policy | String | 4.6.0 | |
| version | String | 4.6.0 | |
| type | String | 4.6.0 | |
| appliance | String | 4.6.0 | |
| zoneUuid | String | 数据中心UUID | 4.6.0 |
| state | String | 4.6.0 | |
| createDate | Timestamp | 创建时间 | 4.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.6.0 |
| usages | List | 详情参考usages | 4.6.0 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.2 |
| affinityGroupUuid | String | 2.2 | |
| resourceUuid | String | 2.2 | |
| resourceType | String | 2.2 | |
| createDate | Timestamp | 创建时间 | 2.2 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.2 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
QueryVmSchedulingRuleAction action = new QueryVmSchedulingRuleAction();
action.conditions = asList("uuid=8a051adee823307e82d355b6385b589d");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryVmSchedulingRuleAction.Result res = action.call();Python
SDK
QueryVmSchedulingRuleAction action = QueryVmSchedulingRuleAction()
action.conditions = ["uuid=39b75b6de9113e4f9915a024ebd2f05c"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryVmSchedulingRuleAction.Result res = action.call()根据调度规则获取虚拟机对应的调度状态(GetVmsSchedulingStateFromSchedulingRule)
API请求
URLs
POST zstack/v1/get/vms/schedulingState/from/SchedulingRuleHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"ruleUuid": "ff0e4855dd0f309f8b8e4914edbcbf00",
"vmUuids": [
"ff01ec80fd11327cba7519b66119d900"
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"ruleUuid":"ff0e4855dd0f309f8b8e4914edbcbf00","vmUuids":["ff01ec80fd11327cba7519b66119d900"]}}' \
http://localhost:8080/zstack/v1/get/vms/schedulingState/from/SchedulingRule参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| ruleUuid | String | body(包含在params结构中) |
调度规则UUID | 4.6.0 | |
| vmUuids | List | body(包含在params结构中) |
虚拟机UUID | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
GetVmsSchedulingStateFromSchedulingRuleAction action = new GetVmsSchedulingStateFromSchedulingRuleAction();
action.ruleUuid = "ff0e4855dd0f309f8b8e4914edbcbf00";
action.vmUuids = asList("ff01ec80fd11327cba7519b66119d900");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetVmsSchedulingStateFromSchedulingRuleAction.Result res = action.call();Python
SDK
GetVmsSchedulingStateFromSchedulingRuleAction action = GetVmsSchedulingStateFromSchedulingRuleAction()
action.ruleUuid = "ff0e4855dd0f309f8b8e4914edbcbf00"
action.vmUuids = [ff01ec80fd11327cba7519b66119d900]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetVmsSchedulingStateFromSchedulingRuleAction.Result res = action.call()根据调度状态获取对应的虚拟机(ListVmSchedulingRulesFromExecuteState)
API请求
URLs
POST zstack/v1/list/vmSchedulingRules/from/conflict/stateHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"executeStates": [
"Enabled"
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"executeStates":["Enabled"]}}' \
http://localhost:8080/zstack/v1/list/vmSchedulingRules/from/conflict/state参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| executeStates | List | body(包含在params结构中) |
调度状态(Conflict,Normal,Invalid) | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
ListVmSchedulingRulesFromExecuteStateAction action = new ListVmSchedulingRulesFromExecuteStateAction();
action.executeStates = asList("Enabled");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ListVmSchedulingRulesFromExecuteStateAction.Result res = action.call();Python
SDK
ListVmSchedulingRulesFromExecuteStateAction action = ListVmSchedulingRulesFromExecuteStateAction()
action.executeStates = [Enabled]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ListVmSchedulingRulesFromExecuteStateAction.Result res = action.call()根据调度规则UUID以及调度状态获取虚拟机UUID(ListVmsFromSchedulingState)
API请求
URLs
POST zstack/v1/list/vms/from/executeStateHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"ruleUuid": "ff0e4855dd0f309f8b8e4914edbcbf00",
"executeStates": [
"SCHEDULED",
"EXECUTING"
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"ruleUuid":"ff0e4855dd0f309f8b8e4914edbcbf00","executeStates":["SCHEDULED","EXECUTING"]}}' \
http://localhost:8080/zstack/v1/list/vms/from/executeState参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| ruleUuid | String | body(包含在params结构中) |
调度规则UUID | 4.6.0 | |
| executeStates | List | body(包含在params结构中) |
调度状态(Conflict,Normal,Invalid) | 4.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.6.0 | |
| userTags (可选) | List | body | 用户标签 | 4.6.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
ListVmsFromSchedulingStateAction action = new ListVmsFromSchedulingStateAction();
action.ruleUuid = "ff0e4855dd0f309f8b8e4914edbcbf00";
action.executeStates = asList("SCHEDULED","EXECUTING");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ListVmsFromSchedulingStateAction.Result res = action.call();Python
SDK
ListVmsFromSchedulingStateAction action = ListVmsFromSchedulingStateAction()
action.ruleUuid = "ff0e4855dd0f309f8b8e4914edbcbf00"
action.executeStates = [SCHEDULED, EXECUTING]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ListVmsFromSchedulingStateAction.Result res = action.call()