Beispiel #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 = 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
Beispiel #2
0
 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)
Beispiel #3
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
Beispiel #4
0
 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)
Beispiel #5
0
 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')
Beispiel #6
0
 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")
Beispiel #7
0
 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)
Beispiel #8
0
 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)
Beispiel #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()
     device.claim(self.pci_device, self.inst)
     device.allocate(self.pci_device, self.inst)
Beispiel #10
0
 def _allocate_instance(self, instance, devs):
     for dev in devs:
         device.allocate(dev, instance)
Beispiel #11
0
 def _allocate_instance(self, instance, devs):
     for dev in devs:
         device.allocate(dev, instance)