PCI设备相关接口
查询PCI设备(QueryPciDevice)
API请求
GET zstack/v1/pci-device/pci-devices
GET zstack/v1/pci-device/pci-devices/{uuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 043ef942ef97460bba5c9381bb7a7455" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-devicescurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 4af958832a32465aa544c3d7722af1da" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-devices/5b39eaae24e84e4ca7eb0bc56d6827c1可查询字段
运行CLI命令行工具,输入QueryPciDevice并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.1 |
| inventories | List | 详情参考inventories | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.1 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 2.1 |
| hostUuid | String | 物理机UUID | 2.1 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 2.1 |
| pciSpecUuid | String | PCI设备规格UUID | 3.5.0 |
| vendorId | String | 供应商ID | 2.1 |
| deviceId | String | 设备ID | 2.1 |
| subvendorId | String | 子供应商ID | 2.1 |
| subdeviceId | String | 子设备ID | 2.1 |
| pciDeviceAddress | String | PCI设备地址 | 2.1 |
| createDate | Timestamp | 创建时间 | 2.1 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.1 |
| type | PciDeviceType | 详情参考type | 2.1 |
| state | PciDeviceState | 详情参考state | 2.1 |
| status | PciDeviceStatus | 详情参考status | 2.1 |
| virtStatus | PciDeviceVirtStatus | 详情参考virtStatus | 3.5.0 |
| metaData | PciDeviceMetaData | 详情参考metaData | 2.1 |
| matchedPciDeviceOfferingRef | List | 详情参考matchedPciDeviceOfferingRef | 2.1 |
| mdevSpecRefs | List | 详情参考mdevSpecRefs | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | PciDeviceType | GPU显卡控制器 | 2.1 |
| GPU_Audio_Controller | PciDeviceType | GPU声卡控制器 | 2.1 |
| GPU_3D_Controller | PciDeviceType | GPU 3D控制器 | 2.1 |
| Moxa_Device | PciDeviceType | MOXA卡 | 2.1 |
| Generic | PciDeviceType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PciDeviceState | 启用 | 2.1 |
| Disabled | PciDeviceState | 停用 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | PciDeviceStatus | 就绪 | 2.1 |
| Attached | PciDeviceStatus | 已挂载 | 2.1 |
| System | PciDeviceStatus | 系统 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| UNVIRTUALIZABLE | PciDeviceVirtStatus | 不可虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZED | PciDeviceVirtStatus | 已SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZED | PciDeviceVirtStatus | 已VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUAL | PciDeviceVirtStatus | SRIOV虚拟设备 | 3.5.0 |
| UNKNOWN | PciDeviceVirtStatus | 未知 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| metaData | String | 2.1 | |
| metaDataEntries | List | 详情参考metaDataEntries | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| key | String | 键 | 2.1 |
| value | String | 值 | 2.1 |
| op | PciDeviceMetaDataOperator | 详情参考op | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Equal | PciDeviceMetaDataOperator | 相等 | 2.1 |
| Unequal | PciDeviceMetaDataOperator | 不等 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | 2.1 | |
| pciDeviceOfferingUuid | String | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | PCI设备UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| effective | Boolean | 当前MDEV规格是否被用于切分该PCI设备 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
SDK示例
QueryPciDeviceAction action = new QueryPciDeviceAction();
action.conditions = asList();
action.sessionId = "9895783acb8541c6938417b602429219";
QueryPciDeviceAction.Result res = action.call();QueryPciDeviceAction action = QueryPciDeviceAction()
action.conditions = []
action.sessionId = "515d02b3a2094575beadbf3db7127880"
QueryPciDeviceAction.Result res = action.call()更新PCI设备(UpdatePciDevice)
API请求
PUT zstack/v1/pci-device/pci-devices/{uuid}/actionsAuthorization: OAuth the-session-uuid{
"updatePciDevice": {
"state": "Disabled",
"description": "test pci",
"metaData": "key1:value1;key2:value2"
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updatePciDevice":{"state":"Disabled","description":"test pci","metaData":"key1:value1;key2:value2"}}' \
http://localhost:8080/zstack/v1/pci-device/pci-devices/4bec7e7c2c1e337599e0455165906fd5/actions| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.1 | |
| state (可选) | String | body(包含在updatePciDevice结构中) |
|
2.1 | |
| description (可选) | String | body(包含在updatePciDevice结构中) | 资源的详细描述 | 2.1 | |
| metaData (可选) | String | body(包含在updatePciDevice结构中) | 2.1 | ||
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 |
API返回
{
"inventory": {
"description": "test pci",
"hostUuid": "47c749c4520c3c5ba2ddcb6bf725cc40",
"vmInstanceUuid": "8452e9231dd339158054902001b453d0",
"status": "Active",
"state": "Disabled",
"type": "GPU_Video_Controller",
"vendorId": "10de",
"deviceId": "0e0f",
"subvendorId": "10de",
"subdeviceId": "118b",
"metaData": {
"metaData": "render:Equal:true;anime:Equal:true",
"metaDataEntries": [
{
"key": "render",
"op": "Equal",
"value": "true"
},
{
"key": "anime",
"op": "Equal",
"value": "true"
}
]
},
"pciDeviceAddress": "0000:06:00.1"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.1 |
| inventory | PciDeviceInventory | 详情参考inventory | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.1 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 2.1 |
| hostUuid | String | 物理机UUID | 2.1 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 2.1 |
| pciSpecUuid | String | PCI设备规格UUID | 3.5.0 |
| vendorId | String | 供应商ID | 2.1 |
| deviceId | String | 设备ID | 2.1 |
| subvendorId | String | 子供应商ID | 2.1 |
| subdeviceId | String | 子设备ID | 2.1 |
| pciDeviceAddress | String | PCI设备地址 | 2.1 |
| createDate | Timestamp | 创建时间 | 2.1 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.1 |
| type | PciDeviceType | 详情参考type | 2.1 |
| state | PciDeviceState | 详情参考state | 2.1 |
| status | PciDeviceStatus | 详情参考status | 2.1 |
| virtStatus | PciDeviceVirtStatus | 详情参考virtStatus | 3.5.0 |
| metaData | PciDeviceMetaData | 详情参考metaData | 2.1 |
| matchedPciDeviceOfferingRef | List | 详情参考matchedPciDeviceOfferingRef | 2.1 |
| mdevSpecRefs | List | 详情参考mdevSpecRefs | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | PciDeviceType | GPU显卡控制器 | 2.1 |
| GPU_Audio_Controller | PciDeviceType | GPU声卡控制器 | 2.1 |
| GPU_3D_Controller | PciDeviceType | GPU 3D控制器 | 2.1 |
| Moxa_Device | PciDeviceType | MOXA卡 | 2.1 |
| Generic | PciDeviceType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PciDeviceState | 启用 | 2.1 |
| Disabled | PciDeviceState | 停用 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | PciDeviceStatus | 就绪 | 2.1 |
| Attached | PciDeviceStatus | 已挂载 | 2.1 |
| System | PciDeviceStatus | 系统 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| UNVIRTUALIZABLE | PciDeviceVirtStatus | 不可虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZED | PciDeviceVirtStatus | 已SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZED | PciDeviceVirtStatus | 已VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUAL | PciDeviceVirtStatus | SRIOV虚拟设备 | 3.5.0 |
| UNKNOWN | PciDeviceVirtStatus | 未知 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| metaData | String | 2.1 | |
| metaDataEntries | List | 详情参考metaDataEntries | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| key | String | 键 | 2.1 |
| value | String | 值 | 2.1 |
| op | PciDeviceMetaDataOperator | 详情参考op | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Equal | PciDeviceMetaDataOperator | 相等 | 2.1 |
| Unequal | PciDeviceMetaDataOperator | 不等 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | 2.1 | |
| pciDeviceOfferingUuid | String | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | PCI设备UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| effective | Boolean | 当前MDEV规格是否被用于切分该PCI设备 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
SDK示例
UpdatePciDeviceAction action = new UpdatePciDeviceAction();
action.uuid = "4bec7e7c2c1e337599e0455165906fd5";
action.state = "Disabled";
action.description = "test pci";
action.metaData = "key1:value1;key2:value2";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdatePciDeviceAction.Result res = action.call();UpdatePciDeviceAction action = UpdatePciDeviceAction()
action.uuid = "4bec7e7c2c1e337599e0455165906fd5"
action.state = "Disabled"
action.description = "test pci"
action.metaData = "key1:value1;key2:value2"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdatePciDeviceAction.Result res = action.call()删除PCI设备(DeletePciDevice)
删除失效的PCI设备,只允许删除Inactive状态的PCI设备。
API请求
DELETE zstack/v1/pci-device/pci-devices/{uuid}?deleteMode={deleteMode}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth e48a9a18b86946af89ad991945942f6c" \
-X DELETE http://localhost:8080/zstack/v1/pci-device/pci-devices/eae6d78d9ae344babc2c32028bea20f0?deleteMode=Permissive| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.1 | |
| deleteMode (可选) | String | url | 2.1 | ||
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 |
API返回
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
DeletePciDeviceAction action = new DeletePciDeviceAction();
action.uuid = "435ae2ba1b3948a68835af0134ab8a97";
action.deleteMode = "Permissive";
action.sessionId = "c9e0d2c1a0614733854d12cb9670b475";
DeletePciDeviceAction.Result res = action.call();DeletePciDeviceAction action = DeletePciDeviceAction()
action.uuid = "5ab09caf016345adad9ee77462da8acf"
action.deleteMode = "Permissive"
action.sessionId = "f048bfdfbdad403b9e2223a0d8b96bc6"
DeletePciDeviceAction.Result res = action.call()获取PCI设备列表(GetPciDeviceCandidatesForAttachingVm)
获取云主机可绑定PCI设备列表。
API请求
GET zstack/v1/vm-instances/{vmInstanceUuid}/candidate-pci-devicesAuthorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 3ac79a27693a48bda0c56e1a1ee3c4f6" \
-X GET http://localhost:8080/zstack/v1/vm-instances/30f116d6602248249266776f279ef674/candidate-pci-devices| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vmInstanceUuid | String | url | 云主机UUID | 2.1 | |
| systemTags (可选) | List | query | 2.1 | ||
| userTags (可选) | List | query | 2.1 | ||
| types (可选) | List | query | 2.1 |
API返回
{
"inventories": [
{
"uuid": "99bc47cf68e340a1b0a85c874637ec7b",
"hostUuid": "f853669ede9c4699bdff97e30d91235b",
"status": "Attached",
"type": "GPU_Video_Controller",
"vendorId": "10de",
"deviceId": "0e0f",
"subvendorId": "10de",
"subdeviceId": "118b",
"pciDeviceAddress": "0000:06:00.1"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventories | List | 详情参考inventories | 0.6 |
| error | ErrorCode | 详情参考error | 0.6 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.1 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 2.1 |
| hostUuid | String | 物理机UUID | 2.1 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 2.1 |
| pciSpecUuid | String | PCI设备规格UUID | 3.5.0 |
| vendorId | String | 供应商ID | 2.1 |
| deviceId | String | 设备ID | 2.1 |
| subvendorId | String | 子供应商ID | 2.1 |
| subdeviceId | String | 子设备ID | 2.1 |
| pciDeviceAddress | String | PCI设备地址 | 2.1 |
| createDate | Timestamp | 创建时间 | 2.1 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.1 |
| type | PciDeviceType | 详情参考type | 2.1 |
| state | PciDeviceState | 详情参考state | 2.1 |
| status | PciDeviceStatus | 详情参考status | 2.1 |
| virtStatus | PciDeviceVirtStatus | 详情参考virtStatus | 3.5.0 |
| metaData | PciDeviceMetaData | 详情参考metaData | 2.1 |
| matchedPciDeviceOfferingRef | List | 详情参考matchedPciDeviceOfferingRef | 2.1 |
| mdevSpecRefs | List | 详情参考mdevSpecRefs | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | PciDeviceType | GPU显卡控制器 | 2.1 |
| GPU_Audio_Controller | PciDeviceType | GPU声卡控制器 | 2.1 |
| GPU_3D_Controller | PciDeviceType | GPU 3D控制器 | 2.1 |
| Moxa_Device | PciDeviceType | MOXA卡 | 2.1 |
| Generic | PciDeviceType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PciDeviceState | 启用 | 2.1 |
| Disabled | PciDeviceState | 停用 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | PciDeviceStatus | 就绪 | 2.1 |
| Attached | PciDeviceStatus | 已挂载 | 2.1 |
| System | PciDeviceStatus | 系统 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| UNVIRTUALIZABLE | PciDeviceVirtStatus | 不可虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZED | PciDeviceVirtStatus | 已SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZED | PciDeviceVirtStatus | 已VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUAL | PciDeviceVirtStatus | SRIOV虚拟设备 | 3.5.0 |
| UNKNOWN | PciDeviceVirtStatus | 未知 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| metaData | String | 2.1 | |
| metaDataEntries | List | 详情参考metaDataEntries | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| key | String | 键 | 2.1 |
| value | String | 值 | 2.1 |
| op | PciDeviceMetaDataOperator | 详情参考op | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Equal | PciDeviceMetaDataOperator | 相等 | 2.1 |
| Unequal | PciDeviceMetaDataOperator | 不等 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | 2.1 | |
| pciDeviceOfferingUuid | String | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | PCI设备UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| effective | Boolean | 当前MDEV规格是否被用于切分该PCI设备 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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示例
GetPciDeviceCandidatesForAttachingVmAction action = new GetPciDeviceCandidatesForAttachingVmAction();
action.vmInstanceUuid = "178ad6dd410d4f75a5b956c6f9525603";
action.sessionId = "865b02dddee54fdea331471b5c266728";
GetPciDeviceCandidatesForAttachingVmAction.Result res = action.call();GetPciDeviceCandidatesForAttachingVmAction action = GetPciDeviceCandidatesForAttachingVmAction()
action.vmInstanceUuid = "0b89549b899d4e0ca421c443df97132f"
action.sessionId = "675223f565f747229d25c72354f866bb"
GetPciDeviceCandidatesForAttachingVmAction.Result res = action.call()获取可加载PCI设备(GetPciDeviceCandidatesForNewCreateVm)
为新建虚拟机获取可加载PCI设备。
API请求
GET zstack/v1/pci-device/candidate-pci-devices-for-new-create-vm
Authorization: OAuth the-session-uuid
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device/candidate-pci-devices-for-new-create-vm?hostUuid=3376aee6af913e278a1a6aafc28c2e94| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| hostUuid (可选) | String | query | 物理机UUID | 2.4 | |
| clusterUuids (可选) | List | query | 2.4 | ||
| types (可选) | List | query | 2.4 | ||
| systemTags (可选) | List | query | 2.4 | ||
| userTags (可选) | List | query | 2.4 |
API返回
{
"inventories": [
{
"uuid": "1d2d54391e4d303cbf12543508b208ba",
"hostUuid": "d98a93185af134fda630723444fd49d4",
"status": "Attached",
"type": "GPU_Video_Controller",
"vendorId": "10de",
"deviceId": "0e0f",
"subvendorId": "10de",
"subdeviceId": "118b",
"pciDeviceAddress": "0000:06:00.1"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventories | List | 详情参考inventories | 0.6 |
| error | ErrorCode | 详情参考error | 0.6 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.1 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 2.1 |
| hostUuid | String | 物理机UUID | 2.1 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 2.1 |
| pciSpecUuid | String | PCI设备规格UUID | 3.5.0 |
| vendorId | String | 供应商ID | 2.1 |
| deviceId | String | 设备ID | 2.1 |
| subvendorId | String | 子供应商ID | 2.1 |
| subdeviceId | String | 子设备ID | 2.1 |
| pciDeviceAddress | String | PCI设备地址 | 2.1 |
| createDate | Timestamp | 创建时间 | 2.1 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.1 |
| type | PciDeviceType | 详情参考type | 2.1 |
| state | PciDeviceState | 详情参考state | 2.1 |
| status | PciDeviceStatus | 详情参考status | 2.1 |
| virtStatus | PciDeviceVirtStatus | 详情参考virtStatus | 3.5.0 |
| metaData | PciDeviceMetaData | 详情参考metaData | 2.1 |
| matchedPciDeviceOfferingRef | List | 详情参考matchedPciDeviceOfferingRef | 2.1 |
| mdevSpecRefs | List | 详情参考mdevSpecRefs | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | PciDeviceType | GPU显卡控制器 | 2.1 |
| GPU_Audio_Controller | PciDeviceType | GPU声卡控制器 | 2.1 |
| GPU_3D_Controller | PciDeviceType | GPU 3D控制器 | 2.1 |
| Moxa_Device | PciDeviceType | MOXA卡 | 2.1 |
| Generic | PciDeviceType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PciDeviceState | 启用 | 2.1 |
| Disabled | PciDeviceState | 停用 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | PciDeviceStatus | 就绪 | 2.1 |
| Attached | PciDeviceStatus | 已挂载 | 2.1 |
| System | PciDeviceStatus | 系统 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| UNVIRTUALIZABLE | PciDeviceVirtStatus | 不可虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZED | PciDeviceVirtStatus | 已SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZED | PciDeviceVirtStatus | 已VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUAL | PciDeviceVirtStatus | SRIOV虚拟设备 | 3.5.0 |
| UNKNOWN | PciDeviceVirtStatus | 未知 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| metaData | String | 2.1 | |
| metaDataEntries | List | 详情参考metaDataEntries | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| key | String | 键 | 2.1 |
| value | String | 值 | 2.1 |
| op | PciDeviceMetaDataOperator | 详情参考op | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Equal | PciDeviceMetaDataOperator | 相等 | 2.1 |
| Unequal | PciDeviceMetaDataOperator | 不等 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | 2.1 | |
| pciDeviceOfferingUuid | String | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | PCI设备UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| effective | Boolean | 当前MDEV规格是否被用于切分该PCI设备 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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示例
GetPciDeviceCandidatesForNewCreateVmAction action = new GetPciDeviceCandidatesForNewCreateVmAction();
action.hostUuid = "3376aee6af913e278a1a6aafc28c2e94";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetPciDeviceCandidatesForNewCreateVmAction.Result res = action.call();
GetPciDeviceCandidatesForNewCreateVmAction action = GetPciDeviceCandidatesForNewCreateVmAction()
action.hostUuid = "3376aee6af913e278a1a6aafc28c2e94"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetPciDeviceCandidatesForNewCreateVmAction.Result res = action.call()绑定PCI设备到云主机(AttachPciDeviceToVm)
绑定PCI设备到云主机,管理员可以直接将状态为System、Active的PCI设备绑定到状态为Active、Stop的云主机。
API请求
POST zstack/v1/pci-device/pci-devices/{pciDeviceUuid}/attachAuthorization: OAuth the-session-uuid{
"params": {
"vmInstanceUuid": "ea787ebae18f4e668e5962fd7db982a3"
},
"systemTags": [],
"userTags": []
}上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vmInstanceUuid":"d3f41f8b996b390992cc4607e7bb10dc"}}' \
http://localhost:8080/zstack/v1/pci-device/pci-devices/201b541edbed3dccbebfaa57b3beb9bb/attach| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| pciDeviceUuid | String | url | PCI设备UUID | 2.1 | |
| vmInstanceUuid | String | body(包含在params结构中) | 云主机UUID | 2.1 | |
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 |
API返回
{
"inventory": {
"uuid": "4d0454694e264b2cafaa2adfd3e48602",
"hostUuid": "b17bee8ff0814edc9661a65b281d2d78",
"vmInstanceUuid": "ca4f71e2328f4f06b78d5b7255342dde",
"status": "Attached",
"type": "GPU_Video_Controller",
"vendorId": "10de",
"deviceId": "0e0f",
"subvendorId": "10de",
"subdeviceId": "118b",
"pciDeviceAddress": "0000:06:00.1"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.1 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 2.1 |
| hostUuid | String | 物理机UUID | 2.1 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 2.1 |
| vendorId | String | 2.1 | |
| pciSpecUuid | String | PCI设备规格UUID | 3.5.0 |
| vendorId | String | 供应商ID | 2.1 |
| deviceId | String | 设备ID | 2.1 |
| subvendorId | String | 子供应商ID | 2.1 |
| subdeviceId | String | 子设备ID | 2.1 |
| pciDeviceAddress | String | PCI设备地址 | 2.1 |
| createDate | Timestamp | 创建时间 | 2.1 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.1 |
| status | PciDeviceStatus | 详情参考status | 2.1 |
| state | PciDeviceState | 详情参考state | 2.1 |
| type | PciDeviceType | 详情参考type | 2.1 |
| virtStatus | PciDeviceVirtStatus | 详情参考virtStatus | 3.5.0 |
| metaData | PciDeviceMetaData | 详情参考metaData | 2.1 |
| matchedPciDeviceOfferingRef | List | 详情参考matchedPciDeviceOfferingRef | 2.1 |
| mdevSpecRefs | List | 详情参考mdevSpecRefs | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PciDeviceState | 启用 | 2.1 |
| Disabled | PciDeviceState | 停用 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | PciDeviceStatus | 就绪 | 2.1 |
| Attached | PciDeviceStatus | 已挂载 | 2.1 |
| System | PciDeviceStatus | 系统 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | PciDeviceType | GPU显卡控制器 | 2.1 |
| GPU_Audio_Controller | PciDeviceType | GPU声卡控制器 | 2.1 |
| GPU_3D_Controller | PciDeviceType | GPU 3D控制器 | 2.1 |
| Moxa_Device | PciDeviceType | MOXA卡 | 2.1 |
| Generic | PciDeviceType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| UNVIRTUALIZABLE | PciDeviceVirtStatus | 不可虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZED | PciDeviceVirtStatus | 已SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZED | PciDeviceVirtStatus | 已VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUAL | PciDeviceVirtStatus | SRIOV虚拟设备 | 3.5.0 |
| UNKNOWN | PciDeviceVirtStatus | 未知 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| metaData | String | 2.1 | |
| metaDataEntries | List | 详情参考metaDataEntries | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| key | String | 2.1 | |
| value | String | 2.1 | |
| op | PciDeviceMetaDataOperator | 详情参考op | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Equal | PciDeviceMetaDataOperator | 相等 | 2.1 |
| Unequal | PciDeviceMetaDataOperator | 不等 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | 2.1 | |
| pciDeviceOfferingUuid | String | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | PCI设备UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| effective | Boolean | 当前MDEV规格是否被用于切分该PCI设备 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
SDK示例
AttachPciDeviceToVmAction action = new AttachPciDeviceToVmAction();
action.pciDeviceUuid = "201b541edbed3dccbebfaa57b3beb9bb";
action.vmInstanceUuid = "d3f41f8b996b390992cc4607e7bb10dc";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AttachPciDeviceToVmAction.Result res = action.call();AttachPciDeviceToVmAction action = AttachPciDeviceToVmAction()
action.pciDeviceUuid = "201b541edbed3dccbebfaa57b3beb9bb"
action.vmInstanceUuid = "d3f41f8b996b390992cc4607e7bb10dc"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AttachPciDeviceToVmAction.Result res = action.call()卸载PCI设备(DetachPciDeviceFromVm)
从云主机上卸载PCI设备
API请求
POST zstack/v1/pci-device/pci-devices/{pciDeviceUuid}/detachAuthorization: OAuth the-session-uuid{
"params": {
"vmInstanceUuid": "3603d1324fdd4393b62f5bc21e558eef"
},
"systemTags": [],
"userTags": []
}上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vmInstanceUuid":"42d2fcfc217f38faa02035132e7b4b16"}}' \
http://localhost:8080/zstack/v1/pci-device/pci-devices/f44964a4252a3de3a435d2ab04bb9fb8/detach| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| pciDeviceUuid | String | url | 2.1 | ||
| vmInstanceUuid | String | body(包含在params结构中) | 云主机UUID | 2.1 | |
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 |
API返回
{
"inventory": {
"uuid": "3b1256e08a6544f4abe7de5b9ea81970",
"hostUuid": "056dbc6f8170409a953c120a16a87d18",
"status": "Active",
"type": "GPU_Video_Controller",
"vendorId": "10de",
"deviceId": "0e0f",
"subvendorId": "10de",
"subdeviceId": "118b",
"pciDeviceAddress": "0000:06:00.1"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.1 |
| inventory | PciDeviceInventory | 详情参考inventory | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.1 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 2.1 |
| hostUuid | String | 物理机UUID | 2.1 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 2.1 |
| pciSpecUuid | String | PCI设备规格UUID | 3.5.0 |
| vendorId | String | 供应商ID | 2.1 |
| deviceId | String | 设备ID | 2.1 |
| subvendorId | String | 子供应商ID | 2.1 |
| subdeviceId | String | 子设备ID | 2.1 |
| pciDeviceAddress | String | PCI设备地址 | 2.1 |
| createDate | Timestamp | 创建时间 | 2.1 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.1 |
| type | PciDeviceType | 详情参考type | 2.1 |
| state | PciDeviceState | 详情参考state | 2.1 |
| status | PciDeviceStatus | 详情参考status | 2.1 |
| virtStatus | PciDeviceVirtStatus | 详情参考virtStatus | 3.5.0 |
| metaData | PciDeviceMetaData | 详情参考metaData | 2.1 |
| matchedPciDeviceOfferingRef | List | 详情参考matchedPciDeviceOfferingRef | 2.1 |
| mdevSpecRefs | List | 详情参考mdevSpecRefs | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | PciDeviceType | GPU显卡控制器 | 2.1 |
| GPU_Audio_Controller | PciDeviceType | GPU声卡控制器 | 2.1 |
| GPU_3D_Controller | PciDeviceType | GPU 3D控制器 | 2.1 |
| Moxa_Device | PciDeviceType | MOXA卡 | 2.1 |
| Generic | PciDeviceType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PciDeviceState | 启用 | 2.1 |
| Disabled | PciDeviceState | 停用 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | PciDeviceStatus | 就绪 | 2.1 |
| Attached | PciDeviceStatus | 已挂载 | 2.1 |
| System | PciDeviceStatus | 系统 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| UNVIRTUALIZABLE | PciDeviceVirtStatus | 不可虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZABLE | PciDeviceVirtStatus | 支持VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUALIZED | PciDeviceVirtStatus | 已SRIOV虚拟化 | 3.5.0 |
| VFIO_MDEV_VIRTUALIZED | PciDeviceVirtStatus | 已VFIO_MDEV虚拟化 | 3.5.0 |
| SRIOV_VIRTUAL | PciDeviceVirtStatus | SRIOV虚拟设备 | 3.5.0 |
| UNKNOWN | PciDeviceVirtStatus | 未知 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| metaData | String | 2.1 | |
| metaDataEntries | List | 详情参考metaDataEntries | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| key | String | 键 | 2.1 |
| value | String | 值 | 2.1 |
| op | PciDeviceMetaDataOperator | 详情参考op | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Equal | PciDeviceMetaDataOperator | 相等 | 2.1 |
| Unequal | PciDeviceMetaDataOperator | 不等 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | 2.1 | |
| pciDeviceOfferingUuid | String | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | PCI设备UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| effective | Boolean | 当前MDEV规格是否被用于切分该PCI设备 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
SDK示例
DetachPciDeviceFromVmAction action = new DetachPciDeviceFromVmAction();
action.pciDeviceUuid = "f44964a4252a3de3a435d2ab04bb9fb8";
action.vmInstanceUuid = "42d2fcfc217f38faa02035132e7b4b16";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DetachPciDeviceFromVmAction.Result res = action.call();DetachPciDeviceFromVmAction action = DetachPciDeviceFromVmAction()
action.pciDeviceUuid = "60f04d2b75944c27a6922abb8e307a28"
action.vmInstanceUuid = "72ff58a5d24e40299ed9eda91a683be2"
action.sessionId = "4404fdf219e94d7ab37b48c4950fd26d"
DetachPciDeviceFromVmAction.Result res = action.call()创建PCI设备规格(CreatePciDeviceOffering)
API请求
POST zstack/v1/pci-device/pci-device-offeringsAuthorization: OAuth the-session-uuid{
"params": {
"name": "test",
"vendorId": "10de",
"deviceId": "0e0f"
},
"systemTags": [],
"userTags": []
}上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"test","vendorId":"10de","deviceId":"0e0f"}}' \
http://localhost:8080/zstack/v1/pci-device/pci-device-offerings
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name(可选) | String | body(包含在params结构中) | 资源名称 | 2.1 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 2.1 | |
| type (可选) | String | body(包含在params结构中) | 2.1 | ||
| vendorId | String | body(包含在params结构中) | 供应商ID | 2.1 | |
| deviceId | String | body(包含在params结构中) | 设备ID | 2.1 | |
| subvendorId (可选) | String | body(包含在params结构中) | 子供应商ID | 2.1 | |
| subdeviceId (可选) | String | body(包含在params结构中) | 子设备ID | 2.1 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 2.1 | ||
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 |
API返回
{
"inventory": {
"type": "GPU_Video",
"vendorId": "10de",
"deviceId": "0e0f",
"subvendorId": "10de",
"subdeviceId": "118b"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.1 |
| name | String | 资源名称 | 2.1 |
| description | String | 资源的详细描述 | 2.1 |
| vendorId | String | 2.1 | |
| deviceId | String | 2.1 | |
| subvendorId | String | 2.1 | |
| subdeviceId | String | 2.1 | |
| createDate | Timestamp | 创建时间 | 2.1 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.1 |
| type | PciDeviceOfferingType | 详情参考type | 2.1 |
| attachedInstanceOfferings | List | 详情参考attachedInstanceOfferings | 2.1 |
| matchedPciDevices | List | 详情参考matchedPciDevices | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video | PciDeviceOfferingType | GPU显卡 | 2.1 |
| GPU_Audio | PciDeviceOfferingType | GPU声卡 | 2.1 |
| Generic | PciDeviceOfferingType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 2.1 | |
| instanceOfferingUuid | String | 计算规格UUID | 2.1 |
| pciDeviceOfferingUuid | String | 2.1 | |
| pciDeviceCount | Integer | 2.1 | |
| metadata | PciDeviceMetaData | 详情参考metadata | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| metaData | String | 2.1 | |
| metaDataEntries | List | 详情参考metaDataEntries | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| key | String | 2.1 | |
| value | String | 2.1 | |
| op | PciDeviceMetaDataOperator | 详情参考op | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Equal | PciDeviceMetaDataOperator | 相等 | 2.1 |
| Unequal | PciDeviceMetaDataOperator | 不等 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | 2.1 | |
| pciDeviceOfferingUuid | String | 2.1 |
SDK示例
CreatePciDeviceOfferingAction action = new CreatePciDeviceOfferingAction();
action.name = "test";
action.vendorId = "10de";
action.deviceId = "0e0f";
action.sessionId = "0cb0086840314456812971957614aa63";
CreatePciDeviceOfferingAction.Result res = action.call();CreatePciDeviceOfferingAction action = CreatePciDeviceOfferingAction()
action.name = "test"
action.vendorId = "10de"
action.deviceId = "0e0f"
action.sessionId = "b2dcf8abb771429f8f2484d0f4df428d"
CreatePciDeviceOfferingAction.Result res = action.call()删除PCI设备规格(DeletePciDeviceOffering)
API请求
DELETE zstack/v1/pci-device/pci-device-offerings/{uuid}?deleteMode={deleteMode}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/pci-device/pci-device-offerings/900f2eefdec630c68313eb025123375d?deleteMode=Permissive| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.1 | |
| deleteMode (可选) | String | url | 2.1 | ||
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 |
API返回
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
DeletePciDeviceOfferingAction action = new DeletePciDeviceOfferingAction();
action.uuid = "f47d555477e645af9a8817ce00b98b9d";
action.deleteMode = "Permissive";
action.sessionId = "c6809b8d823a4be484b82d03083a9ed0";
DeletePciDeviceOfferingAction.Result res = action.call();DeletePciDeviceOfferingAction action = DeletePciDeviceOfferingAction()
action.uuid = "d5458c1007774c16aa0ae771056172ca"
action.deleteMode = "Permissive"
action.sessionId = "99e57c0e1caf44929feb35de6cd90605"
DeletePciDeviceOfferingAction.Result res = action.call()查询PCI设备规格信息(QueryPciDeviceOffering)
API请求
GET zstack/v1/pci-device/pci-device-offerings
GET zstack/v1/pci-device/pci-device-offerings/{uuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 0356dc4f75ac4798817b29d957ccb4bc" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-device-offeringscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 159ccf53b07a4b97ba3ea07dcf385f34" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-device-offerings/a43387ea19d84cecb328c34af59f6292可查询字段
运行CLI命令行工具,输入QueryPciDeviceOffering并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.1 |
| inventories | List | 详情参考inventories | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.1 |
| name | String | 资源名称 | 2.1 |
| description | String | 资源的详细描述 | 2.1 |
| vendorId | String | 2.1 | |
| deviceId | String | 2.1 | |
| subvendorId | String | 2.1 | |
| subdeviceId | String | 2.1 | |
| createDate | Timestamp | 创建时间 | 2.1 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.1 |
| type | PciDeviceOfferingType | 详情参考type | 2.1 |
| attachedInstanceOfferings | List | 详情参考attachedInstanceOfferings | 2.1 |
| matchedPciDevices | List | 详情参考matchedPciDevices | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 类型 | String | 类型,保留字段 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 2.1 | |
| instanceOfferingUuid | String | 计算规格UUID | 2.1 |
| pciDeviceOfferingUuid | String | 2.1 | |
| pciDeviceCount | Integer | 2.1 | |
| metadata | PciDeviceMetaData | 详情参考metadata | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| metaData | String | 2.1 | |
| metaDataEntries | List | 详情参考metaDataEntries | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| key | String | 2.1 | |
| value | String | 2.1 | |
| op | PciDeviceMetaDataOperator | 详情参考op | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Equal | PciDeviceMetaDataOperator | 相等 | 2.1 |
| Unequal | PciDeviceMetaDataOperator | 不等 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | 2.1 | |
| pciDeviceOfferingUuid | String | 2.1 |
SDK示例
QueryPciDeviceOfferingAction action = new QueryPciDeviceOfferingAction();
action.conditions = asList();
action.sessionId = "fa91fe0f572c4ac1bcc975572985eed9";
QueryPciDeviceOfferingAction.Result res = action.call();QueryPciDeviceOfferingAction action = QueryPciDeviceOfferingAction()
action.conditions = []
action.sessionId = "c194660b515f48c98b469f591cdfe5a2"
QueryPciDeviceOfferingAction.Result res = action.call()查询PCI设备规格匹配(QueryPciDevicePciDeviceOffering)
API请求
GET zstack/v1/pci-devices/pci-devices/pci-device-offeringsAuthorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b4f4b13d193c4db9890eb1e5e055341a" \
-X GET http://localhost:8080/zstack/v1/pci-devices/pci-devices/pci-device-offerings可查询字段
运行CLI命令行工具,输入QueryPciDevicePciDeviceOffering并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.1 |
| inventories | List | 详情参考inventories | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| pciDeviceUuid | String | 2.1 | |
| pciDeviceOfferingUuid | String | 2.1 |
SDK示例
QueryPciDevicePciDeviceOfferingAction action = new QueryPciDevicePciDeviceOfferingAction();
action.conditions = asList();
action.sessionId = "31a0eed2b439493997c448262d1ebc38";
QueryPciDevicePciDeviceOfferingAction.Result res = action.call();QueryPciDevicePciDeviceOfferingAction action = QueryPciDevicePciDeviceOfferingAction()
action.conditions = []
action.sessionId = "0dce1b66e4584dce83137f266aae1200"
QueryPciDevicePciDeviceOfferingAction.Result res = action.call()获取物理机lommu启用状态(GetHostIommuStatus)
API请求
GET zstack/v1/pci-device/hosts/status/uuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 5dd20f6d5e414a15a8923f349758b5ff" \
-X GET http://localhost:8080/zstack/v1/pci-device/hosts/status/uuid}?uuid=fcc8d4defb1e4064907636e7cf0ed885| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | query | 资源的UUID,唯一标示该资源 | 2.1 | |
| systemTags (可选) | List | query | 2.1 | ||
| userTags (可选) | List | query | 2.1 |
API返回
{
"status": "Active"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 2.1 |
| ordinal | int | 2.1 |
SDK示例
GetHostIommuStatusAction action = new GetHostIommuStatusAction();
action.uuid = "78e175a479124efeb8182c00a854a05d";
action.sessionId = "8b8cba1389204acb8d56fbed1dad8458";
GetHostIommuStatusAction.Result res = action.call();GetHostIommuStatusAction action = GetHostIommuStatusAction()
action.uuid = "7a446ba1cfe644f09fc454d7b32c6f4d"
action.sessionId = "c44236d523584717974407c5e972e7fc"
GetHostIommuStatusAction.Result res = action.call()更新物理机Iommu启用状态(UpdateHostIommuState)
API请求
PUT zstack/v1/pci-device/hosts/{uuid}/actionsAuthorization: OAuth the-session-uuid{
"updateHostIommuState": {
"state": "Enabled"
},
"systemTags": [],
"userTags": []
}上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateHostIommuState":{"state":"Enabled"}}' \
http://localhost:8080/zstack/v1/pci-device/hosts/7619742c9ff43b898487db33e1f096a4/actions| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.1 | |
| state | String | body(包含在updateHostIommuState结构中) |
|
2.1 | |
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 |
API返回
{
"state": "Enabled"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。详情参考error | 2.1 |
| state | HostIommuStateType | 详情参考state | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 0.6 |
| ordinal | int | 0.6 |
SDK示例
UpdateHostIommuStateAction action = new UpdateHostIommuStateAction();
action.uuid = "30bc8157b4894ceb9be0387248febb72";
action.state = "Enabled";
action.sessionId = "c06ce6f86c10486f891ec7aab3896865";
UpdateHostIommuStateAction.Result res = action.call();UpdateHostIommuStateAction action = UpdateHostIommuStateAction()
action.uuid = "53ad6ee9424148e8894c305370a1a9ba"
action.state = "Enabled"
action.sessionId = "f04fcfb3bfe3438aa56dd43e87202f04"
UpdateHostIommuStateAction.Result res = action.call()获取物理机lommu就绪状态(GetHostIommuState)
API请求
GET zstack/v1/pci-device/hosts/state/{uuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 637890e6fd754515a256c9c105d5c1c7" \
-X GET http://localhost:8080/zstack/v1/pci-device/hosts/state/904c207877bd4c20a4fc6811ec8cd808| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.1 | |
| systemTags (可选) | List | query | 2.1 | ||
| userTags (可选) | List | query | 2.1 |
API返回
{
"state": "Enabled"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 2.1 |
| ordinal | int | 2.1 |
SDK示例
GetHostIommuStateAction action = new GetHostIommuStateAction();
action.uuid = "5e615f4d46784d72a8e0d7895123298e";
action.sessionId = "e7fd08c2494d401dadfa7d08649d0d09";
GetHostIommuStateAction.Result res = action.call();GetHostIommuStateAction action = GetHostIommuStateAction()
action.uuid = "c05c88f401074402bed2531c23424ae0"
action.sessionId = "4e3f9322969f4cb394d22a3d6dc4f89b"
GetHostIommuStateAction.Result res = action.call()将PCI设备规格加载到云主机(AddPciDeviceSpecToVmInstance)
API请求
POST zstack/v1/pci-device-specs/{pciSpecUuid}/vm-instances/{vmInstanceUuid}Authorization: OAuth the-session-uuid{
"params": {
"pciDeviceNumber": 1.0
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"pciDeviceNumber":1.0}}' http://localhost:8080/zstack/v1/pci-device-specs/ace129cb77d93012bf47f839b9429881/vm-instances/16ecb900082437e8aaf554ce19620030| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| pciSpecUuid | String | url | PCI设备规格UUID | 3.5.0 | |
| vmInstanceUuid | String | url | 云主机UUID | 3.5.0 | |
| pciDeviceNumber (可选) | Integer | body(包含在params结构中) | 3.5.0 | ||
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{
"inventory": {
"vmInstanceUuid": "ed0836204dbd496bb9cfa25f091d9d4a",
"pciSpecUuid": "f9e3605232d343d99bca77ba13c1ca34",
"pciDeviceNumber": 1.0,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventory | VmInstancePciDeviceSpecRefInventory | 详情参考inventory | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vmInstanceUuid | String | 云主机UUID | 3.5.0 |
| pciSpecUuid | String | PCI设备规格UUID | 3.5.0 |
| pciDeviceNumber | Integer | 需要为云主机挂载的符合设备规格的设备个数,默认为1 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
SDK示例
AddPciDeviceSpecToVmInstanceAction action = new AddPciDeviceSpecToVmInstanceAction();
action.pciSpecUuid = "ace129cb77d93012bf47f839b9429881";
action.vmInstanceUuid = "16ecb900082437e8aaf554ce19620030";
action.pciDeviceNumber = 1.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddPciDeviceSpecToVmInstanceAction.Result res = action.call();AddPciDeviceSpecToVmInstanceAction action = AddPciDeviceSpecToVmInstanceAction()
action.pciSpecUuid = "ace129cb77d93012bf47f839b9429881"
action.vmInstanceUuid = "16ecb900082437e8aaf554ce19620030"
action.pciDeviceNumber = 1.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddPciDeviceSpecToVmInstanceAction.Result res = action.call()将PCI设备规格从云主机卸载(RemovePciDeviceSpecFromVmInstance)
API请求
DELETE zstack/v1/pci-device-specs/{pciSpecUuid}/vm-instances/{vmInstanceUuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/pci-device-specs/1c8f91c1699c35bfbb1847d2c20f7371/vm-instances/422fe51c278930f085e1323b0e858e3f?deleteMode=Permissive| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| pciSpecUuid | String | url | PCI设备规格UUID | 3.5.0 | |
| vmInstanceUuid | String | url | 云主机UUID | 3.5.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 系统标签 | 3.5.0 |
API返回
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
RemovePciDeviceSpecFromVmInstanceAction action = new RemovePciDeviceSpecFromVmInstanceAction();
action.pciSpecUuid = "1c8f91c1699c35bfbb1847d2c20f7371";
action.vmInstanceUuid = "422fe51c278930f085e1323b0e858e3f";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemovePciDeviceSpecFromVmInstanceAction.Result res = action.call();RemovePciDeviceSpecFromVmInstanceAction action = RemovePciDeviceSpecFromVmInstanceAction()
action.pciSpecUuid = "1c8f91c1699c35bfbb1847d2c20f7371"
action.vmInstanceUuid = "422fe51c278930f085e1323b0e858e3f"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemovePciDeviceSpecFromVmInstanceAction.Result res = action.call()更新PCI设备规格(UpdatePciDeviceSpec)
API请求
PUT zstack/v1/pci-device-specs/{uuid}/actionsAuthorization: OAuth the-session-uuid{
"updatePciDeviceSpec": {
"name": "MSI_GTX1060",
"description": "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller",
"romContent": "*BASE64 ENCODED ROM CONTENT*",
"romVersion": "86.06.0E.00.29",
"abandonSpecRom": false,
"state": "Enabled"
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updatePciDeviceSpec":{"name":"MSI_GTX1060","description":"NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller","romContent":"*BASE64 ENCODED ROM CONTENT*","romVersion":"86.06.0E.00.29","abandonSpecRom":false,"state":"Enabled"}}' http://localhost:8080/zstack/v1/pci-device-specs/78ba2350be1e451597c2d42f778d0241/actions| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.5.0 | |
| name (可选) | String | body(包含在updatePciDeviceSpec结构中) | 资源名称 | 3.5.0 | |
| description (可选) | String | body(包含在updatePciDeviceSpec结构中) | 资源的详细描述 | 3.5.0 | |
| romContent (可选) | String | body(包含在updatePciDeviceSpec结构中) | BASE64编码后的固件内容 | 3.5.0 | |
| romVersion (可选) | String | body(包含在updatePciDeviceSpec结构中) | 固件版本 | 3.5.0 | |
| abandonSpecRom (可选) | boolean | body(包含在updatePciDeviceSpec结构中) | 删除已有固件 | 3.5.0 | |
| state (可选) | String | body(包含在updatePciDeviceSpec结构中) | PCI设备规格启用状态 |
|
3.5.0 |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{
"inventory": {
"uuid": "ff483f5d5bf14587ac2d46a565b0f28f",
"name": "MSI_GTX1060",
"description": "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller",
"vendorId": "10de",
"deviceId": "1c03",
"subvendorId": "1462",
"subdeviceId": "3283",
"type": "GPU_Video_Controller",
"state": "Enabled",
"romVersion": "86.06.0E.00.28",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventory | PciDeviceSpecInventory | 详情参考inventory | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.5.0 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 3.5.0 |
| vendorId | String | 供应商ID | 3.5.0 |
| deviceId | String | 设备ID | 3.5.0 |
| subvendorId | String | 子供应商ID | 3.5.0 |
| subdeviceId | String | 子设备ID | 3.5.0 |
| ramSize | String | 显存容量 | 3.5.0 |
| maxPartNum | Integer | 最大切分数量 | 3.5.0 |
| isVirtual | Boolean | 是否虚拟设备 | 3.5.0 |
| romVersion | String | 固件版本 | 3.5.0 |
| romMd5sum | String | 固件MD5 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| type | PciDeviceType | 详情参考type | 3.5.0 |
| state | PciDeviceSpecState | 详情参考state | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | PciDeviceType | GPU显卡控制器 | 2.1 |
| GPU_Audio_Controller | PciDeviceType | GPU声卡控制器 | 2.1 |
| GPU_3D_Controller | PciDeviceType | GPU 3D控制器 | 2.1 |
| Moxa_Device | PciDeviceType | MOXA卡 | 2.1 |
| Generic | PciDeviceType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PciDeviceSpecState | 启用 | 3.5.0 |
| Disabled | PciDeviceSpecState | 停用 | 3.5.0 |
SDK示例
UpdatePciDeviceSpecAction action = new UpdatePciDeviceSpecAction();
action.uuid = "4fd1d8c83d674e7abaa931a3972a37da";
action.name = "MSI_GTX1060";
action.description = "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller";
action.romContent = "*BASE64 ENCODED ROM CONTENT*";
action.romVersion = "86.06.0E.00.29";
action.abandonSpecRom = false;
action.state = "Enabled";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdatePciDeviceSpecAction.Result res = action.call();UpdatePciDeviceSpecAction action = UpdatePciDeviceSpecAction()
action.uuid = "12de0d18f2e24fb8b178644cfcad105a"
action.name = "MSI_GTX1060"
action.description = "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller"
action.romContent = "*BASE64 ENCODED ROM CONTENT*"
action.romVersion = "86.06.0E.00.29"
action.abandonSpecRom = false
action.state = "Enabled"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdatePciDeviceSpecAction.Result res = action.call()获取PCI设备规格候选列表(GetPciDeviceSpecCandidates)
API请求
GET zstack/v1/pci-device-specs/candidatesAuthorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device-specs/candidates?clusterUuids=d3305a8348d937ba97d260fb0af0e87d&clusterUuids=4943e8ab691435f98f7d22e3196f36a0&hostUuid=8bcb6475294a3283b5105f36c52c4aa9&vmInstanceUuid=c4bd1f978e843300b8de214567841c3a&types=GPU_Video_Controller&types=GPU_Audio_Controller| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| clusterUuids (可选) | List | query | 集群UUID | 3.5.0 | |
| hostUuid (可选) | String | query | 物理机UUID | 3.5.0 | |
| vmInstanceUuid (可选) | String | query | 云主机UUID | 3.5.0 | |
| vmInstanceUuids (可选) | List | query | 云主机UUID列表 | 3.6.1 | |
| types (可选) | List | query | 设备类型 | 3.5.0 | |
| systemTags (可选) | List | query | 系统标签 | 3.5.0 | |
| userTags (可选) | List | query | 用户标签 | 3.5.0 |
API返回
{
"inventories": [
{
"uuid": "87aceed20b6a46fbb4e45b74a514afd9",
"name": "MSI_GTX1060",
"description": "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller",
"vendorId": "10de",
"deviceId": "1c03",
"subvendorId": "1462",
"subdeviceId": "3283",
"type": "GPU_Video_Controller",
"state": "Enabled",
"romVersion": "86.06.0E.00.28",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventories | List | 详情参考inventories | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.5.0 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 3.5.0 |
| vendorId | String | 供应商ID | 3.5.0 |
| deviceId | String | 设备ID | 3.5.0 |
| subvendorId | String | 子供应商ID | 3.5.0 |
| subdeviceId | String | 子设备ID | 3.5.0 |
| ramSize | String | 显存容量 | 3.5.0 |
| maxPartNum | Integer | 最大切分数量 | 3.5.0 |
| isVirtual | Boolean | 是否虚拟设备 | 3.5.0 |
| romVersion | String | 固件版本 | 3.5.0 |
| romMd5sum | String | 固件MD5 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| type | PciDeviceType | 详情参考type | 3.5.0 |
| state | PciDeviceSpecState | 详情参考state | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | PciDeviceType | GPU显卡控制器 | 2.1 |
| GPU_Audio_Controller | PciDeviceType | GPU声卡控制器 | 2.1 |
| GPU_3D_Controller | PciDeviceType | GPU 3D控制器 | 2.1 |
| Moxa_Device | PciDeviceType | MOXA卡 | 2.1 |
| Generic | PciDeviceType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PciDeviceSpecState | 启用 | 3.5.0 |
| Disabled | PciDeviceSpecState | 停用 | 3.5.0 |
SDK示例
GetPciDeviceSpecCandidatesAction action = new GetPciDeviceSpecCandidatesAction();
action.clusterUuids = asList("d3305a8348d937ba97d260fb0af0e87d","4943e8ab691435f98f7d22e3196f36a0");
action.hostUuid = "8bcb6475294a3283b5105f36c52c4aa9";
action.vmInstanceUuid = "c4bd1f978e843300b8de214567841c3a";
action.types = asList("GPU_Video_Controller","GPU_Audio_Controller");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetPciDeviceSpecCandidatesAction.Result res = action.call();GetPciDeviceSpecCandidatesAction action = GetPciDeviceSpecCandidatesAction()
action.clusterUuids = [d3305a8348d937ba97d260fb0af0e87d, 4943e8ab691435f98f7d22e3196f36a0]
action.hostUuid = "8bcb6475294a3283b5105f36c52c4aa9"
action.vmInstanceUuid = "c4bd1f978e843300b8de214567841c3a"
action.types = [GPU_Video_Controller, GPU_Audio_Controller]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetPciDeviceSpecCandidatesAction.Result res = action.call()查询PCI设备规格(QueryPciDeviceSpec)
API请求
GET zstack/v1/pci-device-specsGET zstack/v1/pci-device-specs/{uuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device-specs?q=uuid=148eb0059a193de59e5278395c36baa7curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device-specs/f5caf15dfb98366cbf87d41aa01385b9可查询字段
运行CLI命令行工具,输入QueryPciDeviceSpec并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{
"uuid": "4e583459b0bb4a8085f2acf4040ab802",
"name": "MSI_GTX1060",
"description": "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller",
"vendorId": "10de",
"deviceId": "1c03",
"subvendorId": "1462",
"subdeviceId": "3283",
"type": "GPU_Video_Controller",
"state": "Enabled",
"romVersion": "86.06.0E.00.28",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventories | List | 详情参考inventories | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.5.0 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 3.5.0 |
| vendorId | String | 供应商ID | 3.5.0 |
| deviceId | String | 设备ID | 3.5.0 |
| subvendorId | String | 子供应商ID | 3.5.0 |
| subdeviceId | String | 子设备ID | 3.5.0 |
| ramSize | String | 显存容量 | 3.5.0 |
| maxPartNum | Integer | 最大切分数量 | 3.5.0 |
| isVirtual | Boolean | 是否虚拟设备 | 3.5.0 |
| romVersion | String | 固件版本 | 3.5.0 |
| romMd5sum | String | 固件MD5 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| type | PciDeviceType | 详情参考type | 3.5.0 |
| state | PciDeviceSpecState | 详情参考state | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | PciDeviceType | GPU显卡控制器 | 2.1 |
| GPU_Audio_Controller | PciDeviceType | GPU声卡控制器 | 2.1 |
| GPU_3D_Controller | PciDeviceType | GPU 3D控制器 | 2.1 |
| Moxa_Device | PciDeviceType | MOXA卡 | 2.1 |
| Generic | PciDeviceType | 一般设备 | 2.1 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PciDeviceSpecState | 启用 | 3.5.0 |
| Disabled | PciDeviceSpecState | 停用 | 3.5.0 |
SDK示例
QueryPciDeviceSpecAction action = new QueryPciDeviceSpecAction();
action.conditions = asList("uuid=96a05dc8dbee32ddb15c63680df63792");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryPciDeviceSpecAction.Result res = action.call();QueryPciDeviceSpecAction action = QueryPciDeviceSpecAction()
action.conditions = ["uuid=362f676642ba3288bf02c98fcee26d74"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryPciDeviceSpecAction.Result res = action.call()查询云主机与PCI设备规格的关联关系(QueryVmInstancePciDeviceSpecRef)
API请求
GET zstack/v1/vm-instances/{vmInstanceUuid}/pci-device-specsGET zstack/v1/vm-instances/{vmInstanceUuid}/pci-device-specs/{pciSpecUuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/{vmInstanceUuid}/pci-device-specs?q=vmInstanceUuid=e58abf7fd2d0332bb18ba348195be863curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/{vmInstanceUuid}/pci-device-specs/{pciSpecUuid}?q=vmInstanceUuid=34ff56e0fd1e3cd789a30d66fd4bf3aa可查询字段
运行CLI命令行工具,输入QueryVmInstancePciDeviceSpecRef并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{
"vmInstanceUuid": "c40d04f99f7647f2bf145aa6e3d463ff",
"pciSpecUuid": "9afda707d3b14838adaa48d4295f3d5f",
"pciDeviceNumber": 1.0,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventories | List | 详情参考inventories | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vmInstanceUuid | String | 云主机UUID | 3.5.0 |
| pciSpecUuid | String | PCI设备规格UUID | 3.5.0 |
| pciDeviceNumber | Integer | 需要为云主机挂载的符合设备规格的设备个数,默认为1 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
SDK示例
QueryVmInstancePciDeviceSpecRefAction action = new QueryVmInstancePciDeviceSpecRefAction();
action.conditions = asList("vmInstanceUuid=67c3ebbb1c683373a52310b218164181");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryVmInstancePciDeviceSpecRefAction.Result res = action.call();QueryVmInstancePciDeviceSpecRefAction action = QueryVmInstancePciDeviceSpecRefAction()
action.conditions = ["vmInstanceUuid=aef75bdacefd33349d9f15eb0f96fe89"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryVmInstancePciDeviceSpecRefAction.Result res = action.call()虚拟化切分支持SR-IOV的PCI设备(GenerateSriovPciDevices)
API请求
PUT zstack/v1/pci-devices/{pciDeviceUuid}/actionsAuthorization: OAuth the-session-uuid{
"generateSriovPciDevices": {
"virtPartNum": 4.0
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"generateSriovPciDevices":{"virtPartNum":4.0}}' http://localhost:8080/zstack/v1/pci-devices/ce07829a08273d129f3b9d11cdf830b9/actions| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| pciDeviceUuid | String | url | PCI UUID | 3.5.0 | |
| virtPartNum | Integer | body(包含在generateSriovPciDevices结构中) | 切分数量 | 3.5.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
GenerateSriovPciDevicesAction action = new GenerateSriovPciDevicesAction();
action.pciDeviceUuid = "ce07829a08273d129f3b9d11cdf830b9";
action.virtPartNum = 4.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GenerateSriovPciDevicesAction.Result res = action.call();GenerateSriovPciDevicesAction action = GenerateSriovPciDevicesAction()
action.pciDeviceUuid = "ce07829a08273d129f3b9d11cdf830b9"
action.virtPartNum = 4.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GenerateSriovPciDevicesAction.Result res = action.call()虚拟化还原支持SR-IOV的PCI设备(UngenerateSriovPciDevices)
API请求
PUT zstack/v1/pci-devices/{pciDeviceUuid}/actionsAuthorization: OAuth the-session-uuid{
"ungenerateSriovPciDevices": {},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"ungenerateSriovPciDevices":{}}' http://localhost:8080/zstack/v1/pci-devices/31f8b8c366c63901ac928106568eca85/actions| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| pciDeviceUuid | String | url | PCI UUID | 3.5.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
UngenerateSriovPciDevicesAction action = new UngenerateSriovPciDevicesAction();
action.pciDeviceUuid = "31f8b8c366c63901ac928106568eca85";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UngenerateSriovPciDevicesAction.Result res = action.call();UngenerateSriovPciDevicesAction action = UngenerateSriovPciDevicesAction()
action.pciDeviceUuid = "31f8b8c366c63901ac928106568eca85"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UngenerateSriovPciDevicesAction.Result res = action.call()虚拟化切分支持VFIO_MDEV的PCI设备(GenerateMdevDevices)
API请求
PUT zstack/v1/pci-devices/{pciDeviceUuid}/actionsAuthorization: OAuth the-session-uuid{
"generateMdevDevices": {
"mdevSpecUuid": "013f5f259daa3e119ec79496ed2f5697"
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"generateMdevDevices":{"mdevSpecUuid":"013f5f259daa3e119ec79496ed2f5697"}}' http://localhost:8080/zstack/v1/pci-devices/b5b60d1bc9353c948c635a500a044c97/actions| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| pciDeviceUuid | String | url | PCI设备UUID | 3.5.0 | |
| mdevSpecUuid | String | body(包含在generateMdevDevices结构中) | MDEV设备规格UUID | 3.5.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
GenerateMdevDevicesAction action = new GenerateMdevDevicesAction();
action.pciDeviceUuid = "b5b60d1bc9353c948c635a500a044c97";
action.mdevSpecUuid = "013f5f259daa3e119ec79496ed2f5697";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GenerateMdevDevicesAction.Result res = action.call();GenerateMdevDevicesAction action = GenerateMdevDevicesAction()
action.pciDeviceUuid = "b5b60d1bc9353c948c635a500a044c97"
action.mdevSpecUuid = "013f5f259daa3e119ec79496ed2f5697"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GenerateMdevDevicesAction.Result res = action.call()虚拟化还原支持VFIO_MDEV的PCI设备(UngenerateMdevDevices)
API请求
PUT zstack/v1/pci-devices/{pciDeviceUuid}/actionsAuthorization: OAuth the-session-uuid{
"ungenerateMdevDevices": {},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"ungenerateMdevDevices":{}}' http://localhost:8080/zstack/v1/pci-devices/772a0f2d8aaa3626964e080122a48c25/actions| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| pciDeviceUuid | String | url | 被切分的PCI设备UUID | 3.5.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
UngenerateMdevDevicesAction action = new UngenerateMdevDevicesAction();
action.pciDeviceUuid = "772a0f2d8aaa3626964e080122a48c25";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UngenerateMdevDevicesAction.Result res = action.call();UngenerateMdevDevicesAction action = UngenerateMdevDevicesAction()
action.pciDeviceUuid = "772a0f2d8aaa3626964e080122a48c25"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UngenerateMdevDevicesAction.Result res = action.call()查询PCI设备切分出的MDEV设备(QueryMdevDeviceSpec)
API请求
GET zstack/v1/mdev-device-specsGET zstack/v1/mdev-device-specs/{uuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-device-specs?q=uuid=80e1584c51673827abf32ad7c57fa5edcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-device-specs/21accb3c691435f4a453de1566f19a37可查询字段
运行CLI命令行工具,输入QueryMdevDeviceSpec并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{
"uuid": "18ebda01fb874e7db54ccd3a6712e92d",
"name": "GRID_M60-2A",
"specification": "{Max Resolution\u003d1920*1080, GRID License\u003dGRID-Virtual-Apps,3.0, Instance Number\u003d4, Display Heads\u003d4, Vendor\u003dNVIDIA, Frame Rate Limit\u003d60FPS, Name\u003dGRID_M60-2A, RAM\u003d2048MB}",
"type": "GPU_Video_Controller",
"state": "Enabled",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventories | List | 详情参考inventories | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | MdevDeviceType | GPU显卡控制器 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | MdevDeviceSpecState | 启用 | 3.5.0 |
| Disabled | MdevDeviceSpecState | 停用 | 3.5.0 |
SDK示例
QueryMdevDeviceSpecAction action = new QueryMdevDeviceSpecAction();
action.conditions = asList("uuid=96eb790c250833cd8889736e712639d9");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryMdevDeviceSpecAction.Result res = action.call();QueryMdevDeviceSpecAction action = QueryMdevDeviceSpecAction()
action.conditions = ["uuid=804f01b24a4f3ad6b78b09345e0ada3a"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryMdevDeviceSpecAction.Result res = action.call()将PCI设备切分出的MDEV设备绑定到云主机(AttachMdevDeviceToVm)
API请求
POST zstack/v1/mdev-devices/{mdevDeviceUuid}/vm-instances/{vmInstanceUuid}Authorization: OAuth the-session-uuid{
"params": {},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{}}' http://localhost:8080/zstack/v1/mdev-devices/2a23f189ed803f869deab2b22ef83b4d/vm-instances/e4108c6e45303e3bbd9743093127b894| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| mdevDeviceUuid | String | url | MDEV设备UUID | 3.5.0 | |
| vmInstanceUuid | String | url | 云主机UUID | 3.5.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{
"inventory": {
"uuid": "2b29e6effba34e848164039e02511b89",
"name": "GRID M60-2A",
"parentUuid": "e9e3fe7b21644a19ac33e84dd27e3175",
"hostUuid": "af505b47d522413d99d361b93cf92d2a",
"mdevSpecUuid": "072b847576c34b419a29b16f62198e09",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventory | MdevDeviceInventory | 详情参考inventory | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.5.0 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 3.5.0 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| hostUuid | String | 物理机UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| type | MdevDeviceType | 详情参考type | 3.5.0 |
| state | MdevDeviceState | 详情参考state | 3.5.0 |
| status | MdevDeviceStatus | 详情参考status | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | MdevDeviceType | GPU显卡控制器 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | MdevDeviceState | 启用 | 3.5.0 |
| Disabled | MdevDeviceState | 停用 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | MdevDeviceStatus | 就绪 | 3.5.0 |
| Attached | MdevDeviceStatus | 已挂载 | 3.5.0 |
SDK示例
AttachMdevDeviceToVmAction action = new AttachMdevDeviceToVmAction();
action.mdevDeviceUuid = "2a23f189ed803f869deab2b22ef83b4d";
action.vmInstanceUuid = "e4108c6e45303e3bbd9743093127b894";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AttachMdevDeviceToVmAction.Result res = action.call();AttachMdevDeviceToVmAction action = AttachMdevDeviceToVmAction()
action.mdevDeviceUuid = "2a23f189ed803f869deab2b22ef83b4d"
action.vmInstanceUuid = "e4108c6e45303e3bbd9743093127b894"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AttachMdevDeviceToVmAction.Result res = action.call()将PCI设备切分出的MDEV设备从云主机卸载(DetachMdevDeviceFromVm)
API请求
DELETE zstack/v1/mdev-devices/{mdevDeviceUuid}/vm-instances/{vmInstanceUuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/mdev-devices/4c2897ae50b8370489aa2e0caa96d370/vm-instances/16aefa196d5535f6836ec25d301ee3aa?deleteMode=Permissive| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| mdevDeviceUuid | String | url | MDEV设备UUID | 3.5.0 | |
| vmInstanceUuid | String | url | 云主机UUID | 3.5.0 | |
| deleteMode (可选) | String | body | 删除模式(Permissive 或者 Enforcing,默认 Permissive) | 3.5.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{
"inventory": {
"uuid": "db19d22ce51b4900bb404e673bdf6584",
"name": "GRID M60-2A",
"parentUuid": "7cb5801ead03491db07fa7db3cb3b1f1",
"hostUuid": "eedf47e3f5f64953a507b11f999970ff",
"mdevSpecUuid": "807b8e35a04d4d9d9a0ff431be6068a0",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventory | MdevDeviceInventory | 详情参考inventory | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.5.0 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 3.5.0 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| hostUuid | String | 物理机UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| type | MdevDeviceType | 详情参考type | 3.5.0 |
| state | MdevDeviceState | 详情参考state | 3.5.0 |
| status | MdevDeviceStatus | 详情参考status | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | MdevDeviceType | GPU显卡控制器 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | MdevDeviceState | 启用 | 3.5.0 |
| Disabled | MdevDeviceState | 停用 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | MdevDeviceStatus | 就绪 | 3.5.0 |
| Attached | MdevDeviceStatus | 已挂载 | 3.5.0 |
SDK示例
DetachMdevDeviceFromVmAction action = new DetachMdevDeviceFromVmAction();
action.mdevDeviceUuid = "4c2897ae50b8370489aa2e0caa96d370";
action.vmInstanceUuid = "16aefa196d5535f6836ec25d301ee3aa";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DetachMdevDeviceFromVmAction.Result res = action.call();DetachMdevDeviceFromVmAction action = DetachMdevDeviceFromVmAction()
action.mdevDeviceUuid = "4c2897ae50b8370489aa2e0caa96d370"
action.vmInstanceUuid = "16aefa196d5535f6836ec25d301ee3aa"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DetachMdevDeviceFromVmAction.Result res = action.call()更新PCI设备切分出的MDEV设备(UpdateMdevDevice)
API请求
PUT zstack/v1/mdev-devices/{uuid}/actionsAuthorization: OAuth the-session-uuid{
"updateMdevDevice": {
"name": "NVIDIA_M60-2A",
"description": "NVIDIA_M60-2A_2048MB_1920*1080_4Ins_60FPS",
"state": "Enabled"
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateMdevDevice":{"name":"NVIDIA_M60-2A","description":"NVIDIA_M60-2A_2048MB_1920*1080_4Ins_60FPS","state":"Enabled"}}' http://localhost:8080/zstack/v1/mdev-devices/d89cea7c8a03306790d91e68fb0d0e65/actions| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.5.0 | |
| name (可选) | String | body(包含在updateMdevDevice结构中) | 资源名称 | 3.5.0 | |
| description (可选) | String | body(包含在updateMdevDevice结构中) | 资源的详细描述 | 3.5.0 | |
| state (可选) | String | body(包含在updateMdevDevice结构中) | 设备状态 |
|
3.5.0 |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{
"inventory": {
"uuid": "d026caddef774497aaf494d032fc8d61",
"name": "GRID M60-2A",
"parentUuid": "822875fb541440fb87ed31e3688c286e",
"hostUuid": "80ab6fb85aa34745944d3772ab6a3e27",
"mdevSpecUuid": "83a58b54e1fb449494876298b1a94148",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventory | MdevDeviceInventory | 详情参考inventory | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.5.0 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 3.5.0 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| hostUuid | String | 物理机UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| type | MdevDeviceType | 详情参考type | 3.5.0 |
| state | MdevDeviceState | 详情参考state | 3.5.0 |
| status | MdevDeviceStatus | 详情参考status | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | MdevDeviceType | GPU显卡控制器 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | MdevDeviceState | 启用 | 3.5.0 |
| Disabled | MdevDeviceState | 停用 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | MdevDeviceStatus | 就绪 | 3.5.0 |
| Attached | MdevDeviceStatus | 已挂载 | 3.5.0 |
SDK示例
UpdateMdevDeviceAction action = new UpdateMdevDeviceAction();
action.uuid = "d89cea7c8a03306790d91e68fb0d0e65";
action.name = "NVIDIA_M60-2A";
action.description = "NVIDIA_M60-2A_2048MB_1920*1080_4Ins_60FPS";
action.state = "Enabled";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateMdevDeviceAction.Result res = action.call();UpdateMdevDeviceAction action = UpdateMdevDeviceAction()
action.uuid = "d89cea7c8a03306790d91e68fb0d0e65"
action.name = "NVIDIA_M60-2A"
action.description = "NVIDIA_M60-2A_2048MB_1920*1080_4Ins_60FPS"
action.state = "Enabled"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateMdevDeviceAction.Result res = action.call()获取可用的MDEV设备(GetMdevDeviceCandidates)
API请求
GET zstack/v1/mdev-devices/candidatesAuthorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-devices/candidates?vmInstanceUuid=3be91dd3332a3ef0b57831dcfc28a0c2&types=GPU_Video_Controller| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| clusterUuids (可选) | List | query | 集群UUID | 3.5.0 | |
| hostUuid (可选) | String | query | 物理机UUID | 3.5.0 | |
| vmInstanceUuid (可选) | String | query | 云主机UUID | 3.5.0 | |
| types (可选) | List | query | 设备类型 | 3.5.0 | |
| systemTags (可选) | List | query | 系统标签 | 3.5.0 | |
| userTags (可选) | List | query | 用户标签 | 3.5.0 |
API返回
{
"inventories": [
{
"uuid": "4dd1f251873b4173939179c29b864df0",
"name": "GRID M60-2A",
"parentUuid": "36ff3d337d644bb9803f6599ec77189c",
"hostUuid": "f1c21432e12245e78ee05324bb0886b4",
"mdevSpecUuid": "8c9ddca8f93d4457acf78194986f8034",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventories | List | 详情参考inventories | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.5.0 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 3.5.0 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| hostUuid | String | 物理机UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| type | MdevDeviceType | 详情参考type | 3.5.0 |
| state | MdevDeviceState | 详情参考state | 3.5.0 |
| status | MdevDeviceStatus | 详情参考status | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | MdevDeviceType | GPU显卡控制器 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | MdevDeviceState | 启用 | 3.5.0 |
| Disabled | MdevDeviceState | 停用 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | MdevDeviceStatus | 就绪 | 3.5.0 |
| Attached | MdevDeviceStatus | 已挂载 | 3.5.0 |
SDK示例
GetMdevDeviceCandidatesAction action = new GetMdevDeviceCandidatesAction();
action.vmInstanceUuid = "3be91dd3332a3ef0b57831dcfc28a0c2";
action.types = asList("GPU_Video_Controller");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetMdevDeviceCandidatesAction.Result res = action.call();GetMdevDeviceCandidatesAction action = GetMdevDeviceCandidatesAction()
action.vmInstanceUuid = "3be91dd3332a3ef0b57831dcfc28a0c2"
action.types = [GPU_Video_Controller]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetMdevDeviceCandidatesAction.Result res = action.call()查询PCI设备切分出的MDEV设备(QueryMdevDevice)
API请求
GET zstack/v1/mdev-devicesGET zstack/v1/mdev-devices/{uuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-devicescurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-devices/9fa9e261caad306f89ccde6f0dca7a1d可查询字段
运行CLI命令行工具,输入QueryMdevDevice并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{
"uuid": "597624b580d1458f82671b0ef77cf6a4",
"name": "GRID M60-2A",
"parentUuid": "90c171f07b21452b87b6d5ee58f4d687",
"hostUuid": "b440c9393fc644cc8394d789ea1e18e1",
"mdevSpecUuid": "91b07312092741f18a382942a92f1373",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventories | List | 详情参考inventories | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.5.0 |
| name | String | 资源名称 | 3.5.0 |
| description | String | 资源的详细描述 | 3.5.0 |
| parentUuid | String | 物理PCI设备UUID | 3.5.0 |
| hostUuid | String | 物理机UUID | 3.5.0 |
| vmInstanceUuid | String | 云主机UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
| type | MdevDeviceType | 详情参考type | 3.5.0 |
| state | MdevDeviceState | 详情参考state | 3.5.0 |
| status | MdevDeviceStatus | 详情参考status | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | MdevDeviceType | GPU显卡控制器 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | MdevDeviceState | 启用 | 3.5.0 |
| Disabled | MdevDeviceState | 停用 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | MdevDeviceStatus | 就绪 | 3.5.0 |
| Attached | MdevDeviceStatus | 已挂载 | 3.5.0 |
SDK示例
QueryMdevDeviceAction action = new QueryMdevDeviceAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryMdevDeviceAction.Result res = action.call();QueryMdevDeviceAction action = QueryMdevDeviceAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryMdevDeviceAction.Result res = action.call()将MDEV设备规格加载到云主机(AddMdevDeviceSpecToVmInstance)
API请求
POST zstack/v1/mdev-device-specs/{mdevSpecUuid}/vm-instances/{vmInstanceUuid}Authorization: OAuth the-session-uuid{
"params": {
"mdevDeviceNumber": 1.0
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"mdevDeviceNumber":1.0}}' http://localhost:8080/zstack/v1/mdev-device-specs/dbcfe5ae889933a2a740584935e63e72/vm-instances/3d0b1d8b82ba3dd0b95a7903f735bdd1| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| mdevSpecUuid | String | url | MDEV设备规格UUID | 3.5.0 | |
| vmInstanceUuid | String | url | 云主机UUID | 3.5.0 | |
| mdevDeviceNumber (可选) | Integer | body(包含在params结构中) | 3.5.0 | ||
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{
"inventory": {
"vmInstanceUuid": "e2af8f869eff49d2a3d6f86cadc27090",
"mdevSpecUuid": "aa2e5e2cd0e749fab48ed045117ed70b",
"mdevDeviceNumber": 1.0,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventory | VmInstanceMdevDeviceSpecRefInventory | 详情参考inventory | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vmInstanceUuid | String | 云主机UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| mdevDeviceNumber | Integer | 需要为云主机挂载的符合设备规格的设备个数,默认为1 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
SDK示例
AddMdevDeviceSpecToVmInstanceAction action = new AddMdevDeviceSpecToVmInstanceAction();
action.mdevSpecUuid = "dbcfe5ae889933a2a740584935e63e72";
action.vmInstanceUuid = "3d0b1d8b82ba3dd0b95a7903f735bdd1";
action.mdevDeviceNumber = 1.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddMdevDeviceSpecToVmInstanceAction.Result res = action.call();AddMdevDeviceSpecToVmInstanceAction action = AddMdevDeviceSpecToVmInstanceAction()
action.mdevSpecUuid = "dbcfe5ae889933a2a740584935e63e72"
action.vmInstanceUuid = "3d0b1d8b82ba3dd0b95a7903f735bdd1"
action.mdevDeviceNumber = 1.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddMdevDeviceSpecToVmInstanceAction.Result res = action.call()将MDEV设备规格从云主机卸载(RemoveMdevDeviceSpecFromVmInstance)
API请求
DELETE zstack/v1/mdev-device-specs/{mdevSpecUuid}/vm-instances/{vmInstanceUuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/mdev-device-specs/195f9b240d4a3f8b9946950694745fff/vm-instances/76ce5da88e383ee983955f3a24aea5cf?deleteMode=Permissive| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| mdevSpecUuid | String | url | MDEV设备规格UUID | 3.5.0 | |
| vmInstanceUuid | String | url | 云主机UUID | 3.5.0 | |
| deleteMode (可选) | String | body | 删除模式(Permissive 或者 Enforcing,默认 Permissive) | 3.5.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
RemoveMdevDeviceSpecFromVmInstanceAction action = new RemoveMdevDeviceSpecFromVmInstanceAction();
action.mdevSpecUuid = "195f9b240d4a3f8b9946950694745fff";
action.vmInstanceUuid = "76ce5da88e383ee983955f3a24aea5cf";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveMdevDeviceSpecFromVmInstanceAction.Result res = action.call();RemoveMdevDeviceSpecFromVmInstanceAction action = RemoveMdevDeviceSpecFromVmInstanceAction()
action.mdevSpecUuid = "195f9b240d4a3f8b9946950694745fff"
action.vmInstanceUuid = "76ce5da88e383ee983955f3a24aea5cf"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveMdevDeviceSpecFromVmInstanceAction.Result res = action.call()更新MDEV设备规格(UpdateMdevDeviceSpec)
API请求
PUT zstack/v1/mdev-device-specs/{uuid}/actionsAuthorization: OAuth the-session-uuid{
"updateMdevDeviceSpec": {
"name": "GRID_M60-2A",
"description": "NVIDIA Corporation, GM204GL [Tesla M60], a1, VGA compatible controller",
"state": "Enabled"
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateMdevDeviceSpec":{"name":"GRID_M60-2A","description":"NVIDIA Corporation, GM204GL [Tesla M60], a1, VGA compatible controller","state":"Enabled"}}' http://localhost:8080/zstack/v1/mdev-device-specs/abd8da93989a45b3b31023bf293b7a56/actions| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.5.0 | |
| name (可选) | String | body(包含在updateMdevDeviceSpec结构中) | 资源名称 | 3.5.0 | |
| description (可选) | String | body(包含在updateMdevDeviceSpec结构中) | 资源的详细描述 | 3.5.0 | |
| state (可选) | String | body(包含在updateMdevDeviceSpec结构中) | 规格状态 |
|
3.5.0 |
| systemTags (可选) | List | body | 系统标签 | 3.5.0 | |
| userTags (可选) | List | body | 用户标签 | 3.5.0 |
API返回
{
"inventory": {
"uuid": "7cb7791f5c334fa699670765199e47ae",
"name": "GRID_M60-2A",
"specification": "{Max Resolution\u003d1920*1080, GRID License\u003dGRID-Virtual-Apps,3.0, Instance Number\u003d4, Display Heads\u003d4, Vendor\u003dNVIDIA, Frame Rate Limit\u003d60FPS, Name\u003dGRID_M60-2A, RAM\u003d2048MB}",
"type": "GPU_Video_Controller",
"state": "Enabled",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventory | MdevDeviceSpecInventory | 详情参考inventory | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | MdevDeviceType | GPU显卡控制器 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | MdevDeviceSpecState | 启用 | 3.5.0 |
| Disabled | MdevDeviceSpecState | 停用 | 3.5.0 |
SDK示例
UpdateMdevDeviceSpecAction action = new UpdateMdevDeviceSpecAction();
action.uuid = "53f36ffde0b54220a0894794e2420e37";
action.name = "GRID_M60-2A";
action.description = "NVIDIA Corporation, GM204GL [Tesla M60], a1, VGA compatible controller";
action.state = "Enabled";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateMdevDeviceSpecAction.Result res = action.call();UpdateMdevDeviceSpecAction action = UpdateMdevDeviceSpecAction()
action.uuid = "bfd502190f794603b26f699f8f8949f4"
action.name = "GRID_M60-2A"
action.description = "NVIDIA Corporation, GM204GL [Tesla M60], a1, VGA compatible controller"
action.state = "Enabled"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateMdevDeviceSpecAction.Result res = action.call()获取可用的MDEV设备规格(GetMdevDeviceSpecCandidates)
API请求
GET zstack/v1/mdev-device-specs/candidatesAuthorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-device-specs/candidates?vmInstanceUuid=319897b485313c7a96b0af986b91baea&types=GPU_Video_Controller| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| clusterUuids (可选) | List | query | 集群UUID | 3.5.0 | |
| hostUuid (可选) | String | query | 物理机UUID | 3.5.0 | |
| vmInstanceUuid (可选) | String | query | 云主机UUID | 3.5.0 | |
| vmInstanceUuids (可选) | List | query | 云主机UUID列表 | 3.6.1 | |
| types (可选) | List | query | 设备类型 | 3.5.0 | |
| systemTags (可选) | List | query | 系统标签 | 3.5.0 | |
| userTags (可选) | List | query | 用户标签 | 3.5.0 |
API返回
{
"inventories": [
{
"uuid": "886c86dcca0a4f6696cf390c08d3e551",
"name": "GRID_M60-2A",
"specification": "{Max Resolution\u003d1920*1080, GRID License\u003dGRID-Virtual-Apps,3.0, Instance Number\u003d4, Display Heads\u003d4, Vendor\u003dNVIDIA, Frame Rate Limit\u003d60FPS, Name\u003dGRID_M60-2A, RAM\u003d2048MB}",
"type": "GPU_Video_Controller",
"state": "Enabled",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventories | List | 详情参考inventories | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | MdevDeviceType | GPU显卡控制器 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | MdevDeviceSpecState | 启用 | 3.5.0 |
| Disabled | MdevDeviceSpecState | 停用 | 3.5.0 |
SDK示例
GetMdevDeviceSpecCandidatesAction action = new GetMdevDeviceSpecCandidatesAction();
action.vmInstanceUuid = "319897b485313c7a96b0af986b91baea";
action.types = asList("GPU_Video_Controller");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetMdevDeviceSpecCandidatesAction.Result res = action.call();GetMdevDeviceSpecCandidatesAction action = GetMdevDeviceSpecCandidatesAction()
action.vmInstanceUuid = "319897b485313c7a96b0af986b91baea"
action.types = [GPU_Video_Controller]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetMdevDeviceSpecCandidatesAction.Result res = action.call()查询云主机与MDEV设备规格的关联关系(QueryVmInstanceMdevDeviceSpecRef)
API请求
GET zstack/v1/vm-instances/{vmInstanceUuid}/mdev-device-specsGET zstack/v1/vm-instances/{vmInstanceUuid}/mdev-device-specs/{mdevSpecUuid}Authorization: OAuth the-session-uuidcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/{vmInstanceUuid}/mdev-device-specs?q=vmInstanceUuid=15ea1f7027833d9ea566ea590184d5d2curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/{vmInstanceUuid}/mdev-device-specs/{mdevSpecUuid}?q=vmInstanceUuid=5e3c68fed5ef39089614830ff30dfd50可查询字段
运行CLI命令行工具,输入QueryVmInstanceMdevDeviceSpecRef并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{
"vmInstanceUuid": "56bfe280b3c84fe2abf1281a7050aabe",
"mdevSpecUuid": "461d734e25824e4e9516c4798fa27068",
"mdevDeviceNumber": 1.0,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.5.0 |
| inventories | List | 详情参考inventories | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.5.0 |
| description | String | 错误的概要描述 | 3.5.0 |
| details | String | 错误的详细信息 | 3.5.0 |
| elaboration | String | 保留字段,默认为null | 3.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vmInstanceUuid | String | 云主机UUID | 3.5.0 |
| mdevSpecUuid | String | MDEV设备规格UUID | 3.5.0 |
| mdevDeviceNumber | Integer | 需要为云主机挂载的符合设备规格的设备个数,默认为1 | 3.5.0 |
| createDate | Timestamp | 创建时间 | 3.5.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.5.0 |
SDK示例
QueryVmInstanceMdevDeviceSpecRefAction action = new QueryVmInstanceMdevDeviceSpecRefAction();
action.conditions = asList("vmInstanceUuid=308f8eccec9b320bbe082f233e7f822c");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryVmInstanceMdevDeviceSpecRefAction.Result res = action.call();QueryVmInstanceMdevDeviceSpecRefAction action = QueryVmInstanceMdevDeviceSpecRefAction()
action.conditions = ["vmInstanceUuid=254f7f2f30bb3b7bb26595fc5120a63b"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryVmInstanceMdevDeviceSpecRefAction.Result res = action.call()