From fd3be6e1f28d3e1c30571ded4b6d5b37f449dabb Mon Sep 17 00:00:00 2001 From: Moshe Levi Date: Fri, 29 Apr 2016 01:34:12 +0300 Subject: [PATCH] pci: Allow to assign pci devices in pci device list This patch allow the pci device list constructor to be init with list of pci devices Change-Id: I420a79a22563c136741bda85be15f9d22d29e263 --- nova/objects/pci_device.py | 5 +++-- nova/tests/unit/objects/test_pci_device.py | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/nova/objects/pci_device.py b/nova/objects/pci_device.py index 5dbc949be00d..205e10a310d9 100644 --- a/nova/objects/pci_device.py +++ b/nova/objects/pci_device.py @@ -465,8 +465,9 @@ class PciDeviceList(base.ObjectListBase, base.NovaObject): def __init__(self, *args, **kwargs): super(PciDeviceList, self).__init__(*args, **kwargs) - self.objects = [] - self.obj_reset_changes() + if 'objects' not in kwargs: + self.objects = [] + self.obj_reset_changes() @base.remotable_classmethod def get_by_compute_node(cls, context, node_id): diff --git a/nova/tests/unit/objects/test_pci_device.py b/nova/tests/unit/objects/test_pci_device.py index 60217f1aaab0..2bd213e6d6e7 100644 --- a/nova/tests/unit/objects/test_pci_device.py +++ b/nova/tests/unit/objects/test_pci_device.py @@ -451,6 +451,15 @@ fake_pci_devs = [fake_db_dev, fake_db_dev_1] class _TestPciDeviceListObject(object): + + def test_create_pci_device_list(self): + ctxt = context.get_admin_context() + devobj = pci_device.PciDevice.create(ctxt, dev_dict) + pci_device_list = objects.PciDeviceList( + context=ctxt, objects=[devobj]) + self.assertEqual(1, len(pci_device_list)) + self.assertIsInstance(pci_device_list[0], pci_device.PciDevice) + def test_get_by_compute_node(self): ctxt = context.get_admin_context() self.mox.StubOutWithMock(db, 'pci_device_get_all_by_node')