Add return values for implement of "pci_device_create"

In the describe of abstract method "pci_device_create", it expects a
PciDevice object as return value. But nothing is returned in current
implement by the end. In this commit a PciDevice object will be returned.

this commit also include unit test case:
test_create_devices_on_a_server

Closes-bug: 1853921

Change-Id: Ibf58328facac91d82b40f8f24be84e8eeda9a0c9
Signed-off-by: SidneyAn <ran1.an@intel.com>
This commit is contained in:
SidneyAn 2019-11-26 15:14:46 +08:00 committed by Ran An
parent 28b3bd8ba2
commit 67b40789ff
3 changed files with 48 additions and 2 deletions

View File

@ -1835,6 +1835,7 @@ class Connection(api.Connection):
values['host_id']))
raise exception.PCIAddrAlreadyExists(pciaddr=values['pciaddr'],
host=values['host_id'])
return self._pci_device_get(values['pciaddr'], values['host_id'])
@objects.objectify(objects.pci_device)
def pci_device_get_all(self, hostid=None):
@ -1843,8 +1844,7 @@ class Connection(api.Connection):
query = query.filter_by(host_id=hostid)
return query.all()
@objects.objectify(objects.pci_device)
def pci_device_get(self, deviceid, hostid=None):
def _pci_device_get(self, deviceid, hostid=None):
query = model_query(models.PciDevice)
if hostid:
query = query.filter_by(host_id=hostid)
@ -1856,6 +1856,10 @@ class Connection(api.Connection):
return result
@objects.objectify(objects.pci_device)
def pci_device_get(self, deviceid, hostid=None):
return self._pci_device_get(deviceid, hostid)
@objects.objectify(objects.pci_device)
def pci_device_get_list(self, limit=None, marker=None,
sort_key=None, sort_dir=None):

View File

@ -136,6 +136,15 @@ class DbNodeTestCase(base.DbTestCase):
utils.get_test_port(name='eth0', pciaddr="00:03.0"))
self.assertEqual(n['id'], p['host_id'])
def test_create_devices_on_a_server(self):
n = self._create_test_ihost()
forihostid = n['id']
d = self.dbapi.pci_device_create(forihostid,
utils.get_test_pci_devices())
self.assertEqual(n['id'], d['host_id'])
def test_create_storageVolume_on_a_server(self):
n = self._create_test_ihost()

View File

@ -1185,3 +1185,36 @@ def create_test_app(**kw):
del app_data['id']
dbapi = db_api.get_instance()
return dbapi.kube_app_create(app_data)
def get_test_pci_devices(**kw):
pci_devices = {
'id': kw.get('id', 2345),
'host_id': kw.get('host_id', 2),
'name': kw.get('name', 'pci_0000_00_02_0 '),
'pciaddr': kw.get('pciaddr', '0000:00:02.0'),
'pclass_id': kw.get('pclass_id', '030000'),
'pvendor_id': kw.get('pvendor_id', '8086'),
'pdevice_id': kw.get('pdevice_id', '3ea5'),
'pclass': kw.get('pclass', 'VGA compatible controller'),
'pvendor': kw.get('pvendor', 'Intel Corporation'),
'pdevice': kw.get('pdevice', 'Iris Plus Graphics 655'),
'numa_node': kw.get('numa_node', -1),
'enabled': kw.get('enabled', True),
'driver': kw.get('driver', '')
}
return pci_devices
def create_test_pci_devices(**kw):
"""Create test pci devices entry in DB and return PciDevice DB object.
Function to be used to create test pci device objects in the database.
:param kw: kwargs with overriding values for pci device attributes.
:returns: Test PciDevice DB object.
"""
pci_devices = get_test_pci_devices(**kw)
# Let DB generate ID if it isn't specified explicitly
if 'id' not in kw:
del pci_devices['id']
dbapi = db_api.get_instance()
return dbapi.pci_device_create(pci_devices['host_id'], pci_devices)