文档目录

PCI设备相关接口

查询PCI设备(QueryPciDevice)

API请求

URL
GET zstack/v1/pci-device/pci-devices
GET zstack/v1/pci-device/pci-devices/{uuid}
Header
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 043ef942ef97460bba5c9381bb7a7455" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-devices
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 4af958832a32465aa544c3d7722af1da" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-devices/5b39eaae24e84e4ca7eb0bc56d6827c1

可查询字段

运行CLI命令行工具,输入QueryPciDevice并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {}
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventories List 详情参考inventories 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 3.5.0
description String 资源的详细描述 2.1
hostUuid String 物理机UUID 2.1
parentUuid String 物理PCI设备UUID 3.5.0
vmInstanceUuid String 云主机UUID 2.1
pciSpecUuid String PCI设备规格UUID 3.5.0
vendorId String 供应商ID 2.1
deviceId String 设备ID 2.1
subvendorId String 子供应商ID 2.1
subdeviceId String 子设备ID 2.1
pciDeviceAddress String PCI设备地址 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
type PciDeviceType 详情参考type 2.1
state PciDeviceState 详情参考state 2.1
status PciDeviceStatus 详情参考status 2.1
virtStatus PciDeviceVirtStatus 详情参考virtStatus 3.5.0
metaData PciDeviceMetaData 详情参考metaData 2.1
matchedPciDeviceOfferingRef List 详情参考matchedPciDeviceOfferingRef 2.1
mdevSpecRefs List 详情参考mdevSpecRefs 3.5.0
#type
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
Enabled PciDeviceState 启用 2.1
Disabled PciDeviceState 停用 2.1
#status
名字 类型 描述 起始版本
Active PciDeviceStatus 就绪 2.1
Attached PciDeviceStatus 已挂载 2.1
System PciDeviceStatus 系统 2.1
#virtStatus
名字 类型 描述 起始版本
UNVIRTUALIZABLE PciDeviceVirtStatus 不可虚拟化 3.5.0
SRIOV_VIRTUALIZABLE PciDeviceVirtStatus 支持SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZABLE PciDeviceVirtStatus 支持VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUALIZED PciDeviceVirtStatus 已SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZED PciDeviceVirtStatus 已VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUAL PciDeviceVirtStatus SRIOV虚拟设备 3.5.0
UNKNOWN PciDeviceVirtStatus 未知 3.5.0
#metaData
名字 类型 描述 起始版本
metaData String 2.1
metaDataEntries List 详情参考metaDataEntries 2.1
#metaDataEntries
名字 类型 描述 起始版本
key String 2.1
value String 2.1
op PciDeviceMetaDataOperator 详情参考op 2.1
#op
名字 类型 描述 起始版本
Equal PciDeviceMetaDataOperator 相等 2.1
Unequal PciDeviceMetaDataOperator 不等 2.1
#matchedPciDeviceOfferingRef
名字 类型 描述 起始版本
pciDeviceUuid String 2.1
pciDeviceOfferingUuid String 2.1
#mdevSpecRefs
名字 类型 描述 起始版本
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示例

Java SDK
QueryPciDeviceAction action = new QueryPciDeviceAction();
action.conditions = asList();
action.sessionId = "9895783acb8541c6938417b602429219";
QueryPciDeviceAction.Result res = action.call();
Python SDK
QueryPciDeviceAction action = QueryPciDeviceAction()
action.conditions = []
action.sessionId = "515d02b3a2094575beadbf3db7127880"
QueryPciDeviceAction.Result res = action.call()

更新PCI设备(UpdatePciDevice)

API请求

URL
PUT zstack/v1/pci-device/pci-devices/{uuid}/actions
Header
Authorization: OAuth the-session-uuid
Body
{
  "updatePciDevice": {
    "state": "Disabled",
    "description": "test pci",
    "metaData": "key1:value1;key2:value2"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updatePciDevice":{"state":"Disabled","description":"test pci","metaData":"key1:value1;key2:value2"}}' \
http://localhost:8080/zstack/v1/pci-device/pci-devices/4bec7e7c2c1e337599e0455165906fd5/actions
参数列表
名字 类型 位置 描述 可选值 起始版本
uuid String url 资源的UUID,唯一标示该资源 2.1
state (可选) String body(包含在updatePciDevice结构中)
  • Enabled
  • Disabled
2.1
description (可选) String body(包含在updatePciDevice结构中) 资源的详细描述 2.1
metaData (可选) String body(包含在updatePciDevice结构中) 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

返回示例
{
  "inventory": {
    "description": "test pci",
    "hostUuid": "47c749c4520c3c5ba2ddcb6bf725cc40",
    "vmInstanceUuid": "8452e9231dd339158054902001b453d0",
    "status": "Active",
    "state": "Disabled",
    "type": "GPU_Video_Controller",
    "vendorId": "10de",
    "deviceId": "0e0f",
    "subvendorId": "10de",
    "subdeviceId": "118b",
    "metaData": {
      "metaData": "render:Equal:true;anime:Equal:true",
      "metaDataEntries": [
        {
          "key": "render",
          "op": "Equal",
          "value": "true"
        },
        {
          "key": "anime",
          "op": "Equal",
          "value": "true"
        }
      ]
    },
    "pciDeviceAddress": "0000:06:00.1"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventory PciDeviceInventory 详情参考inventory 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 3.5.0
description String 资源的详细描述 2.1
hostUuid String 物理机UUID 2.1
parentUuid String 物理PCI设备UUID 3.5.0
vmInstanceUuid String 云主机UUID 2.1
pciSpecUuid String PCI设备规格UUID 3.5.0
vendorId String 供应商ID 2.1
deviceId String 设备ID 2.1
subvendorId String 子供应商ID 2.1
subdeviceId String 子设备ID 2.1
pciDeviceAddress String PCI设备地址 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
type PciDeviceType 详情参考type 2.1
state PciDeviceState 详情参考state 2.1
status PciDeviceStatus 详情参考status 2.1
virtStatus PciDeviceVirtStatus 详情参考virtStatus 3.5.0
metaData PciDeviceMetaData 详情参考metaData 2.1
matchedPciDeviceOfferingRef List 详情参考matchedPciDeviceOfferingRef 2.1
mdevSpecRefs List 详情参考mdevSpecRefs 3.5.0
#type
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
Enabled PciDeviceState 启用 2.1
Disabled PciDeviceState 停用 2.1
#status
名字 类型 描述 起始版本
Active PciDeviceStatus 就绪 2.1
Attached PciDeviceStatus 已挂载 2.1
System PciDeviceStatus 系统 2.1
#virtStatus
名字 类型 描述 起始版本
UNVIRTUALIZABLE PciDeviceVirtStatus 不可虚拟化 3.5.0
SRIOV_VIRTUALIZABLE PciDeviceVirtStatus 支持SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZABLE PciDeviceVirtStatus 支持VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUALIZED PciDeviceVirtStatus 已SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZED PciDeviceVirtStatus 已VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUAL PciDeviceVirtStatus SRIOV虚拟设备 3.5.0
UNKNOWN PciDeviceVirtStatus 未知 3.5.0
#metaData
名字 类型 描述 起始版本
metaData String 2.1
metaDataEntries List 详情参考metaDataEntries 2.1
#metaDataEntries
名字 类型 描述 起始版本
key String 2.1
value String 2.1
op PciDeviceMetaDataOperator 详情参考op 2.1
#op
名字 类型 描述 起始版本
Equal PciDeviceMetaDataOperator 相等 2.1
Unequal PciDeviceMetaDataOperator 不等 2.1
#matchedPciDeviceOfferingRef
名字 类型 描述 起始版本
pciDeviceUuid String 2.1
pciDeviceOfferingUuid String 2.1
#mdevSpecRefs
名字 类型 描述 起始版本
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示例

Java SDK
UpdatePciDeviceAction action = new UpdatePciDeviceAction();
action.uuid = "4bec7e7c2c1e337599e0455165906fd5";
action.state = "Disabled";
action.description = "test pci";
action.metaData = "key1:value1;key2:value2";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdatePciDeviceAction.Result res = action.call();
Python SDK
UpdatePciDeviceAction action = UpdatePciDeviceAction()
action.uuid = "4bec7e7c2c1e337599e0455165906fd5"
action.state = "Disabled"
action.description = "test pci"
action.metaData = "key1:value1;key2:value2"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdatePciDeviceAction.Result res = action.call()

删除PCI设备(DeletePciDevice)

删除失效的PCI设备,只允许删除Inactive状态的PCI设备。

API请求

URLs
DELETE zstack/v1/pci-device/pci-devices/{uuid}?deleteMode={deleteMode}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth e48a9a18b86946af89ad991945942f6c" \
-X DELETE http://localhost:8080/zstack/v1/pci-device/pci-devices/eae6d78d9ae344babc2c32028bea20f0?deleteMode=Permissive
参数列表
名字 类型 位置 描述 可选值 起始版本
uuid String url 资源的UUID,唯一标示该资源 2.1
deleteMode (可选) String url 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
    "error": {
        "code": "SYS.1001",
        "description": "A message or a operation timeout",
        "details": "Create VM on KVM timeout after 300s"
    }
}

SDK示例

Java SDK
DeletePciDeviceAction action = new DeletePciDeviceAction();
action.uuid = "435ae2ba1b3948a68835af0134ab8a97";
action.deleteMode = "Permissive";
action.sessionId = "c9e0d2c1a0614733854d12cb9670b475";
DeletePciDeviceAction.Result res = action.call();
Python SDK
DeletePciDeviceAction action = DeletePciDeviceAction()
action.uuid = "5ab09caf016345adad9ee77462da8acf"
action.deleteMode = "Permissive"
action.sessionId = "f048bfdfbdad403b9e2223a0d8b96bc6"
DeletePciDeviceAction.Result res = action.call()

获取PCI设备列表(GetPciDeviceCandidatesForAttachingVm)

获取云主机可绑定PCI设备列表。

API请求

URLs
GET zstack/v1/vm-instances/{vmInstanceUuid}/candidate-pci-devices
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 3ac79a27693a48bda0c56e1a1ee3c4f6" \
-X GET http://localhost:8080/zstack/v1/vm-instances/30f116d6602248249266776f279ef674/candidate-pci-devices
参数列表
名字 类型 位置 描述 可选值 起始版本
vmInstanceUuid String url 云主机UUID 2.1
systemTags (可选) List query 2.1
userTags (可选) List query 2.1
types (可选) List query 2.1

API返回

返回示例
{
  "inventories": [
    {
      "uuid": "99bc47cf68e340a1b0a85c874637ec7b",
      "hostUuid": "f853669ede9c4699bdff97e30d91235b",
      "status": "Attached",
      "type": "GPU_Video_Controller",
      "vendorId": "10de",
      "deviceId": "0e0f",
      "subvendorId": "10de",
      "subdeviceId": "118b",
      "pciDeviceAddress": "0000:06:00.1"
    }
  ]
}
名字 类型 描述 起始版本
success boolean 0.6
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventories List 详情参考inventories 0.6
error ErrorCode 详情参考error 0.6
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 3.5.0
description String 资源的详细描述 2.1
hostUuid String 物理机UUID 2.1
parentUuid String 物理PCI设备UUID 3.5.0
vmInstanceUuid String 云主机UUID 2.1
pciSpecUuid String PCI设备规格UUID 3.5.0
vendorId String 供应商ID 2.1
deviceId String 设备ID 2.1
subvendorId String 子供应商ID 2.1
subdeviceId String 子设备ID 2.1
pciDeviceAddress String PCI设备地址 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
type PciDeviceType 详情参考type 2.1
state PciDeviceState 详情参考state 2.1
status PciDeviceStatus 详情参考status 2.1
virtStatus PciDeviceVirtStatus 详情参考virtStatus 3.5.0
metaData PciDeviceMetaData 详情参考metaData 2.1
matchedPciDeviceOfferingRef List 详情参考matchedPciDeviceOfferingRef 2.1
mdevSpecRefs List 详情参考mdevSpecRefs 3.5.0
#type
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
Enabled PciDeviceState 启用 2.1
Disabled PciDeviceState 停用 2.1
#status
名字 类型 描述 起始版本
Active PciDeviceStatus 就绪 2.1
Attached PciDeviceStatus 已挂载 2.1
System PciDeviceStatus 系统 2.1
#virtStatus
名字 类型 描述 起始版本
UNVIRTUALIZABLE PciDeviceVirtStatus 不可虚拟化 3.5.0
SRIOV_VIRTUALIZABLE PciDeviceVirtStatus 支持SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZABLE PciDeviceVirtStatus 支持VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUALIZED PciDeviceVirtStatus 已SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZED PciDeviceVirtStatus 已VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUAL PciDeviceVirtStatus SRIOV虚拟设备 3.5.0
UNKNOWN PciDeviceVirtStatus 未知 3.5.0
#metaData
名字 类型 描述 起始版本
metaData String 2.1
metaDataEntries List 详情参考metaDataEntries 2.1
#metaDataEntries
名字 类型 描述 起始版本
key String 2.1
value String 2.1
op PciDeviceMetaDataOperator 详情参考op 2.1
#op
名字 类型 描述 起始版本
Equal PciDeviceMetaDataOperator 相等 2.1
Unequal PciDeviceMetaDataOperator 不等 2.1
#matchedPciDeviceOfferingRef
名字 类型 描述 起始版本
pciDeviceUuid String 2.1
pciDeviceOfferingUuid String 2.1
#mdevSpecRefs
名字 类型 描述 起始版本
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
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6

SDK示例

Java SDK
GetPciDeviceCandidatesForAttachingVmAction action = new GetPciDeviceCandidatesForAttachingVmAction();
action.vmInstanceUuid = "178ad6dd410d4f75a5b956c6f9525603";
action.sessionId = "865b02dddee54fdea331471b5c266728";
GetPciDeviceCandidatesForAttachingVmAction.Result res = action.call();
Python SDK
GetPciDeviceCandidatesForAttachingVmAction action = GetPciDeviceCandidatesForAttachingVmAction()
action.vmInstanceUuid = "0b89549b899d4e0ca421c443df97132f"
action.sessionId = "675223f565f747229d25c72354f866bb"
GetPciDeviceCandidatesForAttachingVmAction.Result res = action.call()

获取可加载PCI设备(GetPciDeviceCandidatesForNewCreateVm)

为新建虚拟机获取可加载PCI设备。

API请求

URLs
GET zstack/v1/pci-device/candidate-pci-devices-for-new-create-vm
Headers

Authorization: OAuth the-session-uuid
Curl示例

curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device/candidate-pci-devices-for-new-create-vm?hostUuid=3376aee6af913e278a1a6aafc28c2e94
参数列表
名字 类型 位置 描述 可选值 起始版本
hostUuid (可选) String query 物理机UUID 2.4
clusterUuids (可选) List query 2.4
types (可选) List query 2.4
systemTags (可选) List query 2.4
userTags (可选) List query 2.4

API返回

返回示例

{
  "inventories": [
    {
      "uuid": "1d2d54391e4d303cbf12543508b208ba",
      "hostUuid": "d98a93185af134fda630723444fd49d4",
      "status": "Attached",
      "type": "GPU_Video_Controller",
      "vendorId": "10de",
      "deviceId": "0e0f",
      "subvendorId": "10de",
      "subdeviceId": "118b",
      "pciDeviceAddress": "0000:06:00.1"
    }
  ]
}
名字 类型 描述 起始版本
success boolean 0.6
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventories List 详情参考inventories 0.6
error ErrorCode 详情参考error 0.6
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 3.5.0
description String 资源的详细描述 2.1
hostUuid String 物理机UUID 2.1
parentUuid String 物理PCI设备UUID 3.5.0
vmInstanceUuid String 云主机UUID 2.1
pciSpecUuid String PCI设备规格UUID 3.5.0
vendorId String 供应商ID 2.1
deviceId String 设备ID 2.1
subvendorId String 子供应商ID 2.1
subdeviceId String 子设备ID 2.1
pciDeviceAddress String PCI设备地址 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
type PciDeviceType 详情参考type 2.1
state PciDeviceState 详情参考state 2.1
status PciDeviceStatus 详情参考status 2.1
virtStatus PciDeviceVirtStatus 详情参考virtStatus 3.5.0
metaData PciDeviceMetaData 详情参考metaData 2.1
matchedPciDeviceOfferingRef List 详情参考matchedPciDeviceOfferingRef 2.1
mdevSpecRefs List 详情参考mdevSpecRefs 3.5.0
#type
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
Enabled PciDeviceState 启用 2.1
Disabled PciDeviceState 停用 2.1
#status
名字 类型 描述 起始版本
Active PciDeviceStatus 就绪 2.1
Attached PciDeviceStatus 已挂载 2.1
System PciDeviceStatus 系统 2.1
#virtStatus
名字 类型 描述 起始版本
UNVIRTUALIZABLE PciDeviceVirtStatus 不可虚拟化 3.5.0
SRIOV_VIRTUALIZABLE PciDeviceVirtStatus 支持SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZABLE PciDeviceVirtStatus 支持VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUALIZED PciDeviceVirtStatus 已SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZED PciDeviceVirtStatus 已VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUAL PciDeviceVirtStatus SRIOV虚拟设备 3.5.0
UNKNOWN PciDeviceVirtStatus 未知 3.5.0
#metaData
名字 类型 描述 起始版本
metaData String 2.1
metaDataEntries List 详情参考metaDataEntries 2.1
#metaDataEntries
名字 类型 描述 起始版本
key String 2.1
value String 2.1
op PciDeviceMetaDataOperator 详情参考op 2.1
#op
名字 类型 描述 起始版本
Equal PciDeviceMetaDataOperator 相等 2.1
Unequal PciDeviceMetaDataOperator 不等 2.1
#matchedPciDeviceOfferingRef
名字 类型 描述 起始版本
pciDeviceUuid String 2.1
pciDeviceOfferingUuid String 2.1
#mdevSpecRefs
名字 类型 描述 起始版本
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
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6

SDK示例

Java SDK

GetPciDeviceCandidatesForNewCreateVmAction action = new GetPciDeviceCandidatesForNewCreateVmAction();
action.hostUuid = "3376aee6af913e278a1a6aafc28c2e94";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetPciDeviceCandidatesForNewCreateVmAction.Result res = action.call();
Python SDK

GetPciDeviceCandidatesForNewCreateVmAction action = GetPciDeviceCandidatesForNewCreateVmAction()
action.hostUuid = "3376aee6af913e278a1a6aafc28c2e94"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetPciDeviceCandidatesForNewCreateVmAction.Result res = action.call()

绑定PCI设备到云主机(AttachPciDeviceToVm)

绑定PCI设备到云主机,管理员可以直接将状态为System、Active的PCI设备绑定到状态为Active、Stop的云主机。

API请求

URLs
POST zstack/v1/pci-device/pci-devices/{pciDeviceUuid}/attach
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "vmInstanceUuid": "ea787ebae18f4e668e5962fd7db982a3"
  },
  "systemTags": [],
  "userTags": []
}
Note:

上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。

Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vmInstanceUuid":"d3f41f8b996b390992cc4607e7bb10dc"}}' \
http://localhost:8080/zstack/v1/pci-device/pci-devices/201b541edbed3dccbebfaa57b3beb9bb/attach
参数列表
名字 类型 位置 描述 可选值 起始版本
pciDeviceUuid String url PCI设备UUID 2.1
vmInstanceUuid String body(包含在params结构中) 云主机UUID 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

返回示例
{
  "inventory": {
    "uuid": "4d0454694e264b2cafaa2adfd3e48602",
    "hostUuid": "b17bee8ff0814edc9661a65b281d2d78",
    "vmInstanceUuid": "ca4f71e2328f4f06b78d5b7255342dde",
    "status": "Attached",
    "type": "GPU_Video_Controller",
    "vendorId": "10de",
    "deviceId": "0e0f",
    "subvendorId": "10de",
    "subdeviceId": "118b",
    "pciDeviceAddress": "0000:06:00.1"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventory PciDeviceInventory 详情参考inventory 2.1
#error
名字 类型 描述 起始版本
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
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 3.5.0
description String 资源的详细描述 2.1
hostUuid String 物理机UUID 2.1
parentUuid String 物理PCI设备UUID 3.5.0
vmInstanceUuid String 云主机UUID 2.1
vendorId String 2.1
pciSpecUuid String PCI设备规格UUID 3.5.0
vendorId String 供应商ID 2.1
deviceId String 设备ID 2.1
subvendorId String 子供应商ID 2.1
subdeviceId String 子设备ID 2.1
pciDeviceAddress String PCI设备地址 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
status PciDeviceStatus 详情参考status 2.1
state PciDeviceState 详情参考state 2.1
type PciDeviceType 详情参考type 2.1
virtStatus PciDeviceVirtStatus 详情参考virtStatus 3.5.0
metaData PciDeviceMetaData 详情参考metaData 2.1
matchedPciDeviceOfferingRef List 详情参考matchedPciDeviceOfferingRef 2.1
mdevSpecRefs List 详情参考mdevSpecRefs 3.5.0
#state
名字 类型 描述 起始版本
Enabled PciDeviceState 启用 2.1
Disabled PciDeviceState 停用 2.1
#status
名字 类型 描述 起始版本
Active PciDeviceStatus 就绪 2.1
Attached PciDeviceStatus 已挂载 2.1
System PciDeviceStatus 系统 2.1
#type
名字 类型 描述 起始版本
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
#virtStatus
名字 类型 描述 起始版本
UNVIRTUALIZABLE PciDeviceVirtStatus 不可虚拟化 3.5.0
SRIOV_VIRTUALIZABLE PciDeviceVirtStatus 支持SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZABLE PciDeviceVirtStatus 支持VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUALIZED PciDeviceVirtStatus 已SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZED PciDeviceVirtStatus 已VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUAL PciDeviceVirtStatus SRIOV虚拟设备 3.5.0
UNKNOWN PciDeviceVirtStatus 未知 3.5.0
#metaData
名字 类型 描述 起始版本
metaData String 2.1
metaDataEntries List 详情参考metaDataEntries 2.1
#metaDataEntries
名字 类型 描述 起始版本
key String 2.1
value String 2.1
op PciDeviceMetaDataOperator 详情参考op 2.1
#op
名字 类型 描述 起始版本
Equal PciDeviceMetaDataOperator 相等 2.1
Unequal PciDeviceMetaDataOperator 不等 2.1
#matchedPciDeviceOfferingRef
名字 类型 描述 起始版本
pciDeviceUuid String 2.1
pciDeviceOfferingUuid String 2.1
#mdevSpecRefs
名字 类型 描述 起始版本
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示例

Java SDK
AttachPciDeviceToVmAction action = new AttachPciDeviceToVmAction();
action.pciDeviceUuid = "201b541edbed3dccbebfaa57b3beb9bb";
action.vmInstanceUuid = "d3f41f8b996b390992cc4607e7bb10dc";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AttachPciDeviceToVmAction.Result res = action.call();
Python SDK
AttachPciDeviceToVmAction action = AttachPciDeviceToVmAction()
action.pciDeviceUuid = "201b541edbed3dccbebfaa57b3beb9bb"
action.vmInstanceUuid = "d3f41f8b996b390992cc4607e7bb10dc"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AttachPciDeviceToVmAction.Result res = action.call()

卸载PCI设备(DetachPciDeviceFromVm)

从云主机上卸载PCI设备

API请求

URLs
POST zstack/v1/pci-device/pci-devices/{pciDeviceUuid}/detach
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "vmInstanceUuid": "3603d1324fdd4393b62f5bc21e558eef"
  },
  "systemTags": [],
  "userTags": []
}
Note:

上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。

Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vmInstanceUuid":"42d2fcfc217f38faa02035132e7b4b16"}}' \
http://localhost:8080/zstack/v1/pci-device/pci-devices/f44964a4252a3de3a435d2ab04bb9fb8/detach
参数列表
名字 类型 位置 描述 可选值 起始版本
pciDeviceUuid String url 2.1
vmInstanceUuid String body(包含在params结构中) 云主机UUID 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

返回示例
{
  "inventory": {
    "uuid": "3b1256e08a6544f4abe7de5b9ea81970",
    "hostUuid": "056dbc6f8170409a953c120a16a87d18",
    "status": "Active",
    "type": "GPU_Video_Controller",
    "vendorId": "10de",
    "deviceId": "0e0f",
    "subvendorId": "10de",
    "subdeviceId": "118b",
    "pciDeviceAddress": "0000:06:00.1"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventory PciDeviceInventory 详情参考inventory 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 3.5.0
description String 资源的详细描述 2.1
hostUuid String 物理机UUID 2.1
parentUuid String 物理PCI设备UUID 3.5.0
vmInstanceUuid String 云主机UUID 2.1
pciSpecUuid String PCI设备规格UUID 3.5.0
vendorId String 供应商ID 2.1
deviceId String 设备ID 2.1
subvendorId String 子供应商ID 2.1
subdeviceId String 子设备ID 2.1
pciDeviceAddress String PCI设备地址 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
type PciDeviceType 详情参考type 2.1
state PciDeviceState 详情参考state 2.1
status PciDeviceStatus 详情参考status 2.1
virtStatus PciDeviceVirtStatus 详情参考virtStatus 3.5.0
metaData PciDeviceMetaData 详情参考metaData 2.1
matchedPciDeviceOfferingRef List 详情参考matchedPciDeviceOfferingRef 2.1
mdevSpecRefs List 详情参考mdevSpecRefs 3.5.0
#type
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
Enabled PciDeviceState 启用 2.1
Disabled PciDeviceState 停用 2.1
#status
名字 类型 描述 起始版本
Active PciDeviceStatus 就绪 2.1
Attached PciDeviceStatus 已挂载 2.1
System PciDeviceStatus 系统 2.1
#virtStatus
名字 类型 描述 起始版本
UNVIRTUALIZABLE PciDeviceVirtStatus 不可虚拟化 3.5.0
SRIOV_VIRTUALIZABLE PciDeviceVirtStatus 支持SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZABLE PciDeviceVirtStatus 支持VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUALIZED PciDeviceVirtStatus 已SRIOV虚拟化 3.5.0
VFIO_MDEV_VIRTUALIZED PciDeviceVirtStatus 已VFIO_MDEV虚拟化 3.5.0
SRIOV_VIRTUAL PciDeviceVirtStatus SRIOV虚拟设备 3.5.0
UNKNOWN PciDeviceVirtStatus 未知 3.5.0
#metaData
名字 类型 描述 起始版本
metaData String 2.1
metaDataEntries List 详情参考metaDataEntries 2.1
#metaDataEntries
名字 类型 描述 起始版本
key String 2.1
value String 2.1
op PciDeviceMetaDataOperator 详情参考op 2.1
#op
名字 类型 描述 起始版本
Equal PciDeviceMetaDataOperator 相等 2.1
Unequal PciDeviceMetaDataOperator 不等 2.1
#matchedPciDeviceOfferingRef
名字 类型 描述 起始版本
pciDeviceUuid String 2.1
pciDeviceOfferingUuid String 2.1
#mdevSpecRefs
名字 类型 描述 起始版本
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示例

Java SDK
DetachPciDeviceFromVmAction action = new DetachPciDeviceFromVmAction();
action.pciDeviceUuid = "f44964a4252a3de3a435d2ab04bb9fb8";
action.vmInstanceUuid = "42d2fcfc217f38faa02035132e7b4b16";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DetachPciDeviceFromVmAction.Result res = action.call();
Python SDK
DetachPciDeviceFromVmAction action = DetachPciDeviceFromVmAction()
action.pciDeviceUuid = "60f04d2b75944c27a6922abb8e307a28"
action.vmInstanceUuid = "72ff58a5d24e40299ed9eda91a683be2"
action.sessionId = "4404fdf219e94d7ab37b48c4950fd26d"
DetachPciDeviceFromVmAction.Result res = action.call()

创建PCI设备规格(CreatePciDeviceOffering)

API请求

URLs
POST zstack/v1/pci-device/pci-device-offerings
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "name": "test",
    "vendorId": "10de",
    "deviceId": "0e0f"
  },
  "systemTags": [],
  "userTags": []
}
Note:

上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。

Curl示例

curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"test","vendorId":"10de","deviceId":"0e0f"}}' \
http://localhost:8080/zstack/v1/pci-device/pci-device-offerings
参数列表
名字 类型 位置 描述 可选值 起始版本
name(可选) String body(包含在params结构中) 资源名称 2.1
description (可选) String body(包含在params结构中) 资源的详细描述 2.1
type (可选) String body(包含在params结构中) 2.1
vendorId String body(包含在params结构中) 供应商ID 2.1
deviceId String body(包含在params结构中) 设备ID 2.1
subvendorId (可选) String body(包含在params结构中) 子供应商ID 2.1
subdeviceId (可选) String body(包含在params结构中) 子设备ID 2.1
resourceUuid (可选) String body(包含在params结构中) 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

返回示例
{
  "inventory": {
    "type": "GPU_Video",
    "vendorId": "10de",
    "deviceId": "0e0f",
    "subvendorId": "10de",
    "subdeviceId": "118b"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventory PciDeviceOfferingInventory 详情参考inventory 2.1
#error
名字 类型 描述 起始版本
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
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 2.1
description String 资源的详细描述 2.1
vendorId String 2.1
deviceId String 2.1
subvendorId String 2.1
subdeviceId String 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
type PciDeviceOfferingType 详情参考type 2.1
attachedInstanceOfferings List 详情参考attachedInstanceOfferings 2.1
matchedPciDevices List 详情参考matchedPciDevices 2.1
#type
名字 类型 描述 起始版本
GPU_Video PciDeviceOfferingType GPU显卡 2.1
GPU_Audio PciDeviceOfferingType GPU声卡 2.1
Generic PciDeviceOfferingType 一般设备 2.1
#attachedInstanceOfferings
名字 类型 描述 起始版本
id long 2.1
instanceOfferingUuid String 计算规格UUID 2.1
pciDeviceOfferingUuid String 2.1
pciDeviceCount Integer 2.1
metadata PciDeviceMetaData 详情参考metadata 2.1
#metadata
名字 类型 描述 起始版本
metaData String 2.1
metaDataEntries List 详情参考metaDataEntries 2.1
#metaDataEntries
名字 类型 描述 起始版本
key String 2.1
value String 2.1
op PciDeviceMetaDataOperator 详情参考op 2.1
#op
名字 类型 描述 起始版本
Equal PciDeviceMetaDataOperator 相等 2.1
Unequal PciDeviceMetaDataOperator 不等 2.1
#matchedPciDevices
名字 类型 描述 起始版本
pciDeviceUuid String 2.1
pciDeviceOfferingUuid String 2.1

SDK示例

Java SDK
CreatePciDeviceOfferingAction action = new CreatePciDeviceOfferingAction();
action.name = "test";
action.vendorId = "10de";
action.deviceId = "0e0f";
action.sessionId = "0cb0086840314456812971957614aa63";
CreatePciDeviceOfferingAction.Result res = action.call();
Python SDK
CreatePciDeviceOfferingAction action = CreatePciDeviceOfferingAction()
action.name = "test"
action.vendorId = "10de"
action.deviceId = "0e0f"
action.sessionId = "b2dcf8abb771429f8f2484d0f4df428d"
CreatePciDeviceOfferingAction.Result res = action.call()

删除PCI设备规格(DeletePciDeviceOffering)

API请求

URLs
DELETE zstack/v1/pci-device/pci-device-offerings/{uuid}?deleteMode={deleteMode}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/pci-device/pci-device-offerings/900f2eefdec630c68313eb025123375d?deleteMode=Permissive
参数列表
名字 类型 位置 描述 可选值 起始版本
uuid String url 资源的UUID,唯一标示该资源 2.1
deleteMode (可选) String url 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
    "error": {
        "code": "SYS.1001",
        "description": "A message or a operation timeout",
        "details": "Create VM on KVM timeout after 300s"
    }
}

SDK示例

Java SDK
DeletePciDeviceOfferingAction action = new DeletePciDeviceOfferingAction();
action.uuid = "f47d555477e645af9a8817ce00b98b9d";
action.deleteMode = "Permissive";
action.sessionId = "c6809b8d823a4be484b82d03083a9ed0";
DeletePciDeviceOfferingAction.Result res = action.call();
Python SDK
DeletePciDeviceOfferingAction action = DeletePciDeviceOfferingAction()
action.uuid = "d5458c1007774c16aa0ae771056172ca"
action.deleteMode = "Permissive"
action.sessionId = "99e57c0e1caf44929feb35de6cd90605"
DeletePciDeviceOfferingAction.Result res = action.call()

查询PCI设备规格信息(QueryPciDeviceOffering)

API请求

URLs
GET zstack/v1/pci-device/pci-device-offerings
GET zstack/v1/pci-device/pci-device-offerings/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 0356dc4f75ac4798817b29d957ccb4bc" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-device-offerings
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 159ccf53b07a4b97ba3ea07dcf385f34" \
-X GET http://localhost:8080/zstack/v1/pci-device/pci-device-offerings/a43387ea19d84cecb328c34af59f6292

可查询字段

运行CLI命令行工具,输入QueryPciDeviceOffering并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {}
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventories List 详情参考inventories 2.1
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 2.1
description String 资源的详细描述 2.1
vendorId String 2.1
deviceId String 2.1
subvendorId String 2.1
subdeviceId String 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
type PciDeviceOfferingType 详情参考type 2.1
attachedInstanceOfferings List 详情参考attachedInstanceOfferings 2.1
matchedPciDevices List 详情参考matchedPciDevices 2.1
#type
名字 类型 描述 起始版本
类型 String 类型,保留字段 2.1
#attachedInstanceOfferings
名字 类型 描述 起始版本
id long 2.1
instanceOfferingUuid String 计算规格UUID 2.1
pciDeviceOfferingUuid String 2.1
pciDeviceCount Integer 2.1
metadata PciDeviceMetaData 详情参考metadata 2.1
#metadata
名字 类型 描述 起始版本
metaData String 2.1
metaDataEntries List 详情参考metaDataEntries 2.1
#metaDataEntries
名字 类型 描述 起始版本
key String 2.1
value String 2.1
op PciDeviceMetaDataOperator 详情参考op 2.1
#op
名字 类型 描述 起始版本
Equal PciDeviceMetaDataOperator 相等 2.1
Unequal PciDeviceMetaDataOperator 不等 2.1
#matchedPciDevices
名字 类型 描述 起始版本
pciDeviceUuid String 2.1
pciDeviceOfferingUuid String 2.1

SDK示例

Java SDK
QueryPciDeviceOfferingAction action = new QueryPciDeviceOfferingAction();
action.conditions = asList();
action.sessionId = "fa91fe0f572c4ac1bcc975572985eed9";
QueryPciDeviceOfferingAction.Result res = action.call();
Python SDK
QueryPciDeviceOfferingAction action = QueryPciDeviceOfferingAction()
action.conditions = []
action.sessionId = "c194660b515f48c98b469f591cdfe5a2"
QueryPciDeviceOfferingAction.Result res = action.call()

查询PCI设备规格匹配(QueryPciDevicePciDeviceOffering)

API请求

URLs
GET zstack/v1/pci-devices/pci-devices/pci-device-offerings
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b4f4b13d193c4db9890eb1e5e055341a" \
-X GET http://localhost:8080/zstack/v1/pci-devices/pci-devices/pci-device-offerings

可查询字段

运行CLI命令行工具,输入QueryPciDevicePciDeviceOffering并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {}
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventories List 详情参考inventories 2.1
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
pciDeviceUuid String 2.1
pciDeviceOfferingUuid String 2.1

SDK示例

Java SDK
QueryPciDevicePciDeviceOfferingAction action = new QueryPciDevicePciDeviceOfferingAction();
action.conditions = asList();
action.sessionId = "31a0eed2b439493997c448262d1ebc38";
QueryPciDevicePciDeviceOfferingAction.Result res = action.call();
Python SDK
QueryPciDevicePciDeviceOfferingAction action = QueryPciDevicePciDeviceOfferingAction()
action.conditions = []
action.sessionId = "0dce1b66e4584dce83137f266aae1200"
QueryPciDevicePciDeviceOfferingAction.Result res = action.call()

获取物理机lommu启用状态(GetHostIommuStatus)

API请求

URLs
GET zstack/v1/pci-device/hosts/status/uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 5dd20f6d5e414a15a8923f349758b5ff" \
-X GET http://localhost:8080/zstack/v1/pci-device/hosts/status/uuid}?uuid=fcc8d4defb1e4064907636e7cf0ed885
参数列表
名字 类型 位置 描述 可选值 起始版本
uuid String query 资源的UUID,唯一标示该资源 2.1
systemTags (可选) List query 2.1
userTags (可选) List query 2.1

API返回

返回示例
{
  "status": "Active"
}
名字 类型 描述 起始版本
success boolean 2.1
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
status HostIommuStatusType 详情参考status 2.1
#error
名字 类型 描述 起始版本
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
#status
名字 类型 描述 起始版本
name String 资源名称 2.1
ordinal int 2.1

SDK示例

Java SDK
GetHostIommuStatusAction action = new GetHostIommuStatusAction();
action.uuid = "78e175a479124efeb8182c00a854a05d";
action.sessionId = "8b8cba1389204acb8d56fbed1dad8458";
GetHostIommuStatusAction.Result res = action.call();
Python SDK
GetHostIommuStatusAction action = GetHostIommuStatusAction()
action.uuid = "7a446ba1cfe644f09fc454d7b32c6f4d"
action.sessionId = "c44236d523584717974407c5e972e7fc"
GetHostIommuStatusAction.Result res = action.call()

更新物理机Iommu启用状态(UpdateHostIommuState)

API请求

URLs
PUT zstack/v1/pci-device/hosts/{uuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "updateHostIommuState": {
    "state": "Enabled"
  },
  "systemTags": [],
  "userTags": []
}
Note:

上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。

Curl示例
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结构中)
  • Enabled
  • Disabled
2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

返回示例
{
  "state": "Enabled"
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。详情参考error 2.1
state HostIommuStateType 详情参考state 2.1
#error
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
name String 资源名称 0.6
ordinal int 0.6

SDK示例

Java SDK
UpdateHostIommuStateAction action = new UpdateHostIommuStateAction();
action.uuid = "30bc8157b4894ceb9be0387248febb72";
action.state = "Enabled";
action.sessionId = "c06ce6f86c10486f891ec7aab3896865";
UpdateHostIommuStateAction.Result res = action.call();
Python SDK
UpdateHostIommuStateAction action = UpdateHostIommuStateAction()
action.uuid = "53ad6ee9424148e8894c305370a1a9ba"
action.state = "Enabled"
action.sessionId = "f04fcfb3bfe3438aa56dd43e87202f04"
UpdateHostIommuStateAction.Result res = action.call()

获取物理机lommu就绪状态(GetHostIommuState)

API请求

URLs
GET zstack/v1/pci-device/hosts/state/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 637890e6fd754515a256c9c105d5c1c7" \
-X GET http://localhost:8080/zstack/v1/pci-device/hosts/state/904c207877bd4c20a4fc6811ec8cd808
参数列表
名字 类型 位置 描述 可选值 起始版本
uuid String url 资源的UUID,唯一标示该资源 2.1
systemTags (可选) List query 2.1
userTags (可选) List query 2.1

API返回

返回示例
{
  "state": "Enabled"
}
名字 类型 描述 起始版本
success boolean 2.1
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
state HostIommuStateType 详情参考state 2.1
#error
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
name String 资源名称 2.1
ordinal int 2.1

SDK示例

Java SDK
GetHostIommuStateAction action = new GetHostIommuStateAction();
action.uuid = "5e615f4d46784d72a8e0d7895123298e";
action.sessionId = "e7fd08c2494d401dadfa7d08649d0d09";
GetHostIommuStateAction.Result res = action.call();
Python SDK
GetHostIommuStateAction action = GetHostIommuStateAction()
action.uuid = "c05c88f401074402bed2531c23424ae0"
action.sessionId = "4e3f9322969f4cb394d22a3d6dc4f89b"
GetHostIommuStateAction.Result res = action.call()

将PCI设备规格加载到云主机(AddPciDeviceSpecToVmInstance)

API请求

URLs
POST zstack/v1/pci-device-specs/{pciSpecUuid}/vm-instances/{vmInstanceUuid}
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "pciDeviceNumber": 1.0
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"pciDeviceNumber":1.0}}' http://localhost:8080/zstack/v1/pci-device-specs/ace129cb77d93012bf47f839b9429881/vm-instances/16ecb900082437e8aaf554ce19620030
参数列表
名字 类型 位置 描述 可选值 起始版本
pciSpecUuid String url PCI设备规格UUID 3.5.0
vmInstanceUuid String url 云主机UUID 3.5.0
pciDeviceNumber (可选) Integer body(包含在params结构中) 3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 用户标签 3.5.0

API返回

返回示例
{
  "inventory": {
    "vmInstanceUuid": "ed0836204dbd496bb9cfa25f091d9d4a",
    "pciSpecUuid": "f9e3605232d343d99bca77ba13c1ca34",
    "pciDeviceNumber": 1.0,
    "createDate": "Nov 14, 2017 10:20:57 PM",
    "lastOpDate": "Nov 14, 2017 10:20:57 PM"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventory VmInstancePciDeviceSpecRefInventory 详情参考inventory 3.5.0
#error
名字 类型 描述 起始版本
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
#inventory
名字 类型 描述 起始版本
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示例

Java SDK
AddPciDeviceSpecToVmInstanceAction action = new AddPciDeviceSpecToVmInstanceAction();
action.pciSpecUuid = "ace129cb77d93012bf47f839b9429881";
action.vmInstanceUuid = "16ecb900082437e8aaf554ce19620030";
action.pciDeviceNumber = 1.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddPciDeviceSpecToVmInstanceAction.Result res = action.call();
Python SDK
AddPciDeviceSpecToVmInstanceAction action = AddPciDeviceSpecToVmInstanceAction()
action.pciSpecUuid = "ace129cb77d93012bf47f839b9429881"
action.vmInstanceUuid = "16ecb900082437e8aaf554ce19620030"
action.pciDeviceNumber = 1.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddPciDeviceSpecToVmInstanceAction.Result res = action.call()

将PCI设备规格从云主机卸载(RemovePciDeviceSpecFromVmInstance)

API请求

URLs
DELETE zstack/v1/pci-device-specs/{pciSpecUuid}/vm-instances/{vmInstanceUuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/pci-device-specs/1c8f91c1699c35bfbb1847d2c20f7371/vm-instances/422fe51c278930f085e1323b0e858e3f?deleteMode=Permissive
参数列表
名字 类型 位置 描述 可选值 起始版本
pciSpecUuid String url PCI设备规格UUID 3.5.0
vmInstanceUuid String url 云主机UUID 3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 系统标签 3.5.0

API返回

该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
	"error": {
		"code": "SYS.1001",
		"description": "A message or a operation timeout",
		"details": "Create VM on KVM timeout after 300s"
	}
}

SDK示例

Java SDK
RemovePciDeviceSpecFromVmInstanceAction action = new RemovePciDeviceSpecFromVmInstanceAction();
action.pciSpecUuid = "1c8f91c1699c35bfbb1847d2c20f7371";
action.vmInstanceUuid = "422fe51c278930f085e1323b0e858e3f";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemovePciDeviceSpecFromVmInstanceAction.Result res = action.call();
Python SDK
RemovePciDeviceSpecFromVmInstanceAction action = RemovePciDeviceSpecFromVmInstanceAction()
action.pciSpecUuid = "1c8f91c1699c35bfbb1847d2c20f7371"
action.vmInstanceUuid = "422fe51c278930f085e1323b0e858e3f"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemovePciDeviceSpecFromVmInstanceAction.Result res = action.call()

更新PCI设备规格(UpdatePciDeviceSpec)

API请求

URLs
PUT zstack/v1/pci-device-specs/{uuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
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设备规格启用状态
  • Enabled
  • Disabled
3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 用户标签 3.5.0

API返回

返回示例
{
  "inventory": {
    "uuid": "ff483f5d5bf14587ac2d46a565b0f28f",
    "name": "MSI_GTX1060",
    "description": "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller",
    "vendorId": "10de",
    "deviceId": "1c03",
    "subvendorId": "1462",
    "subdeviceId": "3283",
    "type": "GPU_Video_Controller",
    "state": "Enabled",
    "romVersion": "86.06.0E.00.28",
    "createDate": "Nov 14, 2017 10:20:57 PM",
    "lastOpDate": "Nov 14, 2017 10:20:57 PM"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventory PciDeviceSpecInventory 详情参考inventory 3.5.0
#error
名字 类型 描述 起始版本
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
#inventory
名字 类型 描述 起始版本
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
#type
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
Enabled PciDeviceSpecState 启用 3.5.0
Disabled PciDeviceSpecState 停用 3.5.0

SDK示例

Java SDK
UpdatePciDeviceSpecAction action = new UpdatePciDeviceSpecAction();
action.uuid = "4fd1d8c83d674e7abaa931a3972a37da";
action.name = "MSI_GTX1060";
action.description = "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller";
action.romContent = "*BASE64 ENCODED ROM CONTENT*";
action.romVersion = "86.06.0E.00.29";
action.abandonSpecRom = false;
action.state = "Enabled";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdatePciDeviceSpecAction.Result res = action.call();
Python SDK
UpdatePciDeviceSpecAction action = UpdatePciDeviceSpecAction()
action.uuid = "12de0d18f2e24fb8b178644cfcad105a"
action.name = "MSI_GTX1060"
action.description = "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller"
action.romContent = "*BASE64 ENCODED ROM CONTENT*"
action.romVersion = "86.06.0E.00.29"
action.abandonSpecRom = false
action.state = "Enabled"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdatePciDeviceSpecAction.Result res = action.call()

获取PCI设备规格候选列表(GetPciDeviceSpecCandidates)

API请求

URLs
GET zstack/v1/pci-device-specs/candidates
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device-specs/candidates?clusterUuids=d3305a8348d937ba97d260fb0af0e87d&clusterUuids=4943e8ab691435f98f7d22e3196f36a0&hostUuid=8bcb6475294a3283b5105f36c52c4aa9&vmInstanceUuid=c4bd1f978e843300b8de214567841c3a&types=GPU_Video_Controller&types=GPU_Audio_Controller
参数列表
名字 类型 位置 描述 可选值 起始版本
clusterUuids (可选) List query 集群UUID 3.5.0
hostUuid (可选) String query 物理机UUID 3.5.0
vmInstanceUuid (可选) String query 云主机UUID 3.5.0
vmInstanceUuids (可选) List query 云主机UUID列表 3.6.1
types (可选) List query 设备类型 3.5.0
systemTags (可选) List query 系统标签 3.5.0
userTags (可选) List query 用户标签 3.5.0

API返回

返回示例
{
  "inventories": [
    {
      "uuid": "87aceed20b6a46fbb4e45b74a514afd9",
      "name": "MSI_GTX1060",
      "description": "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller",
      "vendorId": "10de",
      "deviceId": "1c03",
      "subvendorId": "1462",
      "subdeviceId": "3283",
      "type": "GPU_Video_Controller",
      "state": "Enabled",
      "romVersion": "86.06.0E.00.28",
      "createDate": "Nov 14, 2017 10:20:57 PM",
      "lastOpDate": "Nov 14, 2017 10:20:57 PM"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventories List 详情参考inventories 3.5.0
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
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
#type
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
Enabled PciDeviceSpecState 启用 3.5.0
Disabled PciDeviceSpecState 停用 3.5.0

SDK示例

Java 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();
Python SDK
GetPciDeviceSpecCandidatesAction action = GetPciDeviceSpecCandidatesAction()
action.clusterUuids = [d3305a8348d937ba97d260fb0af0e87d, 4943e8ab691435f98f7d22e3196f36a0]
action.hostUuid = "8bcb6475294a3283b5105f36c52c4aa9"
action.vmInstanceUuid = "c4bd1f978e843300b8de214567841c3a"
action.types = [GPU_Video_Controller, GPU_Audio_Controller]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetPciDeviceSpecCandidatesAction.Result res = action.call()

查询PCI设备规格(QueryPciDeviceSpec)

API请求

URLs
GET zstack/v1/pci-device-specs
GET zstack/v1/pci-device-specs/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device-specs?q=uuid=148eb0059a193de59e5278395c36baa7
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/pci-device-specs/f5caf15dfb98366cbf87d41aa01385b9

可查询字段

运行CLI命令行工具,输入QueryPciDeviceSpec并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {
      "uuid": "4e583459b0bb4a8085f2acf4040ab802",
      "name": "MSI_GTX1060",
      "description": "NVIDIA Corporation, GP106 [GeForce GTX 1060 6GB], a1, VGA compatible controller",
      "vendorId": "10de",
      "deviceId": "1c03",
      "subvendorId": "1462",
      "subdeviceId": "3283",
      "type": "GPU_Video_Controller",
      "state": "Enabled",
      "romVersion": "86.06.0E.00.28",
      "createDate": "Nov 14, 2017 10:20:57 PM",
      "lastOpDate": "Nov 14, 2017 10:20:57 PM"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventories List 详情参考inventories 3.5.0
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
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
#type
名字 类型 描述 起始版本
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
#state
名字 类型 描述 起始版本
Enabled PciDeviceSpecState 启用 3.5.0
Disabled PciDeviceSpecState 停用 3.5.0

SDK示例

Java SDK
QueryPciDeviceSpecAction action = new QueryPciDeviceSpecAction();
action.conditions = asList("uuid=96a05dc8dbee32ddb15c63680df63792");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryPciDeviceSpecAction.Result res = action.call();
Python SDK
QueryPciDeviceSpecAction action = QueryPciDeviceSpecAction()
action.conditions = ["uuid=362f676642ba3288bf02c98fcee26d74"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryPciDeviceSpecAction.Result res = action.call()

查询云主机与PCI设备规格的关联关系(QueryVmInstancePciDeviceSpecRef)

API请求

URLs
GET zstack/v1/vm-instances/{vmInstanceUuid}/pci-device-specs
GET zstack/v1/vm-instances/{vmInstanceUuid}/pci-device-specs/{pciSpecUuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/{vmInstanceUuid}/pci-device-specs?q=vmInstanceUuid=e58abf7fd2d0332bb18ba348195be863
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/{vmInstanceUuid}/pci-device-specs/{pciSpecUuid}?q=vmInstanceUuid=34ff56e0fd1e3cd789a30d66fd4bf3aa

可查询字段

运行CLI命令行工具,输入QueryVmInstancePciDeviceSpecRef并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {
      "vmInstanceUuid": "c40d04f99f7647f2bf145aa6e3d463ff",
      "pciSpecUuid": "9afda707d3b14838adaa48d4295f3d5f",
      "pciDeviceNumber": 1.0,
      "createDate": "Nov 14, 2017 10:20:57 PM",
      "lastOpDate": "Nov 14, 2017 10:20:57 PM"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventories List 详情参考inventories 3.5.0
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
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示例

Java SDK
QueryVmInstancePciDeviceSpecRefAction action = new QueryVmInstancePciDeviceSpecRefAction();
action.conditions = asList("vmInstanceUuid=67c3ebbb1c683373a52310b218164181");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryVmInstancePciDeviceSpecRefAction.Result res = action.call();
Python SDK
QueryVmInstancePciDeviceSpecRefAction action = QueryVmInstancePciDeviceSpecRefAction()
action.conditions = ["vmInstanceUuid=aef75bdacefd33349d9f15eb0f96fe89"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryVmInstancePciDeviceSpecRefAction.Result res = action.call()

虚拟化切分支持SR-IOV的PCI设备(GenerateSriovPciDevices)

API请求

URLs
PUT zstack/v1/pci-devices/{pciDeviceUuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "generateSriovPciDevices": {
    "virtPartNum": 4.0
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"generateSriovPciDevices":{"virtPartNum":4.0}}' http://localhost:8080/zstack/v1/pci-devices/ce07829a08273d129f3b9d11cdf830b9/actions
参数列表
名字 类型 位置 描述 可选值 起始版本
pciDeviceUuid String url PCI UUID 3.5.0
virtPartNum Integer body(包含在generateSriovPciDevices结构中) 切分数量 3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 用户标签 3.5.0

API返回

该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
	"error": {
		"code": "SYS.1001",
		"description": "A message or a operation timeout",
		"details": "Create VM on KVM timeout after 300s"
	}
}

SDK示例

Java SDK
GenerateSriovPciDevicesAction action = new GenerateSriovPciDevicesAction();
action.pciDeviceUuid = "ce07829a08273d129f3b9d11cdf830b9";
action.virtPartNum = 4.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GenerateSriovPciDevicesAction.Result res = action.call();
Python SDK
GenerateSriovPciDevicesAction action = GenerateSriovPciDevicesAction()
action.pciDeviceUuid = "ce07829a08273d129f3b9d11cdf830b9"
action.virtPartNum = 4.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GenerateSriovPciDevicesAction.Result res = action.call()

虚拟化还原支持SR-IOV的PCI设备(UngenerateSriovPciDevices)

API请求

URLs
PUT zstack/v1/pci-devices/{pciDeviceUuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "ungenerateSriovPciDevices": {},
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
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返回

该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
	"error": {
		"code": "SYS.1001",
		"description": "A message or a operation timeout",
		"details": "Create VM on KVM timeout after 300s"
	}
}

SDK示例

Java SDK
UngenerateSriovPciDevicesAction action = new UngenerateSriovPciDevicesAction();
action.pciDeviceUuid = "31f8b8c366c63901ac928106568eca85";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UngenerateSriovPciDevicesAction.Result res = action.call();
Python SDK
UngenerateSriovPciDevicesAction action = UngenerateSriovPciDevicesAction()
action.pciDeviceUuid = "31f8b8c366c63901ac928106568eca85"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UngenerateSriovPciDevicesAction.Result res = action.call()

虚拟化切分支持VFIO_MDEV的PCI设备(GenerateMdevDevices)

API请求

URLs
PUT zstack/v1/pci-devices/{pciDeviceUuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "generateMdevDevices": {
    "mdevSpecUuid": "013f5f259daa3e119ec79496ed2f5697"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
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返回

该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
	"error": {
		"code": "SYS.1001",
		"description": "A message or a operation timeout",
		"details": "Create VM on KVM timeout after 300s"
	}
}

SDK示例

Java SDK
GenerateMdevDevicesAction action = new GenerateMdevDevicesAction();
action.pciDeviceUuid = "b5b60d1bc9353c948c635a500a044c97";
action.mdevSpecUuid = "013f5f259daa3e119ec79496ed2f5697";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GenerateMdevDevicesAction.Result res = action.call();
Python SDK
GenerateMdevDevicesAction action = GenerateMdevDevicesAction()
action.pciDeviceUuid = "b5b60d1bc9353c948c635a500a044c97"
action.mdevSpecUuid = "013f5f259daa3e119ec79496ed2f5697"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GenerateMdevDevicesAction.Result res = action.call()

虚拟化还原支持VFIO_MDEV的PCI设备(UngenerateMdevDevices)

API请求

URLs
PUT zstack/v1/pci-devices/{pciDeviceUuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "ungenerateMdevDevices": {},
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
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返回

该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
	"error": {
		"code": "SYS.1001",
		"description": "A message or a operation timeout",
		"details": "Create VM on KVM timeout after 300s"
	}
}

SDK示例

Java SDK
UngenerateMdevDevicesAction action = new UngenerateMdevDevicesAction();
action.pciDeviceUuid = "772a0f2d8aaa3626964e080122a48c25";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UngenerateMdevDevicesAction.Result res = action.call();
Python SDK
UngenerateMdevDevicesAction action = UngenerateMdevDevicesAction()
action.pciDeviceUuid = "772a0f2d8aaa3626964e080122a48c25"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UngenerateMdevDevicesAction.Result res = action.call()

查询PCI设备切分出的MDEV设备(QueryMdevDeviceSpec)

API请求

URLs
GET zstack/v1/mdev-device-specs
GET zstack/v1/mdev-device-specs/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-device-specs?q=uuid=80e1584c51673827abf32ad7c57fa5ed
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-device-specs/21accb3c691435f4a453de1566f19a37

可查询字段

运行CLI命令行工具,输入QueryMdevDeviceSpec并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {
      "uuid": "18ebda01fb874e7db54ccd3a6712e92d",
      "name": "GRID_M60-2A",
      "specification": "{Max Resolution\u003d1920*1080, GRID License\u003dGRID-Virtual-Apps,3.0, Instance Number\u003d4, Display Heads\u003d4, Vendor\u003dNVIDIA, Frame Rate Limit\u003d60FPS, Name\u003dGRID_M60-2A, RAM\u003d2048MB}",
      "type": "GPU_Video_Controller",
      "state": "Enabled",
      "createDate": "Nov 14, 2017 10:20:57 PM",
      "lastOpDate": "Nov 14, 2017 10:20:57 PM"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventories List 详情参考inventories 3.5.0
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 3.5.0
name String 资源名称 3.5.0
description String 资源的详细描述 3.5.0
specification String 规格详情 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
#type
名字 类型 描述 起始版本
GPU_Video_Controller MdevDeviceType GPU显卡控制器 3.5.0
#state
名字 类型 描述 起始版本
Enabled MdevDeviceSpecState 启用 3.5.0
Disabled MdevDeviceSpecState 停用 3.5.0

SDK示例

Java SDK
QueryMdevDeviceSpecAction action = new QueryMdevDeviceSpecAction();
action.conditions = asList("uuid=96eb790c250833cd8889736e712639d9");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryMdevDeviceSpecAction.Result res = action.call();
Python SDK
QueryMdevDeviceSpecAction action = QueryMdevDeviceSpecAction()
action.conditions = ["uuid=804f01b24a4f3ad6b78b09345e0ada3a"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryMdevDeviceSpecAction.Result res = action.call()

将PCI设备切分出的MDEV设备绑定到云主机(AttachMdevDeviceToVm)

API请求

URLs
POST zstack/v1/mdev-devices/{mdevDeviceUuid}/vm-instances/{vmInstanceUuid}
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {},
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{}}' http://localhost:8080/zstack/v1/mdev-devices/2a23f189ed803f869deab2b22ef83b4d/vm-instances/e4108c6e45303e3bbd9743093127b894
参数列表
名字 类型 位置 描述 可选值 起始版本
mdevDeviceUuid String url MDEV设备UUID 3.5.0
vmInstanceUuid String url 云主机UUID 3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 用户标签 3.5.0

API返回

返回示例
{
  "inventory": {
    "uuid": "2b29e6effba34e848164039e02511b89",
    "name": "GRID M60-2A",
    "parentUuid": "e9e3fe7b21644a19ac33e84dd27e3175",
    "hostUuid": "af505b47d522413d99d361b93cf92d2a",
    "mdevSpecUuid": "072b847576c34b419a29b16f62198e09",
    "type": "GPU_Video_Controller",
    "state": "Enabled",
    "status": "Active",
    "createDate": "Nov 14, 2017 10:20:57 PM",
    "lastOpDate": "Nov 14, 2017 10:20:57 PM"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventory MdevDeviceInventory 详情参考inventory 3.5.0
#error
名字 类型 描述 起始版本
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
#inventory
名字 类型 描述 起始版本
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
#type
名字 类型 描述 起始版本
GPU_Video_Controller MdevDeviceType GPU显卡控制器 3.5.0
#state
名字 类型 描述 起始版本
Enabled MdevDeviceState 启用 3.5.0
Disabled MdevDeviceState 停用 3.5.0
#status
名字 类型 描述 起始版本
Active MdevDeviceStatus 就绪 3.5.0
Attached MdevDeviceStatus 已挂载 3.5.0

SDK示例

Java SDK
AttachMdevDeviceToVmAction action = new AttachMdevDeviceToVmAction();
action.mdevDeviceUuid = "2a23f189ed803f869deab2b22ef83b4d";
action.vmInstanceUuid = "e4108c6e45303e3bbd9743093127b894";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AttachMdevDeviceToVmAction.Result res = action.call();
Python SDK
AttachMdevDeviceToVmAction action = AttachMdevDeviceToVmAction()
action.mdevDeviceUuid = "2a23f189ed803f869deab2b22ef83b4d"
action.vmInstanceUuid = "e4108c6e45303e3bbd9743093127b894"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AttachMdevDeviceToVmAction.Result res = action.call()

将PCI设备切分出的MDEV设备从云主机卸载(DetachMdevDeviceFromVm)

API请求

URLs
DELETE zstack/v1/mdev-devices/{mdevDeviceUuid}/vm-instances/{vmInstanceUuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/mdev-devices/4c2897ae50b8370489aa2e0caa96d370/vm-instances/16aefa196d5535f6836ec25d301ee3aa?deleteMode=Permissive
参数列表
名字 类型 位置 描述 可选值 起始版本
mdevDeviceUuid String url MDEV设备UUID 3.5.0
vmInstanceUuid String url 云主机UUID 3.5.0
deleteMode (可选) String body 删除模式(Permissive 或者 Enforcing,默认 Permissive) 3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 用户标签 3.5.0

API返回

返回示例
{
  "inventory": {
    "uuid": "db19d22ce51b4900bb404e673bdf6584",
    "name": "GRID M60-2A",
    "parentUuid": "7cb5801ead03491db07fa7db3cb3b1f1",
    "hostUuid": "eedf47e3f5f64953a507b11f999970ff",
    "mdevSpecUuid": "807b8e35a04d4d9d9a0ff431be6068a0",
    "type": "GPU_Video_Controller",
    "state": "Enabled",
    "status": "Active",
    "createDate": "Nov 14, 2017 10:20:57 PM",
    "lastOpDate": "Nov 14, 2017 10:20:57 PM"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventory MdevDeviceInventory 详情参考inventory 3.5.0
#error
名字 类型 描述 起始版本
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
#inventory
名字 类型 描述 起始版本
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
#type
名字 类型 描述 起始版本
GPU_Video_Controller MdevDeviceType GPU显卡控制器 3.5.0
#state
名字 类型 描述 起始版本
Enabled MdevDeviceState 启用 3.5.0
Disabled MdevDeviceState 停用 3.5.0
#status
名字 类型 描述 起始版本
Active MdevDeviceStatus 就绪 3.5.0
Attached MdevDeviceStatus 已挂载 3.5.0

SDK示例

Java SDK
DetachMdevDeviceFromVmAction action = new DetachMdevDeviceFromVmAction();
action.mdevDeviceUuid = "4c2897ae50b8370489aa2e0caa96d370";
action.vmInstanceUuid = "16aefa196d5535f6836ec25d301ee3aa";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DetachMdevDeviceFromVmAction.Result res = action.call();
Python SDK
DetachMdevDeviceFromVmAction action = DetachMdevDeviceFromVmAction()
action.mdevDeviceUuid = "4c2897ae50b8370489aa2e0caa96d370"
action.vmInstanceUuid = "16aefa196d5535f6836ec25d301ee3aa"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DetachMdevDeviceFromVmAction.Result res = action.call()

更新PCI设备切分出的MDEV设备(UpdateMdevDevice)

API请求

URLs
PUT zstack/v1/mdev-devices/{uuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "updateMdevDevice": {
    "name": "NVIDIA_M60-2A",
    "description": "NVIDIA_M60-2A_2048MB_1920*1080_4Ins_60FPS",
    "state": "Enabled"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
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结构中) 设备状态
  • Enabled
  • Disabled
3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 用户标签 3.5.0

API返回

返回示例
{
  "inventory": {
    "uuid": "d026caddef774497aaf494d032fc8d61",
    "name": "GRID M60-2A",
    "parentUuid": "822875fb541440fb87ed31e3688c286e",
    "hostUuid": "80ab6fb85aa34745944d3772ab6a3e27",
    "mdevSpecUuid": "83a58b54e1fb449494876298b1a94148",
    "type": "GPU_Video_Controller",
    "state": "Enabled",
    "status": "Active",
    "createDate": "Nov 14, 2017 10:20:57 PM",
    "lastOpDate": "Nov 14, 2017 10:20:57 PM"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventory MdevDeviceInventory 详情参考inventory 3.5.0
#error
名字 类型 描述 起始版本
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
#inventory
名字 类型 描述 起始版本
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
#type
名字 类型 描述 起始版本
GPU_Video_Controller MdevDeviceType GPU显卡控制器 3.5.0
#state
名字 类型 描述 起始版本
Enabled MdevDeviceState 启用 3.5.0
Disabled MdevDeviceState 停用 3.5.0
#status
名字 类型 描述 起始版本
Active MdevDeviceStatus 就绪 3.5.0
Attached MdevDeviceStatus 已挂载 3.5.0

SDK示例

Java 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();
Python SDK
UpdateMdevDeviceAction action = UpdateMdevDeviceAction()
action.uuid = "d89cea7c8a03306790d91e68fb0d0e65"
action.name = "NVIDIA_M60-2A"
action.description = "NVIDIA_M60-2A_2048MB_1920*1080_4Ins_60FPS"
action.state = "Enabled"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateMdevDeviceAction.Result res = action.call()

获取可用的MDEV设备(GetMdevDeviceCandidates)

API请求

URLs
GET zstack/v1/mdev-devices/candidates
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-devices/candidates?vmInstanceUuid=3be91dd3332a3ef0b57831dcfc28a0c2&types=GPU_Video_Controller
参数列表
名字 类型 位置 描述 可选值 起始版本
clusterUuids (可选) List query 集群UUID 3.5.0
hostUuid (可选) String query 物理机UUID 3.5.0
vmInstanceUuid (可选) String query 云主机UUID 3.5.0
types (可选) List query 设备类型 3.5.0
systemTags (可选) List query 系统标签 3.5.0
userTags (可选) List query 用户标签 3.5.0

API返回

返回示例
{
  "inventories": [
    {
      "uuid": "4dd1f251873b4173939179c29b864df0",
      "name": "GRID M60-2A",
      "parentUuid": "36ff3d337d644bb9803f6599ec77189c",
      "hostUuid": "f1c21432e12245e78ee05324bb0886b4",
      "mdevSpecUuid": "8c9ddca8f93d4457acf78194986f8034",
      "type": "GPU_Video_Controller",
      "state": "Enabled",
      "status": "Active",
      "createDate": "Nov 14, 2017 10:20:57 PM",
      "lastOpDate": "Nov 14, 2017 10:20:57 PM"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventories List 详情参考inventories 3.5.0
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
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
#type
名字 类型 描述 起始版本
GPU_Video_Controller MdevDeviceType GPU显卡控制器 3.5.0
#state
名字 类型 描述 起始版本
Enabled MdevDeviceState 启用 3.5.0
Disabled MdevDeviceState 停用 3.5.0
#status
名字 类型 描述 起始版本
Active MdevDeviceStatus 就绪 3.5.0
Attached MdevDeviceStatus 已挂载 3.5.0

SDK示例

Java SDK
GetMdevDeviceCandidatesAction action = new GetMdevDeviceCandidatesAction();
action.vmInstanceUuid = "3be91dd3332a3ef0b57831dcfc28a0c2";
action.types = asList("GPU_Video_Controller");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetMdevDeviceCandidatesAction.Result res = action.call();
Python SDK
GetMdevDeviceCandidatesAction action = GetMdevDeviceCandidatesAction()
action.vmInstanceUuid = "3be91dd3332a3ef0b57831dcfc28a0c2"
action.types = [GPU_Video_Controller]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetMdevDeviceCandidatesAction.Result res = action.call()

查询PCI设备切分出的MDEV设备(QueryMdevDevice)

API请求

URLs
GET zstack/v1/mdev-devices
GET zstack/v1/mdev-devices/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-devices
curl -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
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
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
#type
名字 类型 描述 起始版本
GPU_Video_Controller MdevDeviceType GPU显卡控制器 3.5.0
#state
名字 类型 描述 起始版本
Enabled MdevDeviceState 启用 3.5.0
Disabled MdevDeviceState 停用 3.5.0
#status
名字 类型 描述 起始版本
Active MdevDeviceStatus 就绪 3.5.0
Attached MdevDeviceStatus 已挂载 3.5.0

SDK示例

Java SDK
QueryMdevDeviceAction action = new QueryMdevDeviceAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryMdevDeviceAction.Result res = action.call();
Python SDK
QueryMdevDeviceAction action = QueryMdevDeviceAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryMdevDeviceAction.Result res = action.call()

将MDEV设备规格加载到云主机(AddMdevDeviceSpecToVmInstance)

API请求

URLs
POST zstack/v1/mdev-device-specs/{mdevSpecUuid}/vm-instances/{vmInstanceUuid}
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "mdevDeviceNumber": 1.0
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"mdevDeviceNumber":1.0}}' http://localhost:8080/zstack/v1/mdev-device-specs/dbcfe5ae889933a2a740584935e63e72/vm-instances/3d0b1d8b82ba3dd0b95a7903f735bdd1
参数列表
名字 类型 位置 描述 可选值 起始版本
mdevSpecUuid String url MDEV设备规格UUID 3.5.0
vmInstanceUuid String url 云主机UUID 3.5.0
mdevDeviceNumber (可选) Integer body(包含在params结构中) 3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 用户标签 3.5.0

API返回

返回示例
{
  "inventory": {
    "vmInstanceUuid": "e2af8f869eff49d2a3d6f86cadc27090",
    "mdevSpecUuid": "aa2e5e2cd0e749fab48ed045117ed70b",
    "mdevDeviceNumber": 1.0,
    "createDate": "Nov 14, 2017 10:20:57 PM",
    "lastOpDate": "Nov 14, 2017 10:20:57 PM"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventory VmInstanceMdevDeviceSpecRefInventory 详情参考inventory 3.5.0
#error
名字 类型 描述 起始版本
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
#inventory
名字 类型 描述 起始版本
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示例

Java SDK
AddMdevDeviceSpecToVmInstanceAction action = new AddMdevDeviceSpecToVmInstanceAction();
action.mdevSpecUuid = "dbcfe5ae889933a2a740584935e63e72";
action.vmInstanceUuid = "3d0b1d8b82ba3dd0b95a7903f735bdd1";
action.mdevDeviceNumber = 1.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddMdevDeviceSpecToVmInstanceAction.Result res = action.call();
Python SDK
AddMdevDeviceSpecToVmInstanceAction action = AddMdevDeviceSpecToVmInstanceAction()
action.mdevSpecUuid = "dbcfe5ae889933a2a740584935e63e72"
action.vmInstanceUuid = "3d0b1d8b82ba3dd0b95a7903f735bdd1"
action.mdevDeviceNumber = 1.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddMdevDeviceSpecToVmInstanceAction.Result res = action.call()

将MDEV设备规格从云主机卸载(RemoveMdevDeviceSpecFromVmInstance)

API请求

URLs
DELETE zstack/v1/mdev-device-specs/{mdevSpecUuid}/vm-instances/{vmInstanceUuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/mdev-device-specs/195f9b240d4a3f8b9946950694745fff/vm-instances/76ce5da88e383ee983955f3a24aea5cf?deleteMode=Permissive
参数列表
名字 类型 位置 描述 可选值 起始版本
mdevSpecUuid String url MDEV设备规格UUID 3.5.0
vmInstanceUuid String url 云主机UUID 3.5.0
deleteMode (可选) String body 删除模式(Permissive 或者 Enforcing,默认 Permissive) 3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 用户标签 3.5.0

API返回

该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
    "code": "SYS.1001",
    "description": "A message or a operation timeout",
    "details": "Create VM on KVM timeout after 300s"
}
}

SDK示例

Java SDK
RemoveMdevDeviceSpecFromVmInstanceAction action = new RemoveMdevDeviceSpecFromVmInstanceAction();
action.mdevSpecUuid = "195f9b240d4a3f8b9946950694745fff";
action.vmInstanceUuid = "76ce5da88e383ee983955f3a24aea5cf";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveMdevDeviceSpecFromVmInstanceAction.Result res = action.call();
Python SDK
RemoveMdevDeviceSpecFromVmInstanceAction action = RemoveMdevDeviceSpecFromVmInstanceAction()
action.mdevSpecUuid = "195f9b240d4a3f8b9946950694745fff"
action.vmInstanceUuid = "76ce5da88e383ee983955f3a24aea5cf"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveMdevDeviceSpecFromVmInstanceAction.Result res = action.call()

更新MDEV设备规格(UpdateMdevDeviceSpec)

API请求

URLs
PUT zstack/v1/mdev-device-specs/{uuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "updateMdevDeviceSpec": {
    "name": "GRID_M60-2A",
    "description": "NVIDIA Corporation, GM204GL [Tesla M60], a1, VGA compatible controller",
    "state": "Enabled"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateMdevDeviceSpec":{"name":"GRID_M60-2A","description":"NVIDIA Corporation, GM204GL [Tesla M60], a1, VGA compatible controller","state":"Enabled"}}' http://localhost:8080/zstack/v1/mdev-device-specs/abd8da93989a45b3b31023bf293b7a56/actions
参数列表
名字 类型 位置 描述 可选值 起始版本
uuid String url 资源的UUID,唯一标示该资源 3.5.0
name (可选) String body(包含在updateMdevDeviceSpec结构中) 资源名称 3.5.0
description (可选) String body(包含在updateMdevDeviceSpec结构中) 资源的详细描述 3.5.0
state (可选) String body(包含在updateMdevDeviceSpec结构中) 规格状态
  • Enabled
  • Disabled
3.5.0
systemTags (可选) List body 系统标签 3.5.0
userTags (可选) List body 用户标签 3.5.0

API返回

返回示例
{
  "inventory": {
    "uuid": "7cb7791f5c334fa699670765199e47ae",
    "name": "GRID_M60-2A",
    "specification": "{Max Resolution\u003d1920*1080, GRID License\u003dGRID-Virtual-Apps,3.0, Instance Number\u003d4, Display Heads\u003d4, Vendor\u003dNVIDIA, Frame Rate Limit\u003d60FPS, Name\u003dGRID_M60-2A, RAM\u003d2048MB}",
    "type": "GPU_Video_Controller",
    "state": "Enabled",
    "createDate": "Nov 14, 2017 10:20:57 PM",
    "lastOpDate": "Nov 14, 2017 10:20:57 PM"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventory MdevDeviceSpecInventory 详情参考inventory 3.5.0
#error
名字 类型 描述 起始版本
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
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 3.5.0
name String 资源名称 3.5.0
description String 资源的详细描述 3.5.0
specification String 规格详情 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
#type
名字 类型 描述 起始版本
GPU_Video_Controller MdevDeviceType GPU显卡控制器 3.5.0
#state
名字 类型 描述 起始版本
Enabled MdevDeviceSpecState 启用 3.5.0
Disabled MdevDeviceSpecState 停用 3.5.0

SDK示例

Java SDK
UpdateMdevDeviceSpecAction action = new UpdateMdevDeviceSpecAction();
action.uuid = "53f36ffde0b54220a0894794e2420e37";
action.name = "GRID_M60-2A";
action.description = "NVIDIA Corporation, GM204GL [Tesla M60], a1, VGA compatible controller";
action.state = "Enabled";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateMdevDeviceSpecAction.Result res = action.call();
Python SDK
UpdateMdevDeviceSpecAction action = UpdateMdevDeviceSpecAction()
action.uuid = "bfd502190f794603b26f699f8f8949f4"
action.name = "GRID_M60-2A"
action.description = "NVIDIA Corporation, GM204GL [Tesla M60], a1, VGA compatible controller"
action.state = "Enabled"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateMdevDeviceSpecAction.Result res = action.call()

获取可用的MDEV设备规格(GetMdevDeviceSpecCandidates)

API请求

URLs
GET zstack/v1/mdev-device-specs/candidates
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/mdev-device-specs/candidates?vmInstanceUuid=319897b485313c7a96b0af986b91baea&types=GPU_Video_Controller
参数列表
名字 类型 位置 描述 可选值 起始版本
clusterUuids (可选) List query 集群UUID 3.5.0
hostUuid (可选) String query 物理机UUID 3.5.0
vmInstanceUuid (可选) String query 云主机UUID 3.5.0
vmInstanceUuids (可选) List query 云主机UUID列表 3.6.1
types (可选) List query 设备类型 3.5.0
systemTags (可选) List query 系统标签 3.5.0
userTags (可选) List query 用户标签 3.5.0

API返回

返回示例
{
  "inventories": [
    {
      "uuid": "886c86dcca0a4f6696cf390c08d3e551",
      "name": "GRID_M60-2A",
      "specification": "{Max Resolution\u003d1920*1080, GRID License\u003dGRID-Virtual-Apps,3.0, Instance Number\u003d4, Display Heads\u003d4, Vendor\u003dNVIDIA, Frame Rate Limit\u003d60FPS, Name\u003dGRID_M60-2A, RAM\u003d2048MB}",
      "type": "GPU_Video_Controller",
      "state": "Enabled",
      "createDate": "Nov 14, 2017 10:20:57 PM",
      "lastOpDate": "Nov 14, 2017 10:20:57 PM"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventories List 详情参考inventories 3.5.0
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 3.5.0
name String 资源名称 3.5.0
description String 资源的详细描述 3.5.0
specification String 规格详情 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
#type
名字 类型 描述 起始版本
GPU_Video_Controller MdevDeviceType GPU显卡控制器 3.5.0
#state
名字 类型 描述 起始版本
Enabled MdevDeviceSpecState 启用 3.5.0
Disabled MdevDeviceSpecState 停用 3.5.0

SDK示例

Java SDK
GetMdevDeviceSpecCandidatesAction action = new GetMdevDeviceSpecCandidatesAction();
action.vmInstanceUuid = "319897b485313c7a96b0af986b91baea";
action.types = asList("GPU_Video_Controller");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetMdevDeviceSpecCandidatesAction.Result res = action.call();
Python SDK
GetMdevDeviceSpecCandidatesAction action = GetMdevDeviceSpecCandidatesAction()
action.vmInstanceUuid = "319897b485313c7a96b0af986b91baea"
action.types = [GPU_Video_Controller]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetMdevDeviceSpecCandidatesAction.Result res = action.call()

查询云主机与MDEV设备规格的关联关系(QueryVmInstanceMdevDeviceSpecRef)

API请求

URLs
GET zstack/v1/vm-instances/{vmInstanceUuid}/mdev-device-specs
GET zstack/v1/vm-instances/{vmInstanceUuid}/mdev-device-specs/{mdevSpecUuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/{vmInstanceUuid}/mdev-device-specs?q=vmInstanceUuid=15ea1f7027833d9ea566ea590184d5d2
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/{vmInstanceUuid}/mdev-device-specs/{mdevSpecUuid}?q=vmInstanceUuid=5e3c68fed5ef39089614830ff30dfd50

可查询字段

运行CLI命令行工具,输入QueryVmInstanceMdevDeviceSpecRef并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {
      "vmInstanceUuid": "56bfe280b3c84fe2abf1281a7050aabe",
      "mdevSpecUuid": "461d734e25824e4e9516c4798fa27068",
      "mdevDeviceNumber": 1.0,
      "createDate": "Nov 14, 2017 10:20:57 PM",
      "lastOpDate": "Nov 14, 2017 10:20:57 PM"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.5.0
inventories List 详情参考inventories 3.5.0
#error
名字 类型 描述 起始版本
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
#inventories
名字 类型 描述 起始版本
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示例

Java SDK
QueryVmInstanceMdevDeviceSpecRefAction action = new QueryVmInstanceMdevDeviceSpecRefAction();
action.conditions = asList("vmInstanceUuid=308f8eccec9b320bbe082f233e7f822c");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryVmInstanceMdevDeviceSpecRefAction.Result res = action.call();
Python SDK
QueryVmInstanceMdevDeviceSpecRefAction action = QueryVmInstanceMdevDeviceSpecRefAction()
action.conditions = ["vmInstanceUuid=254f7f2f30bb3b7bb26595fc5120a63b"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryVmInstanceMdevDeviceSpecRefAction.Result res = action.call()
开发手册 | 4.8.38 | ZStack Cloud · ZCF | ZStack 资源中心