diff --git a/nova/objects/pci_device.py b/nova/objects/pci_device.py index bd4a5ccfbe..dc44c060e3 100644 --- a/nova/objects/pci_device.py +++ b/nova/objects/pci_device.py @@ -145,6 +145,9 @@ class PciDevice(base.NovaPersistentObject, base.NovaObject): map(lambda x: dev_dict.pop(x, None), [key for key in no_changes]) + # NOTE(ndipanov): This needs to be set as it's accessed when matching + dev_dict.setdefault('parent_addr') + for k, v in dev_dict.items(): if k in self.fields.keys(): setattr(self, k, v) diff --git a/nova/tests/unit/compute/test_resource_tracker.py b/nova/tests/unit/compute/test_resource_tracker.py index 3137a56ad2..38da0861f9 100644 --- a/nova/tests/unit/compute/test_resource_tracker.py +++ b/nova/tests/unit/compute/test_resource_tracker.py @@ -130,7 +130,6 @@ class FakeVirtDriver(driver.ComputeDriver): 'status': 'available', 'extra_k1': 'v1', 'numa_node': 1, - 'parent_addr': None, }, { 'label': 'label_8086_0123', @@ -142,7 +141,6 @@ class FakeVirtDriver(driver.ComputeDriver): 'status': 'available', 'extra_k1': 'v1', 'numa_node': 1, - 'parent_addr': None, }, { 'label': 'label_8086_7891', diff --git a/nova/tests/unit/objects/test_pci_device.py b/nova/tests/unit/objects/test_pci_device.py index 16b2870533..969168e2e1 100644 --- a/nova/tests/unit/objects/test_pci_device.py +++ b/nova/tests/unit/objects/test_pci_device.py @@ -121,7 +121,8 @@ class _TestPciDeviceObject(object): self.assertEqual(self.pci_device.product_id, 'p') self.assertEqual(self.pci_device.obj_what_changed(), set(['compute_node_id', 'product_id', 'vendor_id', - 'numa_node', 'status', 'address', 'extra_info'])) + 'numa_node', 'status', 'address', 'extra_info', + 'parent_addr'])) def test_pci_device_extra_info(self): self.dev_dict = copy.copy(dev_dict) @@ -134,7 +135,7 @@ class _TestPciDeviceObject(object): self.assertEqual(self.pci_device.obj_what_changed(), set(['compute_node_id', 'address', 'product_id', 'vendor_id', 'numa_node', 'status', - 'extra_info'])) + 'parent_addr', 'extra_info'])) def test_update_device(self): self.pci_device = pci_device.PciDevice.create(dev_dict) @@ -143,7 +144,7 @@ class _TestPciDeviceObject(object): self.pci_device.update_device(changes) self.assertEqual(self.pci_device.vendor_id, 'v2') self.assertEqual(self.pci_device.obj_what_changed(), - set(['vendor_id', 'product_id'])) + set(['vendor_id', 'product_id', 'parent_addr'])) def test_update_device_same_value(self): self.pci_device = pci_device.PciDevice.create(dev_dict) @@ -153,7 +154,7 @@ class _TestPciDeviceObject(object): self.assertEqual(self.pci_device.product_id, 'p') self.assertEqual(self.pci_device.vendor_id, 'v2') self.assertEqual(self.pci_device.obj_what_changed(), - set(['vendor_id', 'product_id'])) + set(['vendor_id', 'product_id', 'parent_addr'])) def test_get_by_dev_addr(self): ctxt = context.get_admin_context()