Example #1
0
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
Example #2
0
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
Example #3
0
 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)
Example #4
0
 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)
Example #5
0
 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 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
Example #9
0
 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)
Example #10
0
 def _allocate_instance(self, instance, devs):
     for dev in devs:
         pci_device.allocate(dev, instance)
Example #11
0
 def _allocate_instance(self, instance, devs):
     for dev in devs:
         pci_device.allocate(dev, instance)