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 b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-devicescurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-devices/051c4bc794a33acc95d5cb0caa56e7b4可查询字段
运行CLI命令行工具,输入QueryPciDevice并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 |
| chooser | PciDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.8.0 | |
| Device | PciDeviceChooser | 4.8.0 | |
| Spec | PciDeviceChooser | 4.8.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 = "b86c9016b4f24953a9edefb53ca0678c";
QueryPciDeviceAction.Result res = action.call();QueryPciDeviceAction action = QueryPciDeviceAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryPciDeviceAction.Result res = action.call()删除PCI设备(DeletePciDevice)
删除失效的PCI设备,只允许删除Inactive状态的PCI设备。
API请求
DELETE zstack/v1/pci-device/pci-devices/{uuid}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-devices/07e2500b59c03a5b8ea3382e083efbd6| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| 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 = "07e2500b59c03a5b8ea3382e083efbd6";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeletePciDeviceAction.Result res = action.call();DeletePciDeviceAction action = DeletePciDeviceAction()
action.uuid = "07e2500b59c03a5b8ea3382e083efbd6"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeletePciDeviceAction.Result res = action.call()更新PCI设备(UpdatePciDevice)
API请求
PUT zstack/v1/pci-device/pci-devices/{uuid}/actionsAuthorization: OAuth the-session-uuid{
"updatePciDevice": {
"state": "Disabled",
"name": "test pci",
"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","name":"test pci","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",
"type": "GPU_Video_Controller",
"state": "Disabled",
"status": "Active",
"vendorId": "10de",
"deviceId": "0e0f",
"subvendorId": "10de",
"subdeviceId": "118b",
"pciDeviceAddress": "0000:06:00.1",
"metaData": {
"metaData": "render:Equal:true;anime:Equal:true",
"metaDataEntries": [
{
"key": "render",
"op": "Equal",
"value": "true"
},
{
"key": "anime",
"op": "Equal",
"value": "true"
}
]
}
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 |
| chooser | PciDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.8.0 | |
| Device | PciDeviceChooser | 4.8.0 | |
| Spec | PciDeviceChooser | 4.8.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.name = "test pci";
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.name = "test pci"
action.description = "test pci"
action.metaData = "key1:value1;key2:value2"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdatePciDeviceAction.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 b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/517c674367793e7db4f52bfc21839de7/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": "200cc14b3ed5333da32607a09e8a75cb",
"hostUuid": "0014ffc881a33fafb9723c9bcd4de3cd",
"type": "GPU_Video_Controller",
"status": "Attached",
"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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| chooser | PciDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.8.0 | |
| Device | PciDeviceChooser | 4.8.0 | |
| Spec | PciDeviceChooser | 4.8.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示例
GetPciDeviceCandidatesForAttachingVmAction action = new GetPciDeviceCandidatesForAttachingVmAction();
action.vmInstanceUuid = "4f19efcf201138bbb34c901505a64e18";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetPciDeviceCandidatesForAttachingVmAction.Result res = action.call();GetPciDeviceCandidatesForAttachingVmAction action = GetPciDeviceCandidatesForAttachingVmAction()
action.vmInstanceUuid = "b038e94c3b4939efa32edb560e7c9ddd"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
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",
"type": "GPU_Video_Controller",
"status": "Attached",
"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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| chooser | PciDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.8.0 | |
| Device | PciDeviceChooser | 4.8.0 | |
| Spec | PciDeviceChooser | 4.8.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示例
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": "d3f41f8b996b390992cc4607e7bb10dc"
},
"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": "f89ad78682d73e08a2ed52bd4837aadf",
"hostUuid": "f2d1b937a92a3ac6a446feb1030f6315",
"vmInstanceUuid": "3daa5e997d023c508a4af3ddda65ddac",
"type": "GPU_Video_Controller",
"status": "Attached",
"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 |
| 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 |
| chooser | PciDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.8.0 | |
| Device | PciDeviceChooser | 4.8.0 | |
| Spec | PciDeviceChooser | 4.8.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": "42d2fcfc217f38faa02035132e7b4b16"
},
"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": "b4e48cb6b04f328fb92dfb6cb9e804a3",
"hostUuid": "93b41d6ac72f360f88fb33ff62dfcfa1",
"type": "GPU_Video_Controller",
"status": "Active",
"vendorId": "10de",
"deviceId": "0e0f",
"subvendorId": "10de",
"subdeviceId": "118b",
"pciDeviceAddress": "0000:06:00.1"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 |
| chooser | PciDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.8.0 | |
| Device | PciDeviceChooser | 4.8.0 | |
| Spec | PciDeviceChooser | 4.8.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 = "f44964a4252a3de3a435d2ab04bb9fb8"
action.vmInstanceUuid = "42d2fcfc217f38faa02035132e7b4b16"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
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 | |
| 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 | |
| ramSize (可选) | String | body(包含在params结构中) | RAM容量 | 3.5.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 2.1 | ||
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 | ||
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 3.4.0 |
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 | 供应商ID | 2.1 |
| deviceId | String | 设备ID | 2.1 |
| subvendorId | String | 子供应商ID | 2.1 |
| subdeviceId | String | 子设备ID | 2.1 |
| ramSize | String | 显存容量 | 3.5.0 |
| 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 = "b86c9016b4f24953a9edefb53ca0678c";
CreatePciDeviceOfferingAction.Result res = action.call();CreatePciDeviceOfferingAction action = CreatePciDeviceOfferingAction()
action.name = "test"
action.vendorId = "10de"
action.deviceId = "0e0f"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreatePciDeviceOfferingAction.Result res = action.call()删除PCI设备规格(DeletePciDeviceOffering)
API请求
DELETE zstack/v1/pci-device/pci-device-offerings/{uuid}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| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| 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 = "900f2eefdec630c68313eb025123375d";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeletePciDeviceOfferingAction.Result res = action.call();DeletePciDeviceOfferingAction action = DeletePciDeviceOfferingAction()
action.uuid = "900f2eefdec630c68313eb025123375d"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeletePciDeviceOfferingAction.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": "6a2537202e134f9fa240f0455fc507cc",
"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"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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设备规格信息(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 b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-device-offeringscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-device-offerings/f0d1dc75b5323546aa5c6bda3733019c可查询字段
运行CLI命令行工具,输入QueryPciDeviceOffering并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 | 供应商ID | 2.1 |
| deviceId | String | 设备ID | 2.1 |
| subvendorId | String | 子供应商ID | 2.1 |
| subdeviceId | String | 子设备ID | 2.1 |
| ramSize | String | 显存容量 | 3.5.0 |
| 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示例
QueryPciDeviceOfferingAction action = new QueryPciDeviceOfferingAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryPciDeviceOfferingAction.Result res = action.call();QueryPciDeviceOfferingAction action = QueryPciDeviceOfferingAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
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 b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-devices/pci-devices/pci-device-offerings可查询字段
运行CLI命令行工具,输入QueryPciDevicePciDeviceOffering并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
{
"inventories": [
{
"id": 0
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 = "b86c9016b4f24953a9edefb53ca0678c";
QueryPciDevicePciDeviceOfferingAction.Result res = action.call();QueryPciDevicePciDeviceOfferingAction action = QueryPciDevicePciDeviceOfferingAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryPciDevicePciDeviceOfferingAction.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": "304bc9b4af93442fb666bef79e84243a",
"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"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 = "2e9160ddd31245dca87eee7d7d2a2ac8";
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 = "2589cc1b20294e0b85d75f652f7dcf77"
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设备规格加载到虚拟机(AddPciDeviceSpecToVmInstance)
API请求
POST zstack/v1/pci-device-specs/{pciSpecUuid}/vm-instances/{vmInstanceUuid}Authorization: OAuth the-session-uuid{
"params": {
"pciDeviceNumber": 1
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"pciDeviceNumber":1}}' \
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": "ac37ee1208aa4a9582a9b4efc95b5456",
"pciSpecUuid": "5cfc996fdab140d086e2fa51cb2882e6",
"pciDeviceNumber": 1,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddPciDeviceSpecToVmInstanceAction.Result res = action.call();AddPciDeviceSpecToVmInstanceAction action = AddPciDeviceSpecToVmInstanceAction()
action.pciSpecUuid = "ace129cb77d93012bf47f839b9429881"
action.vmInstanceUuid = "16ecb900082437e8aaf554ce19620030"
action.pciDeviceNumber = 1
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| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| 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设备规格候选列表(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": "7ba9feb4d0f445ad9dbff82e0e408fc7",
"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"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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设备规格的关联关系(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": "bf5c475cc0954616adacebb9b2b2a9e2",
"pciSpecUuid": "260464ce341043588f0cc30dde70ed42",
"pciDeviceNumber": 1,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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()获取主机IOMMU启用状态(GetHostIommuState)
API请求
GET zstack/v1/pci-device/hosts/{uuid}/stateAuthorization: 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/hosts/dbd7601b48053ec9a753047fce55082a/state| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | query | 资源的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 = "dbd7601b48053ec9a753047fce55082a";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetHostIommuStateAction.Result res = action.call();GetHostIommuStateAction action = GetHostIommuStateAction()
action.uuid = "dbd7601b48053ec9a753047fce55082a"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetHostIommuStateAction.Result res = action.call()获取主机lOMMU就绪状态(GetHostIommuStatus)
API请求
GET zstack/v1/pci-device/hosts/{uuid}/statusAuthorization: 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/hosts/0ec53c2f753331f1a2c62b378821e9b7/status| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| type | String | 主机的IOMMU就绪状态,有Active和Inactive两种 | 2.1 |
SDK示例
GetHostIommuStatusAction action = new GetHostIommuStatusAction();
action.uuid = "0ec53c2f753331f1a2c62b378821e9b7";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetHostIommuStatusAction.Result res = action.call();GetHostIommuStatusAction action = GetHostIommuStatusAction()
action.uuid = "0ec53c2f753331f1a2c62b378821e9b7"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
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"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 = "7619742c9ff43b898487db33e1f096a4";
action.state = "Enabled";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateHostIommuStateAction.Result res = action.call();UpdateHostIommuStateAction action = UpdateHostIommuStateAction()
action.uuid = "7619742c9ff43b898487db33e1f096a4"
action.state = "Enabled"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateHostIommuStateAction.Result res = action.call()虚拟化切分支持SR-IOV的PCI设备(GenerateSriovPciDevices)
API请求
PUT zstack/v1/pci-devices/{pciDeviceUuid}/actionsAuthorization: OAuth the-session-uuid{
"generateSriovPciDevices": {
"virtPartNum": 4
},
"systemTags": [],
"userTags": []
}curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"generateSriovPciDevices":{"virtPartNum":4}}' 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;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GenerateSriovPciDevicesAction.Result res = action.call();GenerateSriovPciDevicesAction action = GenerateSriovPciDevicesAction()
action.pciDeviceUuid = "ce07829a08273d129f3b9d11cdf830b9"
action.virtPartNum = 4
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设备(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()将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": "0eae7167f0db486aace15529dbc38be9",
"name": "GRID M60-2A",
"parentUuid": "9ab8975b943f4b8f82450629386ddf74",
"hostUuid": "f6db3ae1ef974f539b340851b11bb750",
"mdevSpecUuid": "c4ee001ad1924cc398f3d17c89a12bfb",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"chooser": "None",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 |
| chooser | MdevDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.2.0 | |
| Device | PciDeviceChooser | 4.2.0 | |
| Spec | PciDeviceChooser | 4.2.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| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| 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": "b90d8a5edba0445e9d6380e63088c093",
"name": "GRID M60-2A",
"parentUuid": "9fecab9ef7624472be4be166cff7feb7",
"hostUuid": "102b8a84cae6470c907d6a9de3265b05",
"mdevSpecUuid": "70130eb2ba7c4ac9bc139808bf4d4ef1",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"chooser": "None",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 |
| chooser | MdevDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.2.0 | |
| Device | PciDeviceChooser | 4.2.0 | |
| Spec | PciDeviceChooser | 4.2.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": "90bb72d3dba94fbc99310c9804f9dee7",
"name": "GRID M60-2A",
"parentUuid": "343e4227833b4774b09d2c0dd24bf8c7",
"hostUuid": "fa552bef7681478d84806671d28e70f7",
"mdevSpecUuid": "542b87b26baf403cb2745164ce10e550",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"chooser": "None",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 |
| chooser | MdevDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.2.0 | |
| Device | PciDeviceChooser | 4.2.0 | |
| Spec | PciDeviceChooser | 4.2.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设备规格(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": "b6051f3e98c143d1bee891ff69f8fad4",
"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"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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()查询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": "b127c9ba357a459aa1c3b92eb40e8277",
"name": "GRID M60-2A",
"parentUuid": "284f35b038ae4b23847238f995281a64",
"hostUuid": "c461675365b9439ab5794f86c8652fce",
"mdevSpecUuid": "891086ddf1d0414c94d2a7adbfec15fe",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"chooser": "None",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 | MdevDeviceSpecState | 详情参考state | 3.5.0 |
| status | MdevDeviceStatus | 详情参考status | 3.5.0 |
| chooser | MdevDeviceChooser | 详情参考chooser | 4.1.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| GPU_Video_Controller | MdevDeviceType | GPU显卡控制器 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | MdevDeviceSpecState | 启用 | 3.5.0 |
| Disabled | MdevDeviceSpecState | 停用 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Active | MdevDeviceStatus | 就绪 | 3.5.0 |
| Attached | MdevDeviceStatus | 已挂载 | 3.5.0 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.2.0 | |
| Device | PciDeviceChooser | 4.2.0 | |
| Spec | PciDeviceChooser | 4.2.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
},
"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": "0f3a0fd4cd7646afb445e601e885b83e",
"mdevSpecUuid": "621c2f8c637b4d7ebbfe5a55f60c8a60",
"mdevDeviceNumber": 1,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddMdevDeviceSpecToVmInstanceAction.Result res = action.call();AddMdevDeviceSpecToVmInstanceAction action = AddMdevDeviceSpecToVmInstanceAction()
action.mdevSpecUuid = "dbcfe5ae889933a2a740584935e63e72"
action.vmInstanceUuid = "3d0b1d8b82ba3dd0b95a7903f735bdd1"
action.mdevDeviceNumber = 1
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 | |
| 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/fab85387affa4b74b2806ff2c538725e/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": "61d09af331304b40a80eb67fdd5e86d7",
"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"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 = "54e2b878d3d9473ab611794ad04d24b7";
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 = "e351f911f77f422f9229cf0426ffa608"
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设备(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": "ff09c7d3eb084e0c92d91f91559b0015",
"name": "GRID M60-2A",
"parentUuid": "cd35f76c62ec4e0ca5af3f93434f9410",
"hostUuid": "55c3da7722a442fcbf5cc2373cb45dc7",
"mdevSpecUuid": "55d7980cf5604dd6b45e2946fa75a312",
"type": "GPU_Video_Controller",
"state": "Enabled",
"status": "Active",
"chooser": "None",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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 |
| chooser | MdevDeviceChooser | 详情参考chooser | 4.1.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 |
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| None | PciDeviceChooser | 4.2.0 | |
| Device | PciDeviceChooser | 4.2.0 | |
| Spec | PciDeviceChooser | 4.2.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()查询虚拟机与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": "87fbb32e8d5b47be9c79611ea8b8dbca",
"mdevSpecUuid": "75c34cf335f84f7e85bba4289a9d5257",
"mdevDeviceNumber": 1,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| 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()