Piotr Kliczewski has uploaded a new change for review.
Change subject: yml: return type fixes for Host.hostdevListByCaps
......................................................................
yml: return type fixes for Host.hostdevListByCaps
Signed-off-by: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Change-Id: I6ad09c310a76dde9267824a337fadf3b1c02bd45
---
M lib/api/vdsm-api.yml
M tests/vdsmapi_test.py
2 files changed, 178 insertions(+), 54 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/03/59703/1
diff --git a/lib/api/vdsm-api.yml b/lib/api/vdsm-api.yml
index 6cb6c9a..a289b7f 100644
--- a/lib/api/vdsm-api.yml
+++ b/lib/api/vdsm-api.yml
@@ -1382,57 +1382,119 @@
type: *BandwidthCurve
type: object
+ HostDeviceAddress: &HostDeviceAddress
+ description: A host device address
+ name: HostDeviceAddress
+ properties:
+ - description: bus
+ name: bus
+ type: string
+ datatype: uint
+
+ - defaultvalue: no-default
+ description: device
+ name: device
+ type: string
+ datatype: uint
+
+ - defaultvalue: no-default
+ description: slot
+ name: slot
+ type: string
+ datatype: uint
+
+ - defaultvalue: no-default
+ description: domain
+ name: domain
+ type: string
+ datatype: uint
+
+ - defaultvalue: no-default
+ description: function
+ name: function
+ type: string
+ datatype: uint
+
+ - defaultvalue: no-default
+ description: host
+ name: host
+ type: string
+ datatype: uint
+
+ - defaultvalue: no-default
+ description: target
+ name: target
+ type: string
+ datatype: uint
+
+ - defaultvalue: no-default
+ description: lun
+ name: lun
+ type: string
+ datatype: uint
+ type: object
+
HostDeviceParams: &HostDeviceParams
added: '3.6'
description: A host device parameters
name: HostDeviceParams
properties:
- - description: The iommu group which the device belongs
- to
- name: iommu_group
- type: uint
-
- description: The capability of the device (usually
pci, usb_device, scsi)
name: capability
type: string
- - description: String representation of the vendor
+ - defaultvalue: no-default
+ description: String representation of the vendor
name: vendor
type: string
- - defaultvalue: null
- description: Name of the physical function that this
- VF belongs to. Also reported for physical function
- itself, therefore in order to detect PF one must
- consider the tuple (totalvfs, physfn). (if sriov
- capable)
- name: physfn
- type: string
-
- - defaultvalue: null
- description: Number of available virtual functions
- (if sriov capable)
- name: totalvfs
- type: uint
-
- - description: Hexadecimal representation of the vendor
+ - defaultvalue: no-default
+ description: Hexadecimal representation of the vendor
name: vendor_id
type: string
- - description: String representation of the product
+ - defaultvalue: no-default
+ description: String representation of the product
specified by vendor
name: product
type: string
- - description: Name of the parent device
+ - defaultvalue: no-default
+ description: Name of the parent device
name: parent
type: string
- - description: Hexadecimal representation of the product
+ - defaultvalue: no-default
+ description: Hexadecimal representation of the product
specified by vendor
name: product_id
type: string
+
+ - defaultvalue: no-default
+ description: Assignable flag
+ name: is_assignable
+ type: boolean
+
+ - defaultvalue: no-default
+ description: Values like usbhid, usb, qxl or sd
+ name: driver
+ type: string
+
+ - defaultvalue: no-default
+ description: Network interface assigned to a device
+ name: interface
+ type: string
+
+ - defaultvalue: no-default
+ description: device udev path
+ name: udev_path
+ type: string
+
+ - defaultvalue: no-default
+ description: device address
+ name: address
+ type: *HostDeviceAddress
type: object
HostDevice: &HostDevice
@@ -1447,13 +1509,12 @@
HostDevices: &HostDevices
added: '3.6'
- description: Mapping of devices to their assignments
+ description: Mapping of device names to device details
name: HostDevices
- properties:
- - description: Name of the device
- name: deviceName
- type: *HostDevice
- type: object
+ key-type: string
+ name: HostDevices
+ type: map
+ value-type: *HostDevice
HostJobStatus: &HostJobStatus
added: '4.0'
@@ -7432,8 +7493,7 @@
- string
return:
description: A list of devices on the host
- type:
- - *HostDevices
+ type: *HostDevices
Host.hostdevChangeNumvfs:
added: '3.6'
diff --git a/tests/vdsmapi_test.py b/tests/vdsmapi_test.py
index fac3bf4..bff578c 100644
--- a/tests/vdsmapi_test.py
+++ b/tests/vdsmapi_test.py
@@ -270,27 +270,6 @@
_schema.schema().verify_retval(
vdsmapi.MethodRep('Host', 'getStats'), ret)
- def test_badly_defined_ret_type(self):
- ret = {u'pci_0000_00_1b_0':
- {u'params':
- {u'product': u'7 Series/C210 Series Chipset Family ',
- u'vendor': u'Intel Corporation',
- u'product_id': u'0x1e20',
- u'parent': u'computer',
- u'vendor_id': u'0x8086',
- u'capability': u'pci',
- u'address': {u'slot': u'27',
- u'bus': u'0',
- u'domain': u'0',
- u'function': u'0'}}}}
-
- # type definition is broken for this verb
- with self.assertRaises(JsonRpcError) as e:
- _schema.schema().verify_retval(
- vdsmapi.MethodRep('Host', 'hostdevListByCaps'), ret)
-
- self.assertIn('is not a list', e.exception.message)
-
def test_allvmstats(self):
ret = [{'vcpuCount': '1',
'displayInfo': [{'tlsPort': u'5900',
@@ -516,3 +495,88 @@
_schema.schema().verify_args(
vdsmapi.MethodRep('StoragePool', 'connect'), params)
+
+ def test_host_list_caps(self):
+ ret = {'net_eth0_52_54_00_56_00_39':
+ {'params': {'capability': 'net',
+ 'interface': 'eth0',
+ 'parent': 'pci_0000_00_03_0',
+ 'is_assignable': 'true'}},
+ 'computer':
+ {'params': {'capability': 'system',
+ 'is_assignable': 'true',
+ 'product': 'Standard PC (i440FX + PIIX,
1996)'}},
+ 'usb_1_1_1_0':
+ {'params': {'capability': 'usb',
+ 'is_assignable': 'true',
+ 'driver': 'usbhid',
+ 'parent': 'usb_1_1'}},
+ 'scsi_target7_0_0':
+ {'params': {'capability': 'scsi_target',
+ 'is_assignable': 'true',
+ 'parent': 'scsi_host7'}},
+ 'usb_usb1':
+ {'params': {'product': '2.0 root hub',
+ 'vendor': 'Linux Foundation',
+ 'product_id': '0x0002',
+ 'parent': 'pci_0000_00_05_7',
+ 'vendor_id': '0x1d6b',
+ 'driver': 'usb',
+ 'capability': 'usb_device',
+ 'is_assignable': 'true',
+ 'address': {'device': '1',
'bus': '1'}}},
+ 'pci_0000_00_02_0':
+ {'params': {'product': 'QXL paravirtual graphic
card',
+ 'vendor': 'Red Hat, Inc.',
+ 'product_id': '0x0100',
+ 'parent': 'computer',
+ 'vendor_id': '0x1b36',
+ 'driver': 'qxl',
+ 'capability': 'pci',
+ 'is_assignable': 'true',
+ 'address': {'slot': '2',
+ 'bus': '0',
+ 'domain': '0',
+ 'function': '0'}}},
+ 'scsi_5_0_0_18':
+ {'params': {'product': 'target1-18',
+ 'vendor': 'LIO-ORG',
+ 'parent': 'scsi_target5_0_0',
+ 'driver': 'sd',
+ 'capability': 'scsi',
+ 'is_assignable': 'true',
+ 'udev_path': '/dev/sg2',
+ 'address': {'bus': '0',
+ 'host': '5',
+ 'target': '0',
+ 'lun': '18'}}},
+ 'scsi_host5':
+ {'params': {'capability': 'scsi_host',
+ 'is_assignable': 'true',
+ 'parent': 'computer'}},
+ 'scsi_generic_sg26':
+ {'params': {'capability': 'scsi_generic',
+ 'is_assignable': 'true',
+ 'udev_path': '/dev/sg26',
+ 'parent': 'scsi_6_0_0_14'}},
+ 'scsi_6_0_0_14':
+ {'params': {'product': 'target2-14',
+ 'vendor': 'LIO-ORG',
+ 'parent': 'scsi_target6_0_0',
+ 'driver': 'sd',
+ 'capability': 'scsi',
+ 'is_assignable': 'true',
+ 'udev_path': '/dev/sg26',
+ 'address': {'bus': '0',
+ 'host': '6',
+ 'target': '0',
+ 'lun': '14'}}},
+ 'block_sdr_36001405292bb96f19064f81b884fa63f':
+ {'params': {'capability': 'storage',
+ 'is_assignable': 'true',
+ 'product': 'target1-03',
+ 'vendor': 'LIO-ORG',
+ 'parent': 'scsi_5_0_0_3'}}}
+
+ _schema.schema().verify_retval(
+ vdsmapi.MethodRep('Host', 'hostdevListByCaps'), ret)
--
To view, visit
https://gerrit.ovirt.org/59703
To unsubscribe, visit
https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ad09c310a76dde9267824a337fadf3b1c02bd45
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>