文档目录

虚拟机调度策略相关接口

新建主机调度组(CreateHostSchedulingRuleGroup)

API请求

URLs
POST zstack/v1/hostSchedulingRuleGroup
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-uuid
Curl示例
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-uuid
Body
{
  "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-uuid
Curl示例
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}/host
Headers
Authorization: OAuth the-session-uuid
Curl示例
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/vmSchedulingRuleGroup
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-uuid
Curl示例
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}/update
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-uuid
Curl示例
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-uuid
Curl示例
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/state
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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/vmsSchedulingRule
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 规则
  • AFFINITY
  • ANTIAFFINITY
4.6.0
mode String body(包含在params结构中) 执行力度
  • SOFT
  • HARD
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结构中)
  • antiSoft
  • antiHard
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-uuid
Curl示例
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 删除模式
  • Permissive
  • Enforcing
  • Permissive
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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 改变为的状态
  • enable
  • disable
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}/update
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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/vmSchedulingRule
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 调度规则
  • AFFINITY
  • ANTIAFFINITY
4.6.0
mode String body(包含在validateVmSchedulingRule结构中) 执行模式
  • SOFT
  • HARD
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-history
GET zstack//v1/vm/sched-history/{vmInstanceUuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
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=15b5b8ab631d300592bf83d66331f914
curl -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/group
Headers
Authorization: OAuth the-session-uuid
Curl示例
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/group
Headers
Authorization: OAuth the-session-uuid
Curl示例
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/schedulingRule
Headers
Authorization: OAuth the-session-uuid
Curl示例
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/SchedulingRule
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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/state
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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/executeState
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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()
开发手册 | ZStack ZSphere · ZVF | ZStack 资源中心