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 = pci_device_obj.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 = instance_info_cache.InstanceInfoCache() instance_info_cache.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 _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(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() pci_device.claim(self.pci_device, self.inst) pci_device.allocate(self.pci_device, self.inst)
def test_free_allocated_device(self): pci_device.claim(self.devobj, self.inst) pci_device.allocate(self.devobj, self.inst) self.assertEqual(len(self.inst.pci_devices), 1) pci_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): pci_device.claim(self.devobj, self.inst) pci_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 _allocate_from_request(self, context, instance, pci_requests): # will not through any exception here # avoid to change something if not pci_requests.requests: return None devs = self.stats.consume_requests(pci_requests.requests) for dev in devs: pci_device.allocate(dev, instance) return devs
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() pci_device.claim(self.pci_device, self.inst) pci_device.allocate(self.pci_device, self.inst)
def _allocate_instance(self, instance, devs): for dev in devs: pci_device.allocate(dev, instance)