def _get_instances_with_cached_ips(orig_func, *args, **kwargs): """Kludge the cache into instance(s) without having to create DB entries """ instances = orig_func(*args, **kwargs) context = args[0] fake_device = objects.PciDevice.get_by_dev_addr(context, 1, 'a') def _info_cache_for(instance): info_cache = dict(test_instance_info_cache.fake_info_cache, network_info=_get_fake_cache(), instance_uuid=instance['uuid']) if isinstance(instance, obj_base.NovaObject): _info_cache = objects.InstanceInfoCache(context) objects.InstanceInfoCache._from_db_object(context, _info_cache, info_cache) info_cache = _info_cache instance['info_cache'] = info_cache if isinstance(instances, (list, obj_base.ObjectListBase)): for instance in instances: _info_cache_for(instance) pci_device.claim(fake_device, instance) pci_device.allocate(fake_device, instance) else: _info_cache_for(instances) pci_device.claim(fake_device, instances) pci_device.allocate(fake_device, instances) return instances
def setUp(self): super(PciServerControllerTestV21, self).setUp() self.controller = pci.PciServerController() self.fake_obj = { 'server': { 'addresses': {}, 'id': 'fb08', 'name': 'a3', 'status': 'ACTIVE', 'tenant_id': '9a3af784c', 'user_id': 'e992080ac0', } } self.fake_list = { 'servers': [{ 'addresses': {}, 'id': 'fb08', 'name': 'a3', 'status': 'ACTIVE', 'tenant_id': '9a3af784c', 'user_id': 'e992080ac', }] } self._create_fake_instance() self._create_fake_pci_device() device.claim(self.pci_device, self.inst) device.allocate(self.pci_device, self.inst)
def test_free_allocated_device(self): device.claim(self.devobj, self.inst) device.allocate(self.devobj, self.inst) self.assertEqual(len(self.inst.pci_devices), 1) device.free(self.devobj, self.inst) self.assertEqual(len(self.inst.pci_devices), 0) self.assertEqual(self.devobj.status, 'available') self.assertIsNone(self.devobj.instance_uuid)
def test_allocate_device(self): device.claim(self.devobj, self.inst) device.allocate(self.devobj, self.inst) self.assertEqual(self.devobj.status, 'allocated') self.assertEqual(self.devobj.instance_uuid, 'fake-inst-uuid') self.assertEqual(len(self.inst.pci_devices), 1) self.assertEqual(self.inst.pci_devices[0]['vendor_id'], 'v') self.assertEqual(self.inst.pci_devices[0]['status'], 'allocated')
def test_allocate_device(self): device.claim(self.devobj, self.inst) device.allocate(self.devobj, self.inst) self.assertEqual(self.devobj.status, "allocated") self.assertEqual(self.devobj.instance_uuid, "fake-inst-uuid") self.assertEqual(len(self.inst.pci_devices), 1) self.assertEqual(self.inst.pci_devices[0]["vendor_id"], "v") self.assertEqual(self.inst.pci_devices[0]["status"], "allocated")
def test_free_allocated_device(self): device.claim(self.devobj, self.inst) device.allocate(self.devobj, self.inst) self.assertEqual(len(self.inst.pci_devices), 1) device.free(self.devobj, self.inst) self.assertEqual(len(self.inst.pci_devices), 0) self.assertEqual(self.devobj.status, fields.PciDeviceStatus.AVAILABLE) self.assertIsNone(self.devobj.instance_uuid)
def test_allocate_device(self): device.claim(self.devobj, self.inst) device.allocate(self.devobj, self.inst) self.assertEqual(self.devobj.status, fields.PciDeviceStatus.ALLOCATED) self.assertEqual(self.devobj.instance_uuid, 'fake-inst-uuid') self.assertEqual(len(self.inst.pci_devices), 1) self.assertEqual(self.inst.pci_devices[0].vendor_id, 'v') self.assertEqual(self.inst.pci_devices[0].status, fields.PciDeviceStatus.ALLOCATED)
def setUp(self): super(PciServerControllerTest, self).setUp() self.controller = pci.PciServerController() self.fake_obj = {'server': {'addresses': {}, 'id': 'fb08', 'name': 'a3', 'status': 'ACTIVE', 'tenant_id': '9a3af784c', 'user_id': 'e992080ac0', }} self.fake_list = {'servers': [{'addresses': {}, 'id': 'fb08', 'name': 'a3', 'status': 'ACTIVE', 'tenant_id': '9a3af784c', 'user_id': 'e992080ac', }]} self._create_fake_instance() self._create_fake_pci_device() device.claim(self.pci_device, self.inst) device.allocate(self.pci_device, self.inst)
def _allocate_instance(self, instance, devs): for dev in devs: device.allocate(dev, instance)