亲和组相关接口
创建亲和组(CreateAffinityGroup)
API请求
URLs
POST zstack/v1/affinity-groupsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "vm-affinity-group",
"description": "vm affinity group for test vms",
"policy": "antiSoft",
"type": "host"
},
"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":"vm-affinity-group","description":"vm affinity group for test vms","policy":"antiSoft","type":"host"}}' \
http://localhost:8080/zstack/v1/affinity-groups参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 2.3 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 2.3 | |
| policy | String | body(包含在params结构中) | 亲和组策略 |
|
2.3 |
| type (可选) | String | body(包含在params结构中) | 亲和组类型
|
|
2.3 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 2.3 | |
| systemTags (可选) | List | body | 系统标签 | 2.3 | |
| userTags (可选) | List | body | 用户标签 | 2.3 |
API返回
返回示例
{
"inventory": {
"uuid": "05ad02be7c5f4a6a9b6d164cb2980be6",
"name": "affinity-group-test",
"description": "affinity group for test",
"policy": "ANTISOFT",
"version": "1.0",
"type": "HOST"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.3 |
| inventory | AffinityGroupInventory | 详情参考inventory | 2.3 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.3 |
| description | String | 错误的概要描述 | 2.3 |
| details | String | 错误的详细信息 | 2.3 |
| elaboration | String | 保留字段,默认为null | 2.3 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.3 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.3 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.3 |
| name | String | 资源名称 | 2.3 |
| description | String | 资源的详细描述 | 2.3 |
| policy | String | 亲和组策略 | 2.3 |
| version | String | 亲和组分配算法的版本 | 2.3 |
| type | String | 亲和组类型
|
2.3 |
| appliance | String | 亲和组使用者标识 | 2.3 |
| state | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
| usages | List | 详情参考usages | 2.3 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 亲和组与资源绑定关系的UUID | 2.3 |
| affinityGroupUuid | String | 亲和组UUID | 2.3 |
| resourceUuid | String | 加入亲和组的资源UUID | 2.3 |
| resourceType | String | 加入亲和组的资源类型 | 2.3 |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
CreateAffinityGroupAction action = new CreateAffinityGroupAction();
action.name = "vm-affinity-group";
action.description = "vm affinity group for test vms";
action.policy = "antiSoft";
action.type = "host";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateAffinityGroupAction.Result res = action.call();Python
SDK
CreateAffinityGroupAction action = CreateAffinityGroupAction()
action.name = "vm-affinity-group"
action.description = "vm affinity group for test vms"
action.policy = "antiSoft"
action.type = "host"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateAffinityGroupAction.Result res = action.call()删除亲和组(DeleteAffinityGroup)
API请求
URLs
DELETE zstack/v1/affinity-groups/{uuid}?deleteMode={deleteMode}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/affinity-groups/ed0b2f029cc53ca385adc19dd36b51be?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.2 | |
| deleteMode (可选) | String | url | 删除模式 | 2.2 | |
| systemTags (可选) | List | body | 系统标签 | 2.2 | |
| userTags (可选) | List | body | 用户标签 | 2.2 |
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
DeleteAffinityGroupAction action = new DeleteAffinityGroupAction();
action.uuid = "ed0b2f029cc53ca385adc19dd36b51be";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteAffinityGroupAction.Result res = action.call();Python
SDK
DeleteAffinityGroupAction action = DeleteAffinityGroupAction()
action.uuid = "ed0b2f029cc53ca385adc19dd36b51be"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteAffinityGroupAction.Result res = action.call()查询亲和组(QueryAffinityGroup)
API请求
URLs
GET zstack/v1/affinity-groups
GET zstack/v1/affinity-groups/{uuid}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/affinity-groups?q=uuid=656ebc992c3333fea209c6c90e6a76cfcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/affinity-groups/b49759dff8593098a1d106c8129974cf
可查询字段
运行CLI命令行工具,输入QueryAffinityGroup并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "99fa95af4aac4eaabd320dbdd6d36ef8",
"name": "affinity-group-test",
"description": "affinity group for test",
"policy": "ANTISOFT",
"version": "1.0",
"type": "HOST",
"usages": [
{
"resourceUuid": "acedd8848c874cd7b1c68df7c593f6c1",
"resourceType": "HOST"
}
]
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.3 |
| inventories | List | 详情参考inventories | 2.3 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.3 |
| description | String | 错误的概要描述 | 2.3 |
| details | String | 错误的详细信息 | 2.3 |
| elaboration | String | 保留字段,默认为null | 2.3 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.3 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.3 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.3 |
| name | String | 资源名称 | 2.3 |
| description | String | 资源的详细描述 | 2.3 |
| policy | String | 亲和组策略 | 2.3 |
| version | String | 亲和组分配算法的版本 | 2.3 |
| type | String | 亲和组类型
|
2.3 |
| appliance | String | 亲和组使用者标识 | 2.3 |
| state | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
| usages | List | 详情参考usages | 2.3 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 亲和组与资源绑定关系的UUID | 2.3 |
| affinityGroupUuid | String | 亲和组UUID | 2.3 |
| resourceUuid | String | 加入亲和组的资源UUID | 2.3 |
| resourceType | String | 加入亲和组的资源类型 | 2.3 |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
QueryAffinityGroupAction action = new QueryAffinityGroupAction();
action.conditions = asList("uuid=bceb37906e673f37bb425933bdf2df46");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryAffinityGroupAction.Result res = action.call();Python
SDK
QueryAffinityGroupAction action = QueryAffinityGroupAction()
action.conditions = ["uuid=3714ccec7a933aba94c073fcba6e52bd"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryAffinityGroupAction.Result res = action.call()更新亲和组(UpdateAffinityGroup)
API请求
URLs
PUT zstack/v1/affinity-groups/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateAffinityGroup": {
"name": "new name",
"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 '{"updateAffinityGroup":{"name":"new name","description":"desc"}}' \
http://localhost:8080/zstack/v1/affinity-groups/f287ad59b76c34b0917fa9f897b63d69/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.3 | |
| name (可选) | String | body(包含在updateAffinityGroup结构中) | 资源名称 | 2.3 | |
| description (可选) | String | body(包含在updateAffinityGroup结构中) | 资源的详细描述 | 2.3 | |
| systemTags (可选) | List | body | 系统标签 | 2.3 | |
| userTags (可选) | List | body | 用户标签 | 2.3 |
API返回
返回示例
{
"inventory": {
"uuid": "f8c3b350df9a3bfd960359f302a4fba2",
"name": "affinity group",
"description": "affinity group for test",
"policy": "ANTISOFT",
"type": "HOST"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.3 |
| inventory | AffinityGroupInventory | 详情参考inventory | 2.3 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.3 |
| description | String | 错误的概要描述 | 2.3 |
| details | String | 错误的详细信息 | 2.3 |
| elaboration | String | 保留字段,默认为null | 2.3 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.3 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.3 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.3 |
| name | String | 资源名称 | 2.3 |
| description | String | 资源的详细描述 | 2.3 |
| policy | String | 亲和组策略 | 2.3 |
| version | String | 亲和组分配算法的版本 | 2.3 |
| type | String | 亲和组类型
|
2.3 |
| appliance | String | 亲和组使用者标识 | 2.3 |
| state | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
| usages | List | 详情参考usages | 2.3 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 亲和组与资源绑定关系的UUID | 2.3 |
| affinityGroupUuid | String | 亲和组UUID | 2.3 |
| resourceUuid | String | 加入亲和组的资源UUID | 2.3 |
| resourceType | String | 加入亲和组的资源类型 | 2.3 |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
UpdateAffinityGroupAction action = new UpdateAffinityGroupAction();
action.uuid = "f287ad59b76c34b0917fa9f897b63d69";
action.name = "new name";
action.description = "desc";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateAffinityGroupAction.Result res = action.call();Python
SDK
UpdateAffinityGroupAction action = UpdateAffinityGroupAction()
action.uuid = "f287ad59b76c34b0917fa9f897b63d69"
action.name = "new name"
action.description = "desc"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateAffinityGroupAction.Result res = action.call()添加云主机到亲和组(AddVmToAffinityGroup)
API请求
URLs
POST zstack/v1/affinity-groups/{affinityGroupUuid}/vm-instances/{uuid}Headers
Authorization: OAuth the-session-uuidBody
{
"params": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{}}' \
http://localhost:8080/zstack/v1/affinity-groups/8e9398e9841b399693ab71fb722ea144/vm-instances/f67763f0793832619a22e2c53c66e7d8参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| affinityGroupUuid | String | url | 亲和组UUID | 2.3 | |
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.3 | |
| systemTags (可选) | List | body | 系统标签 | 2.3 | |
| userTags (可选) | List | body | 用户标签 | 2.3 |
API返回
返回示例
{
"inventory": {
"uuid": "cb4dee8a47d74f9986b4641648a4c85d",
"name": "affinity-group-test",
"description": "affinity group for test",
"policy": "ANTISOFT",
"version": "1.0",
"type": "HOST",
"usages": [
{
"uuid": "cb4dee8a47d74f9986b4641648a4c85d",
"resourceUuid": "cf44d25659f24cefafbadbf8ad9a207d",
"resourceType": "HOST"
}
]
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。详情参考error | 2.3 |
| inventory | AffinityGroupInventory | 详情参考inventory | 2.3 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.2 |
| description | String | 错误的概要描述 | 2.2 |
| details | String | 错误的详细信息 | 2.2 |
| elaboration | String | 保留字段,默认为null | 2.2 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.2 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.2 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.2 |
| name | String | 资源名称 | 2.2 |
| description | String | 资源的详细描述 | 2.2 |
| policy | String | 亲和组策略 | 2.2 |
| version | String | 亲和组分配算法的版本 | 2.2 |
| type | String | 亲和组类型
|
2.2 |
| appliance | String | 亲和组使用者标识 | 2.2 |
| state | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.2 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.2 |
| usages | List | 详情参考usages | 2.2 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 亲和组与资源绑定关系的UUID | 2.2 |
| affinityGroupUuid | String | 亲和组UUID | 2.2 |
| resourceUuid | String | 加入亲和组的资源UUID | 2.2 |
| resourceType | String | 加入亲和组的资源类型 | 2.2 |
| createDate | Timestamp | 创建时间 | 2.2 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.2 |
SDK示例
Java
SDK
AddVmToAffinityGroupAction action = new AddVmToAffinityGroupAction();
action.affinityGroupUuid = "8e9398e9841b399693ab71fb722ea144";
action.uuid = "f67763f0793832619a22e2c53c66e7d8";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddVmToAffinityGroupAction.Result res = action.call();Python
SDK
AddVmToAffinityGroupAction action = AddVmToAffinityGroupAction()
action.affinityGroupUuid = "8e9398e9841b399693ab71fb722ea144"
action.uuid = "f67763f0793832619a22e2c53c66e7d8"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddVmToAffinityGroupAction.Result res = action.call()从亲和组移除云主机(RemoveVmFromAffinityGroup)
API请求
URLs
DELETE zstack/v1/affinity-groups/{affinityGroupUuid}/vm-instances?uuid={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/affinity-groups/6d1e8b61e30e38ceb8300ed722c6a85a/vm-instances?uuid=2736c4e5c4f3301e8a9ee7cc64847033参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| affinityGroupUuid | String | url | 亲和组UUID | 2.3 | |
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.3 | |
| systemTags (可选) | List | body | 系统标签 | 2.3 | |
| userTags (可选) | List | body | 用户标签 | 2.3 |
API返回
返回示例
{
"inventory": {
"uuid": "15b102d8d08947e6b38fc619c71a5cfe",
"name": "affinity-group-test",
"description": "affinity group for test",
"policy": "ANTISOFT",
"version": "1.0",
"type": "HOST"
}
}
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.3 |
| inventory | AffinityGroupInventory | 详情参考inventory | 2.3 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.3 |
| description | String | 错误的概要描述 | 2.3 |
| details | String | 错误的详细信息 | 2.3 |
| elaboration | String | 保留字段,默认为null | 2.3 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.3 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.3 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.3 |
| name | String | 资源名称 | 2.3 |
| description | String | 资源的详细描述 | 2.3 |
| policy | String | 亲和组策略 | 2.3 |
| version | String | 亲和组分配算法的版本 | 2.3 |
| type | String | 亲和组类型
|
2.3 |
| appliance | String | 亲和组使用者标识 | 2.3 |
| state | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
| usages | List | 详情参考usages | 2.3 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 亲和组与资源绑定关系的UUID | 2.3 |
| affinityGroupUuid | String | 亲和组UUID | 2.3 |
| resourceUuid | String | 加入亲和组的资源UUID | 2.3 |
| resourceType | String | 加入亲和组的资源类型 | 2.3 |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
RemoveVmFromAffinityGroupAction action = new RemoveVmFromAffinityGroupAction();
action.affinityGroupUuid = "6d1e8b61e30e38ceb8300ed722c6a85a";
action.uuid = "2736c4e5c4f3301e8a9ee7cc64847033";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveVmFromAffinityGroupAction.Result res = action.call();Python
SDK
RemoveVmFromAffinityGroupAction action = RemoveVmFromAffinityGroupAction()
action.affinityGroupUuid = "6d1e8b61e30e38ceb8300ed722c6a85a"
action.uuid = "2736c4e5c4f3301e8a9ee7cc64847033"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveVmFromAffinityGroupAction.Result res = action.call()改变亲和组的使用状态(ChangeAffinityGroupState)
API请求
URLs
PUT zstack/v1/affinity-groups/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeAffinityGroupState": {
"stateEvent": "enable"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeAffinityGroupState":{"stateEvent":"enable"}}' \
http://localhost:8080/zstack/v1/affinity-groups/f32fd1a910d439d7ab93cd4660a02837/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.3 | |
| stateEvent | String | body(包含在changeAffinityGroupState结构中) |
|
2.3 | |
| systemTags (可选) | List | body | 2.3 | ||
| userTags (可选) | List | body | 2.3 |
API返回
返回示例
{
"inventory": {
"uuid": "034e3ef3798f3374b85d414057313a3c",
"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"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.3 |
| inventory | AffinityGroupInventory | 详情参考inventory | 2.3 |
#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 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.2 |
| name | String | 资源名称 | 2.2 |
| description | String | 资源的详细描述 | 2.2 |
| policy | String | 2.2 | |
| version | String | 2.2 | |
| type | String | 2.2 | |
| appliance | String | 2.2 | |
| state | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.2 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.2 |
| usages | List | 详情参考usages | 2.2 |
#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 |
SDK示例
Java
SDK
ChangeAffinityGroupStateAction action = new ChangeAffinityGroupStateAction();
action.uuid = "f32fd1a910d439d7ab93cd4660a02837";
action.stateEvent = "enable";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeAffinityGroupStateAction.Result res = action.call();Python
SDK
ChangeAffinityGroupStateAction action = ChangeAffinityGroupStateAction()
action.uuid = "f32fd1a910d439d7ab93cd4660a02837"
action.stateEvent = "enable"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangeAffinityGroupStateAction.Result res = action.call()获取可绑定云主机的亲和组(GetCandidateAffinityGroupForAttachingVm)
API请求
URLs
GET zstack/v1/affinityGroup/attachingVmHeaders
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/affinityGroup/attachingVm?vmUuid=2cbb6f64b4e03753b8fb63f497bb003a参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vmUuid | String | query | 云主机UUID | 4.0.0 | |
| systemTags (可选) | List | query | 系统标签 | 4.0.0 | |
| userTags (可选) | List | query | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventories": [
{
"uuid": "06a212ca4cce3986ae05f3912fb3bd7d",
"name": "affinity-group-test",
"description": "affinity group for test",
"policy": "ANTISOFT",
"version": "1.0",
"type": "HOST"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.0.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventories | List | 详情参考inventories | 4.0.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| policy | String | 4.0.0 | |
| version | String | 4.0.0 | |
| type | String | 4.0.0 | |
| appliance | String | 4.0.0 | |
| state | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| usages | List | 详情参考usages | 4.0.0 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| affinityGroupUuid | String | 4.0.0 | |
| resourceUuid | String | 4.0.0 | |
| resourceType | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
SDK示例
Java
SDK
GetCandidateAffinityGroupForAttachingVmAction action = new GetCandidateAffinityGroupForAttachingVmAction();
action.vmUuid = "2cbb6f64b4e03753b8fb63f497bb003a";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetCandidateAffinityGroupForAttachingVmAction.Result res = action.call();Python
SDK
GetCandidateAffinityGroupForAttachingVmAction action = GetCandidateAffinityGroupForAttachingVmAction()
action.vmUuid = "2cbb6f64b4e03753b8fb63f497bb003a"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetCandidateAffinityGroupForAttachingVmAction.Result res = action.call()获取可绑定亲和组的云主机(GetCandidateVMForAttachingAffinityGroup)
API请求
URLs
GET zstack/v1/VM/attachingGroupHeaders
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/attachingGroup?affinityGroupUuid=a92158a6b1b333b296e93a4bd8d36e5e参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| affinityGroupUuid | String | query | 亲和组uuid | 4.0.0 | |
| systemTags (可选) | List | query | 系统标签 | 4.0.0 | |
| userTags (可选) | List | query | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventories": [
{
"uuid": "ac1d56dec1d93a29a6cb43d7aff178a3",
"name": "Test-VM",
"description": "web server VM",
"zoneUuid": "892fe4676f283785970b18b6c0f556f4",
"clusterUuid": "440f315c2b0c3561850f610f7d200959",
"imageUuid": "72da4314ad063029a40ebec8e1204c70",
"hostUuid": "2cac9cfdc7d030bb8cfd80bb9d922e48",
"lastHostUuid": "c60aa755fe2d30fb80d4029e9d337ee9",
"instanceOfferingUuid": "3ce1eb11a41030499e3e74685a568dbb",
"rootVolumeUuid": "e6cf673fb915361caa4ab93e03c6e3a6",
"platform": "Linux",
"defaultL3NetworkUuid": "aff87442d7d535a2a46914f6a312c285",
"type": "UserVm",
"hypervisorType": "KVM",
"memorySize": 8.589934592E9,
"cpuNum": 1.0,
"allocatorStrategy": "LastHostPreferredAllocatorStrategy",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM",
"state": "Stopped"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.0.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventories | List | 详情参考inventories | 4.0.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| zoneUuid | String | 区域UUID | 4.0.0 |
| clusterUuid | String | 集群UUID | 4.0.0 |
| imageUuid | String | 镜像UUID | 4.0.0 |
| hostUuid | String | 物理机UUID | 4.0.0 |
| lastHostUuid | String | 4.0.0 | |
| instanceOfferingUuid | String | 计算规格UUID | 4.0.0 |
| rootVolumeUuid | String | 根云盘UUID | 4.0.0 |
| platform | String | 4.0.0 | |
| defaultL3NetworkUuid | String | 4.0.0 | |
| type | String | 4.0.0 | |
| hypervisorType | String | 4.0.0 | |
| memorySize | Long | 4.0.0 | |
| cpuNum | Integer | 4.0.0 | |
| cpuSpeed | Long | 4.0.0 | |
| allocatorStrategy | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| state | String | 4.0.0 | |
| vmNics | List | 详情参考vmNics | 4.0.0 |
| allVolumes | List | 详情参考allVolumes | 4.0.0 |
#vmNics
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| mac | String | MAC地址 | 4.0.0 |
| hypervisorType | String | 虚拟化类型 | 4.0.0 |
| netmask | String | 子网掩码 | 4.0.0 |
| gateway | String | 网关 | 4.0.0 |
| metaData | String | 4.0.0 | |
| ipVersion | Integer | IP地址版本 | 4.0.0 |
| deviceId | Integer | 设备ID | 4.0.0 |
| type | String | 网卡类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| usedIps | List | 详情参考usedIps | 4.0.0 |
#usedIps
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| ipRangeUuid | String | IP段UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ipVersion | Integer | IP协议号 | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| netmask | String | 网络掩码 | 4.0.0 |
| gateway | String | 网关地址 | 4.0.0 |
| usedFor | String | 4.0.0 | |
| ipInLong | long | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#allVolumes
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| primaryStorageUuid | String | 主存储UUID | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| diskOfferingUuid | String | 云盘规格UUID | 4.0.0 |
| rootImageUuid | String | 云盘根镜像UUID | 4.0.0 |
| installPath | String | 云盘在主存储上的路径 | 4.0.0 |
| type | String | 云盘类型,数据云盘/根云盘 | 4.0.0 |
| format | String | 云盘格式 | 4.0.0 |
| size | Long | 云盘大小 | 4.0.0 |
| actualSize | Long | 云盘真实大小 | 4.0.0 |
| deviceId | Integer | 4.0.0 | |
| state | String | 云盘是否开启 | 4.0.0 |
| status | String | 云盘状态 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| isShareable | Boolean | 是否共享云盘 | 4.0.0 |
| volumeQos | String | 云盘Qos,格式如total=1048576 | 4.0.0 |
SDK示例
Java
SDK
GetCandidateVMForAttachingAffinityGroupAction action = new GetCandidateVMForAttachingAffinityGroupAction();
action.affinityGroupUuid = "a92158a6b1b333b296e93a4bd8d36e5e";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetCandidateVMForAttachingAffinityGroupAction.Result res = action.call();Python
SDK
GetCandidateVMForAttachingAffinityGroupAction action = GetCandidateVMForAttachingAffinityGroupAction()
action.affinityGroupUuid = "a92158a6b1b333b296e93a4bd8d36e5e"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetCandidateVMForAttachingAffinityGroupAction.Result res = action.call()创建云主机时获取可加入非亲和组(GetCandidateAffinityGroupForCreatingVm)
API请求
URLs
GET zstack/v1/vm-instances/candidate-affinityGroupHeaders
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-instances/candidate-affinityGroup?zoneUuid=eb4be792076530faa865def5bb1f43d2&clusterUuid=05033aee073b3bb69941eac180992e74&hostUuid=7007ba51ded339fab41ec19f2d721135参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| zoneUuid | String | query | 区域UUID | 4.1.0 | |
| clusterUuid (可选) | String | query | 集群UUID | 4.1.0 | |
| hostUuid (可选) | String | query | 物理机UUID | 4.1.0 | |
| systemTags (可选) | List | query | 系统标签 | 4.1.0 | |
| userTags (可选) | List | query | 用户标签 | 4.1.0 |
API返回
返回示例
{
"inventories": [
{
"uuid": "7c5c014902fa309b91e0e01b2f5e6cfb",
"name": "affinity-group",
"description": "affinity group for test",
"policy": "ANTISOFT",
"version": "1.0",
"type": "HOST"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.1.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.1.0 |
| inventories | List | 详情参考inventories | 4.1.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.1.0 |
| description | String | 错误的概要描述 | 4.1.0 |
| details | String | 错误的详细信息 | 4.1.0 |
| elaboration | String | 保留字段,默认为null | 4.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.1.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| name | String | 资源名称 | 4.1.0 |
| description | String | 资源的详细描述 | 4.1.0 |
| policy | String | 4.1.0 | |
| version | String | 4.1.0 | |
| type | String | 4.1.0 | |
| appliance | String | 4.1.0 | |
| state | String | 4.1.0 | |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| usages | List | 详情参考usages | 4.1.0 |
#usages
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| affinityGroupUuid | String | 4.1.0 | |
| resourceUuid | String | 4.1.0 | |
| resourceType | String | 4.1.0 | |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
SDK示例
Java
SDK
GetCandidateAffinityGroupForCreatingVmAction action = new GetCandidateAffinityGroupForCreatingVmAction();
action.zoneUuid = "eb4be792076530faa865def5bb1f43d2";
action.clusterUuid = "05033aee073b3bb69941eac180992e74";
action.hostUuid = "7007ba51ded339fab41ec19f2d721135";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetCandidateAffinityGroupForCreatingVmAction.Result res = action.call();Python
SDK
GetCandidateAffinityGroupForCreatingVmAction action = GetCandidateAffinityGroupForCreatingVmAction()
action.zoneUuid = "eb4be792076530faa865def5bb1f43d2"
action.clusterUuid = "05033aee073b3bb69941eac180992e74"
action.hostUuid = "7007ba51ded339fab41ec19f2d721135"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetCandidateAffinityGroupForCreatingVmAction.Result res = action.call()