Remove PciDeviceList usage in pci manager

Pci manager keeps a PciDeviceList and even try to append
object to the list. This is not correct, as the ObjectList
is designed as immutable, although the objects in the list is
mutable. We should simply use a list to keep devices.

Closes-Bug: #1273803

Change-Id: Ie80b6f5f47a1d2d2e20aadb4779be142c17b5b38
This commit is contained in:
Yunhong Jiang 2014-01-27 17:18:46 -08:00
parent c265803512
commit 81f9256747
2 changed files with 7 additions and 7 deletions

View File

@ -56,10 +56,10 @@ class PciDevTracker(object):
self.node_id = node_id
self.stats = pci_stats.PciDeviceStats()
if node_id:
self.pci_devs = pci_device.PciDeviceList.get_by_compute_node(
context, node_id)
self.pci_devs = list(pci_device.PciDeviceList.get_by_compute_node(
context, node_id))
else:
self.pci_devs = pci_device.PciDeviceList()
self.pci_devs = []
self._initial_instance_usage()
def _initial_instance_usage(self):
@ -123,8 +123,8 @@ class PciDevTracker(object):
if dev.obj_what_changed():
dev.save(context)
self.pci_devs.objects = [dev for dev in self.pci_devs
if dev['status'] != 'deleted']
self.pci_devs = [dev for dev in self.pci_devs
if dev['status'] != 'deleted']
@property
def pci_stats(self):
@ -188,7 +188,7 @@ class PciDevTracker(object):
dev['address'] in new_addrs - exist_addrs]:
dev['compute_node_id'] = self.node_id
dev_obj = pci_device.PciDevice.create(dev)
self.pci_devs.objects.append(dev_obj)
self.pci_devs.append(dev_obj)
self.stats.add_device(dev_obj)
def _claim_instance(self, instance, prefix=''):

View File

@ -244,7 +244,7 @@ class PciDevTrackerTestCase(test.TestCase):
self.destroy_called = 0
ctxt = context.get_admin_context()
self.assertEqual(len(self.tracker.pci_devs), 3)
dev = self.tracker.pci_devs.objects[0]
dev = self.tracker.pci_devs[0]
self.update_called = 0
dev.remove()
self.tracker.save(ctxt)