文档目录

云主机调度策略相关接口

创建物理机调度组(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: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示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()
开发手册 | 5.5.30 | ZStack Cloud · ZCF | ZStack 资源中心