def test_save(self): ctxt = context.get_admin_context() 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' self.pci_device.instance_uuid = 'fake-uuid-2' expected_updates = dict(status='allocated', instance_uuid='fake-uuid-2') self.mox.StubOutWithMock(db, 'pci_device_update') db.pci_device_update(ctxt, 1, 'a', expected_updates).AndReturn(return_dev) self.mox.ReplayAll() self.pci_device.save() self.assertEqual(self.pci_device.status, 'available') self.assertEqual(self.pci_device.instance_uuid, 'fake-uuid-3') self.assertRemotes()
def save(self): if self.status == 'removed': self.status = 'deleted' db.pci_device_destroy(self._context, self.compute_node_id, self.address) elif self.status != 'deleted': updates = self.obj_get_changes() if 'extra_info' in updates: updates['extra_info'] = jsonutils.dumps(updates['extra_info']) if updates: db_pci = db.pci_device_update(self._context, self.compute_node_id, self.address, updates) self._from_db_object(self._context, self, db_pci)