Fix up PciDevice remotable context usage

This fixes a bunch of PciDevice tests that pass context to remotable methods.

Change-Id: Ia572b05d70b679449292ddf40e132f472805a12b
This commit is contained in:
Dan Smith
2015-03-02 08:23:24 -08:00
parent fb642be12e
commit ea6c2cb0ec
2 changed files with 13 additions and 10 deletions

View File

@@ -81,7 +81,8 @@ class PciDevTracker(object):
def save(self, context):
for dev in self.pci_devs:
if dev.obj_what_changed():
dev.save(context)
with dev.obj_alternate_context(context):
dev.save()
self.pci_devs = [dev for dev in self.pci_devs
if dev['status'] != 'deleted']
@@ -148,6 +149,7 @@ class PciDevTracker(object):
for dev in [dev for dev in devices if
dev['address'] in new_addrs - exist_addrs]:
dev['compute_node_id'] = self.node_id
# NOTE(danms): These devices are created with no context
dev_obj = objects.PciDevice.create(dev)
self.pci_devs.append(dev_obj)
self.stats.add_device(dev_obj)

View File

@@ -78,8 +78,9 @@ class _TestPciDeviceObject(object):
self.inst.uuid = 'fake-inst-uuid'
self.inst.pci_devices = pci_device.PciDeviceList()
def _create_fake_pci_device(self):
ctxt = context.get_admin_context()
def _create_fake_pci_device(self, ctxt=None):
if not ctxt:
ctxt = context.get_admin_context()
self.mox.StubOutWithMock(db, 'pci_device_get_by_addr')
db.pci_device_get_by_addr(ctxt, 1, 'a').AndReturn(fake_db_dev)
self.mox.ReplayAll()
@@ -146,7 +147,7 @@ class _TestPciDeviceObject(object):
def test_save(self):
ctxt = context.get_admin_context()
self._create_fake_pci_device()
self._create_fake_pci_device(ctxt=ctxt)
return_dev = dict(fake_db_dev, status='available',
instance_uuid='fake-uuid-3')
self.pci_device.status = 'allocated'
@@ -157,7 +158,7 @@ class _TestPciDeviceObject(object):
db.pci_device_update(ctxt, 1, 'a',
expected_updates).AndReturn(return_dev)
self.mox.ReplayAll()
self.pci_device.save(ctxt)
self.pci_device.save()
self.assertEqual(self.pci_device.status, 'available')
self.assertEqual(self.pci_device.instance_uuid,
'fake-uuid-3')
@@ -174,17 +175,18 @@ class _TestPciDeviceObject(object):
ctxt = context.get_admin_context()
self.stubs.Set(db, 'pci_device_update', _fake_update)
self.pci_device = pci_device.PciDevice.create(dev_dict)
self.pci_device.save(ctxt)
self.pci_device._context = ctxt
self.pci_device.save()
self.assertEqual(self.extra_info, '{}')
def test_save_removed(self):
ctxt = context.get_admin_context()
self._create_fake_pci_device()
self._create_fake_pci_device(ctxt=ctxt)
self.pci_device.status = 'removed'
self.mox.StubOutWithMock(db, 'pci_device_destroy')
db.pci_device_destroy(ctxt, 1, 'a')
self.mox.ReplayAll()
self.pci_device.save(ctxt)
self.pci_device.save()
self.assertEqual(self.pci_device.status, 'deleted')
self.assertRemotes()
@@ -194,13 +196,12 @@ class _TestPciDeviceObject(object):
def _fake_update(ctxt, node_id, addr, updates):
self.called = True
ctxt = context.get_admin_context()
self.stubs.Set(db, 'pci_device_destroy', _fake_destroy)
self.stubs.Set(db, 'pci_device_update', _fake_update)
self._create_fake_pci_device()
self.pci_device.status = 'deleted'
self.called = False
self.pci_device.save(ctxt)
self.pci_device.save()
self.assertEqual(self.called, False)
def test_update_numa_node(self):