计算规格相关接口
创建云主机规格(CreateInstanceOffering)
API请求
URLs
POST zstack/v1/instance-offeringsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "instanceOffering",
"cpuNum": 2.0,
"memorySize": 2097152.0,
"sortKey": 0.0,
"type": "UserVm"
},
"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":"instanceOffering","cpuNum":2.0,"memorySize":2097152.0,"sortKey":0.0,"type":"UserVm"}}' \
http://localhost:8080/zstack/v1/instance-offerings参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 0.6 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 0.6 | |
| cpuNum | int | body(包含在params结构中) | CPU数目 | 0.6 | |
| memorySize | long | body(包含在params结构中) | 内存大小, 单位Byte | 0.6 | |
| allocatorStrategy (可选) | String | body(包含在params结构中) | 分配策略 |
|
0.6 |
| sortKey (可选) | int | body(包含在params结构中) | 排序键 | 0.6 | |
| type (可选) | String | body(包含在params结构中) | 类型 | 0.6 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
Note:
- ZStack Cloud创建计算规格时支持添加GPU规格信息,SystemTags增加pciRom选项。
- 选项格式为:
pciRomUuid::UUID,UUID代表PCI设备固件UUID。 - 例如:
pciRomUuid::5fd71606d5af451d981413f35367a8d6
- 选项格式为:
- ZStack Cloud创建计算规格时支持自定义实例规格参数,SystemTags增加instanceOfferingUserConfig选项。
- 选项格式为:
instanceOfferingUserConfig::xxx,XXX要求JSON字符串。
- 选项格式为:
API返回
返回示例
{
"inventory": {
"uuid": "d04e02a97d6c4ad0b0acee2a2f6c7084",
"name": "instanceOffering1",
"cpuNum": 2.0,
"cpuSpeed": 1.0,
"type": "UserVm",
"allocatorStrategy": "Mevoco",
"createDate": "Jun 7, 2017 9:20:40 PM",
"lastOpDate": "Jun 7, 2017 9:20:40 PM",
"state": "Enabled"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventory | InstanceOfferingInventory | 详情参考inventory | 0.6 |
#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,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| cpuNum | Integer | CPU数量 | 0.6 |
| cpuSpeed | Integer | CPU速度 | 0.6 |
| memorySize | Long | 内存大小 | 0.6 |
| type | String | 类型 | 0.6 |
| allocatorStrategy | String | 分配策略 | 0.6 |
| sortKey | Integer | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| state | String | 状态(启用,禁用) | 0.6 |
SDK示例
Java
SDK
CreateInstanceOfferingAction action = new CreateInstanceOfferingAction();
action.name = "instanceOffering";
action.cpuNum = 2.0;
action.memorySize = 2097152.0;
action.sortKey = 0.0;
action.type = "UserVm";
action.sessionId = "1567ec4024724d2ea60eba29b957158c";
CreateInstanceOfferingAction.Result res = action.call();Python SDK
CreateInstanceOfferingAction action = CreateInstanceOfferingAction()
action.name = "instanceOffering"
action.cpuNum = 2.0
action.memorySize = 2097152.0
action.sortKey = 0.0
action.type = "UserVm"
action.sessionId = "427dd2d091a54a0999e7e31eac07fc83"
CreateInstanceOfferingAction.Result res = action.call()
删除云主机规格(DeleteInstanceOffering)
API请求
URLs
DELETE zstack/v1/instance-offerings/{uuid}?deleteMode={deleteMode}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth cd94b78dc89842c19ea248ddb04816c0" \
-X DELETE http://localhost:8080/zstack/v1/instance-offerings/d4061032ef3940b990ba671acd1221fc?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| deleteMode (可选) | String | body | 删除模式 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
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
DeleteInstanceOfferingAction action = new DeleteInstanceOfferingAction();
action.uuid = "07ce817b8d9d4f629c2bd65daae9b7bb";
action.deleteMode = "Permissive";
action.sessionId = "fd2aa30babca411780c7df97d3ae6f9f";
DeleteInstanceOfferingAction.Result res = action.call();Python
SDK
DeleteInstanceOfferingAction action = DeleteInstanceOfferingAction()
action.uuid = "694e24b4a64d4b45936a9bbcf878078b"
action.deleteMode = "Permissive"
action.sessionId = "a13ac6edf7f546e48c4dbfea66429610"
DeleteInstanceOfferingAction.Result res = action.call()查询云主机规格(QueryInstanceOffering)
API请求
URLs
GET zstack/v1/instance-offerings
GET zstack/v1/instance-offerings/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth d4743a8bc4eb4dd7a827c58e20437e85" \
-X GET http://localhost:8080/zstack/v1/instance-offerings?q=uuid=3695f87b54594284b9ce542b2b653fb7curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth e053145ce7d74cad8686d9b2a91e2754" \
-X GET http://localhost:8080/zstack/v1/instance-offerings/b1c967830a5f4b198b291d7f22cc8a2f可查询字段
运行CLI命令行工具,输入QueryInstanceOffering并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "4f7e7eff5bb04f7cacc33a18006a0c72",
"name": "instanceOffering1",
"cpuNum": 2.0,
"cpuSpeed": 1.0,
"type": "UserVm",
"allocatorStrategy": "Mevoco",
"createDate": "Jun 7, 2017 9:20:13 PM",
"lastOpDate": "Jun 7, 2017 9:20:13 PM",
"state": "Enabled"
}
]
}
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventories | List | 详情参考inventories | 0.6 |
#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 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| cpuNum | Integer | CPU数量 | 0.6 |
| cpuSpeed | Integer | CPU速度 | 0.6 |
| memorySize | Long | 内存大小 | 0.6 |
| type | String | 类型 | 0.6 |
| allocatorStrategy | String | 分配策略 | 0.6 |
| sortKey | Integer | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| state | String | 状态(启用,禁用) | 0.6 |
SDK示例
Java
SDK
QueryInstanceOfferingAction action = new QueryInstanceOfferingAction();
action.conditions = asList("uuid=8c77205cdc114a9090bc5d978b9d5285");
action.sessionId = "7d91852598ca41ca904539b34396c2ec";
QueryInstanceOfferingAction.Result res = action.call();Python
SDK
QueryInstanceOfferingAction action = QueryInstanceOfferingAction()
action.conditions = ["uuid=6539c13e7a8843b7860ebc53c3f7e892"]
action.sessionId = "8700ab8ae22e48fb81a793b9a51e970a"
QueryInstanceOfferingAction.Result res = action.call()更改云主机规格(ChangeInstanceOffering)
API请求
URLs
PUT zstack/v1/vm-instances/{vmInstanceUuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeInstanceOffering": {
"instanceOfferingUuid": "818e8cad0af948baa9b8e7d8d7116abb"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeInstanceOffering":{"instanceOfferingUuid":"7c46b8e59bf63b5f94fda63fce797581"}}' \
http://localhost:8080/zstack/v1/vm-instances/6b322ba8e03136e6bf200431e550d1a6/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vmInstanceUuid | String | url | 云主机UUID | 0.6 | |
| instanceOfferingUuid | String | body(包含在changeInstanceOffering结构中) | 计算规格UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
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
ChangeInstanceOfferingAction action = new ChangeInstanceOfferingAction();
action.vmInstanceUuid = "c63937d254e24da1b06afc433b0e27ff";
action.instanceOfferingUuid = "3186c364b49f485ba14591f81387010a";
action.sessionId = "3d53ea4d8e914d56ae795e9592a63317";
ChangeInstanceOfferingAction.Result res = action.call();Python
SDK
ChangeInstanceOfferingAction action = ChangeInstanceOfferingAction()
action.vmInstanceUuid = "5783bd4c68c04d9f9fe20783d92fa822"
action.instanceOfferingUuid = "8a9f3296030948b6bcda8c75a05458c9"
action.sessionId = "a19417648f9440c5b84b6ee4280dcefc"
ChangeInstanceOfferingAction.Result res = action.call()更新云主机规格(UpdateInstanceOffering)
API请求
URLs
PUT zstack/v1/instance-offerings/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateInstanceOffering": {
"name": "new name"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateInstanceOffering":{"name":"new name"}}' \
http://localhost:8080/zstack/v1/instance-offerings/d071c5278471319291f6d1b44522a044/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| name (可选) | String | body(包含在updateInstanceOffering结构中) | 资源名称 | 0.6 | |
| description (可选) | String | body(包含在updateInstanceOffering结构中) | 资源的详细描述 | 0.6 | |
| allocatorStrategy (可选) | String | body(包含在updateInstanceOffering结构中) |
|
2.3.1 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"uuid": "341367815c8e45209787b2361837109e",
"name": "instanceOffering1",
"cpuNum": 2.0,
"cpuSpeed": 1.0,
"type": "UserVm",
"allocatorStrategy": "Mevoco",
"createDate": "Jun 7, 2017 9:20:13 PM",
"lastOpDate": "Jun 7, 2017 9:20:13 PM",
"state": "Enabled"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventory | InstanceOfferingInventory | 详情参考inventory | 0.6 |
#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,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| cpuNum | Integer | CPU数量 | 0.6 |
| cpuSpeed | Integer | CPU速度 | 0.6 |
| memorySize | Long | 内存大小 | 0.6 |
| type | String | 类型 | 0.6 |
| allocatorStrategy | String | 分配策略 | 0.6 |
| sortKey | Integer | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| state | String | 状态(启用,禁用) | 0.6 |
SDK示例
Java
SDK
UpdateInstanceOfferingAction action = new UpdateInstanceOfferingAction();
action.uuid = "0d71c980598b4c7b8a8eeef3148ced95";
action.name = "new name";
action.sessionId = "12bf1da37d444e2fbb6de5dc98f8d5f0";
UpdateInstanceOfferingAction.Result res = action.call();Python
SDK
UpdateInstanceOfferingAction action = UpdateInstanceOfferingAction()
action.uuid = "bbe8cd1494d2413a8951623657a4f9c0"
action.name = "new name"
action.sessionId = "9251753d64fa477aa7cdd3956a94ff18"
UpdateInstanceOfferingAction.Result res = action.call()更改云主机规格的启用状态(ChangeInstanceOfferingState)
API请求
URLs
PUT zstack/v1/instance-offerings/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeInstanceOfferingState": {
"stateEvent": "enable"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 318fe86dc2c2424c863623942dcf8e6f" \
-X PUT http://localhost:8080/zstack/v1/instance-offerings/049d4fa0268549c9b3e3e84f4c280d09/actions?参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| stateEvent | String | body(包含在changeInstanceOfferingState结构中) | 状态事件 |
|
0.6 |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"uuid": "372d111a940b46b39da8c32c5629ba66",
"name": "instanceOffering1",
"cpuNum": 2.0,
"cpuSpeed": 1.0,
"type": "UserVm",
"allocatorStrategy": "Mevoco",
"createDate": "Jun 7, 2017 9:20:36 PM",
"lastOpDate": "Jun 7, 2017 9:20:36 PM",
"state": "Enabled"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventory | InstanceOfferingInventory | 详情参考inventory | 0.6 |
#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,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| cpuNum | Integer | CPU数量 | 0.6 |
| cpuSpeed | Integer | CPU速度 | 0.6 |
| memorySize | Long | 内存大小 | 0.6 |
| type | String | 类型 | 0.6 |
| allocatorStrategy | String | 分配策略 | 0.6 |
| sortKey | Integer | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| state | String | 状态(启用,禁用) | 0.6 |
SDK示例
Java
SDK
ChangeInstanceOfferingStateAction action = new ChangeInstanceOfferingStateAction();
action.uuid = "ca7a911366f74e9b8e4222785cf963a1";
action.stateEvent = "enable";
action.sessionId = "86cf8ce78421434eb9458504f7449c64";
ChangeInstanceOfferingStateAction.Result res = action.call();Python
SDK
ChangeInstanceOfferingStateAction action = ChangeInstanceOfferingStateAction()
action.uuid = "5cfc5009c0b74319855ccd197fa04a16"
action.stateEvent = "enable"
action.sessionId = "c593d4f452fd498cb60679a0956f1929"
ChangeInstanceOfferingStateAction.Result res = action.call()