Ejemplo n.º 1
0
    def _setUpBlockDeviceMapping(self):
        image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
        sys_meta = flavors.save_flavor_info(
            {}, flavors.get_flavor(1))
        inst1 = db.instance_create(self.context,
                                  {'image_ref': image_uuid,
                                   'instance_type_id': 1,
                                   'root_device_name': '/dev/sdb1',
                                   'system_metadata': sys_meta})
        inst2 = db.instance_create(self.context,
                                  {'image_ref': image_uuid,
                                   'instance_type_id': 1,
                                   'root_device_name': '/dev/sdc1',
                                   'system_metadata': sys_meta})

        instance_uuid = inst1['uuid']
        mappings0 = [
            {'instance_uuid': instance_uuid,
             'device_name': '/dev/sdb1',
             'snapshot_id': '1',
             'volume_id': '2'},
            {'instance_uuid': instance_uuid,
             'device_name': '/dev/sdb2',
             'volume_id': '3',
             'volume_size': 1},
            {'instance_uuid': instance_uuid,
             'device_name': '/dev/sdb3',
             'delete_on_termination': True,
             'snapshot_id': '4',
             'volume_id': '5'},
            {'instance_uuid': instance_uuid,
             'device_name': '/dev/sdb4',
             'delete_on_termination': False,
             'snapshot_id': '6',
             'volume_id': '7'},
            {'instance_uuid': instance_uuid,
             'device_name': '/dev/sdb5',
             'snapshot_id': '8',
             'volume_id': '9',
             'volume_size': 0},
            {'instance_uuid': instance_uuid,
             'device_name': '/dev/sdb6',
             'snapshot_id': '10',
             'volume_id': '11',
             'volume_size': 1},
            {'instance_uuid': instance_uuid,
             'device_name': '/dev/sdb7',
             'no_device': True},
            {'instance_uuid': instance_uuid,
             'device_name': '/dev/sdb8',
             'virtual_name': 'swap'},
            {'instance_uuid': instance_uuid,
             'device_name': '/dev/sdb9',
             'virtual_name': 'ephemeral3'}]

        volumes = self._block_device_mapping_create(instance_uuid, mappings0)
        return (inst1, inst2, volumes)
Ejemplo n.º 2
0
    def test_create_instances_here(self):
        # Just grab the first instance type
        inst_type = flavors.get_flavor(1)
        image = {'properties': {}}
        instance_uuids = self.instance_uuids
        instance_props = {
            'id': 'removed',
            'security_groups': 'removed',
            'info_cache': 'removed',
            'name': 'instance-00000001',
            'hostname': 'meow',
            'display_name': 'moo',
            'image_ref': 'fake_image_ref',
            'user_id': self.ctxt.user_id,
            # Test these as lists
            'metadata': {
                'moo': 'cow'
            },
            'system_metadata': {
                'meow': 'cat'
            },
            'flavor': inst_type,
            'project_id': self.ctxt.project_id
        }

        call_info = {'uuids': []}
        block_device_mapping = [
            objects.BlockDeviceMapping(
                context=self.ctxt,
                **fake_block_device.FakeDbBlockDeviceDict(
                    block_device.create_image_bdm('fake_image_ref'),
                    anon=True))
        ]

        def _fake_instance_update_at_top(_ctxt, instance):
            call_info['uuids'].append(instance['uuid'])

        self.stubs.Set(self.msg_runner, 'instance_update_at_top',
                       _fake_instance_update_at_top)

        self.scheduler._create_instances_here(self.ctxt, instance_uuids,
                                              instance_props, inst_type, image,
                                              ['default'],
                                              block_device_mapping)
        self.assertEqual(instance_uuids, call_info['uuids'])

        for count, instance_uuid in enumerate(instance_uuids):
            instance = db.instance_get_by_uuid(self.ctxt, instance_uuid)
            meta = utils.instance_meta(instance)
            self.assertEqual('cow', meta['moo'])
            sys_meta = utils.instance_sys_meta(instance)
            self.assertEqual('cat', sys_meta['meow'])
            self.assertEqual('meow', instance['hostname'])
            self.assertEqual('moo-%d' % (count + 1), instance['display_name'])
            self.assertEqual('fake_image_ref', instance['image_ref'])
Ejemplo n.º 3
0
    def test_create_instances_here(self):
        # Just grab the first instance type
        inst_type = flavors.get_flavor(1)
        image = {'properties': {}}
        instance_uuids = self.instance_uuids
        instance_props = {'id': 'removed',
                          'security_groups': 'removed',
                          'info_cache': 'removed',
                          'name': 'instance-00000001',
                          'hostname': 'meow',
                          'display_name': 'moo',
                          'image_ref': 'fake_image_ref',
                          'user_id': self.ctxt.user_id,
                          # Test these as lists
                          'metadata': {'moo': 'cow'},
                          'system_metadata': {'meow': 'cat'},
                          'flavor': inst_type,
                          'project_id': self.ctxt.project_id}

        call_info = {'uuids': []}
        block_device_mapping = [
                objects.BlockDeviceMapping(context=self.ctxt,
                    **fake_block_device.FakeDbBlockDeviceDict(
                            block_device.create_image_bdm('fake_image_ref'),
                            anon=True))
               ]

        def _fake_instance_update_at_top(_ctxt, instance):
            call_info['uuids'].append(instance['uuid'])

        self.stubs.Set(self.msg_runner, 'instance_update_at_top',
                       _fake_instance_update_at_top)

        self.scheduler._create_instances_here(self.ctxt, instance_uuids,
                instance_props, inst_type, image,
                ['default'], block_device_mapping)
        self.assertEqual(instance_uuids, call_info['uuids'])

        for count, instance_uuid in enumerate(instance_uuids):
            instance = db.instance_get_by_uuid(self.ctxt, instance_uuid)
            meta = utils.instance_meta(instance)
            self.assertEqual('cow', meta['moo'])
            sys_meta = utils.instance_sys_meta(instance)
            self.assertEqual('cat', sys_meta['meow'])
            self.assertEqual('meow', instance['hostname'])
            self.assertEqual('moo-%d' % (count + 1),
                             instance['display_name'])
            self.assertEqual('fake_image_ref', instance['image_ref'])
    def test_create_instances_here(self):
        # Just grab the first instance type
        inst_type = flavors.get_flavor(1)
        image = {"properties": {}}
        instance_uuids = self.instance_uuids
        instance_props = {
            "id": "removed",
            "security_groups": "removed",
            "info_cache": "removed",
            "name": "instance-00000001",
            "hostname": "meow",
            "display_name": "moo",
            "image_ref": "fake_image_ref",
            "user_id": self.ctxt.user_id,
            # Test these as lists
            "metadata": {"moo": "cow"},
            "system_metadata": {"meow": "cat"},
            "flavor": inst_type,
            "project_id": self.ctxt.project_id,
        }

        call_info = {"uuids": []}
        block_device_mapping = [block_device.create_image_bdm("fake_image_ref")]

        def _fake_instance_update_at_top(_ctxt, instance):
            call_info["uuids"].append(instance["uuid"])

        self.stubs.Set(self.msg_runner, "instance_update_at_top", _fake_instance_update_at_top)

        self.scheduler._create_instances_here(
            self.ctxt, instance_uuids, instance_props, inst_type, image, ["default"], block_device_mapping
        )
        self.assertEqual(instance_uuids, call_info["uuids"])

        for count, instance_uuid in enumerate(instance_uuids):
            instance = db.instance_get_by_uuid(self.ctxt, instance_uuid)
            meta = utils.instance_meta(instance)
            self.assertEqual("cow", meta["moo"])
            sys_meta = utils.instance_sys_meta(instance)
            self.assertEqual("cat", sys_meta["meow"])
            self.assertEqual("meow", instance["hostname"])
            self.assertEqual("moo-%d" % (count + 1), instance["display_name"])
            self.assertEqual("fake_image_ref", instance["image_ref"])
Ejemplo n.º 5
0
def get_inst_attrs_from_migration(migration, instance):
    """Get the instance vcpus and memory_mb attributes.

    Provides instance vcpus and memory_mb attributes according to
    old flavor type using migration object if old flavor exists.
    """
    instance_vcpus = instance.vcpus
    instance_memory_mb = instance.memory_mb

    old_inst_type_id = migration.old_instance_type_id
    try:
        old_inst_type = flavors.get_flavor(old_inst_type_id)
    except exception.FlavorNotFound:
        LOG.warning(_LW("Flavor %d not found"), old_inst_type_id)
    else:
        instance_vcpus = old_inst_type.vcpus
        vram_mb = old_inst_type.extra_specs.get('hw_video:ram_max_mb', 0)
        instance_memory_mb = old_inst_type.memory_mb + vram_mb

    return instance_vcpus, instance_memory_mb
Ejemplo n.º 6
0
 def test_will_get_flavor_by_id(self):
     default_instance_type = flavors.get_default_flavor()
     instance_type_id = default_instance_type['id']
     fetched = flavors.get_flavor(instance_type_id)
     self.assertEqual(default_instance_type, fetched)
Ejemplo n.º 7
0
 def test_will_get_flavor_by_id(self):
     default_instance_type = flavors.get_default_flavor()
     instance_type_id = default_instance_type.id
     fetched = flavors.get_flavor(instance_type_id)
     self.assertIsInstance(fetched, objects.Flavor)
     self.assertEqual(default_instance_type.flavorid, fetched.flavorid)
Ejemplo n.º 8
0
 def test_will_get_flavor_by_id(self):
     default_instance_type = flavors.get_default_flavor()
     instance_type_id = default_instance_type['id']
     fetched = flavors.get_flavor(instance_type_id)
     self.assertEqual(default_instance_type, fetched)
Ejemplo n.º 9
0
    def _setUpBlockDeviceMapping(self):
        image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
        flavorinfo = jsonutils.dumps({
            'cur': flavors.get_flavor(1).obj_to_primitive(),
            'old': None,
            'new': None,
        })
        inst0 = db.instance_create(self.context,
                                  {'image_ref': image_uuid,
                                   'instance_type_id': 1,
                                   'root_device_name': '/dev/sdb1',
                                   'extra': {'flavor': flavorinfo},
                                   'system_metadata': {}})
        inst1 = db.instance_create(self.context,
                                  {'image_ref': image_uuid,
                                   'instance_type_id': 1,
                                   'root_device_name': '/dev/sdc1',
                                   'extra': {'flavor': flavorinfo},
                                   'system_metadata': {}})
        inst2 = db.instance_create(self.context,
                                  {'image_ref': '',
                                   'instance_type_id': 1,
                                   'root_device_name': '/dev/vda',
                                   'extra': {'flavor': flavorinfo},
                                   'system_metadata': {}})

        instance0_uuid = inst0['uuid']
        mappings0 = [
            {'instance_uuid': instance0_uuid,
             'device_name': '/dev/sdb1',
             'snapshot_id': '1',
             'volume_id': '2'},
            {'instance_uuid': instance0_uuid,
             'device_name': '/dev/sdb2',
             'volume_id': '3',
             'volume_size': 1},
            {'instance_uuid': instance0_uuid,
             'device_name': '/dev/sdb3',
             'delete_on_termination': True,
             'snapshot_id': '4',
             'volume_id': '5'},
            {'instance_uuid': instance0_uuid,
             'device_name': '/dev/sdb4',
             'delete_on_termination': False,
             'snapshot_id': '6',
             'volume_id': '7'},
            {'instance_uuid': instance0_uuid,
             'device_name': '/dev/sdb5',
             'snapshot_id': '8',
             'volume_id': '9',
             'volume_size': 0},
            {'instance_uuid': instance0_uuid,
             'device_name': '/dev/sdb6',
             'snapshot_id': '10',
             'volume_id': '11',
             'volume_size': 1},
            {'instance_uuid': instance0_uuid,
             'device_name': '/dev/sdb7',
             'no_device': True},
            {'instance_uuid': instance0_uuid,
             'device_name': '/dev/sdb8',
             'virtual_name': 'swap'},
            {'instance_uuid': instance0_uuid,
             'device_name': '/dev/sdb9',
             'virtual_name': 'ephemeral3'}]
        instance2_uuid = inst2['uuid']
        mappings2 = [
            {'instance_uuid': instance2_uuid,
             'device_name': 'vda',
             'snapshot_id': '1',
             'volume_id': '21'}]

        volumes0 = self._block_device_mapping_create(instance0_uuid, mappings0)
        volumes2 = self._block_device_mapping_create(instance2_uuid, mappings2)
        return ((inst0, inst1, inst2), (volumes0, [], volumes2))
Ejemplo n.º 10
0
 def test_will_get_flavor_by_id(self):
     default_instance_type = flavors.get_default_flavor()
     instance_type_id = default_instance_type.id
     fetched = flavors.get_flavor(instance_type_id)
     self.assertIsInstance(fetched, objects.Flavor)
     self.assertEqual(default_instance_type.flavorid, fetched.flavorid)
    def _setUpBlockDeviceMapping(self):
        image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
        flavorinfo = jsonutils.dumps({
            'cur':
            flavors.get_flavor(1).obj_to_primitive(),
            'old':
            None,
            'new':
            None,
        })
        inst0 = db.instance_create(
            self.context, {
                'image_ref': image_uuid,
                'instance_type_id': 1,
                'root_device_name': '/dev/sdb1',
                'extra': {
                    'flavor': flavorinfo
                },
                'system_metadata': {}
            })
        inst1 = db.instance_create(
            self.context, {
                'image_ref': image_uuid,
                'instance_type_id': 1,
                'root_device_name': '/dev/sdc1',
                'extra': {
                    'flavor': flavorinfo
                },
                'system_metadata': {}
            })
        inst2 = db.instance_create(
            self.context, {
                'image_ref': '',
                'instance_type_id': 1,
                'root_device_name': '/dev/vda',
                'extra': {
                    'flavor': flavorinfo
                },
                'system_metadata': {}
            })

        instance0_uuid = inst0['uuid']
        mappings0 = [{
            'instance_uuid': instance0_uuid,
            'device_name': '/dev/sdb1',
            'snapshot_id': '1',
            'volume_id': '2'
        }, {
            'instance_uuid': instance0_uuid,
            'device_name': '/dev/sdb2',
            'volume_id': '3',
            'volume_size': 1
        }, {
            'instance_uuid': instance0_uuid,
            'device_name': '/dev/sdb3',
            'delete_on_termination': True,
            'snapshot_id': '4',
            'volume_id': '5'
        }, {
            'instance_uuid': instance0_uuid,
            'device_name': '/dev/sdb4',
            'delete_on_termination': False,
            'snapshot_id': '6',
            'volume_id': '7'
        }, {
            'instance_uuid': instance0_uuid,
            'device_name': '/dev/sdb5',
            'snapshot_id': '8',
            'volume_id': '9',
            'volume_size': 0
        }, {
            'instance_uuid': instance0_uuid,
            'device_name': '/dev/sdb6',
            'snapshot_id': '10',
            'volume_id': '11',
            'volume_size': 1
        }, {
            'instance_uuid': instance0_uuid,
            'device_name': '/dev/sdb7',
            'no_device': True
        }, {
            'instance_uuid': instance0_uuid,
            'device_name': '/dev/sdb8',
            'virtual_name': 'swap'
        }, {
            'instance_uuid': instance0_uuid,
            'device_name': '/dev/sdb9',
            'virtual_name': 'ephemeral3'
        }]
        instance2_uuid = inst2['uuid']
        mappings2 = [{
            'instance_uuid': instance2_uuid,
            'device_name': 'vda',
            'snapshot_id': '1',
            'volume_id': '21'
        }]

        volumes0 = self._block_device_mapping_create(instance0_uuid, mappings0)
        volumes2 = self._block_device_mapping_create(instance2_uuid, mappings2)
        return ((inst0, inst1, inst2), (volumes0, [], volumes2))
Ejemplo n.º 12
0
    def _setUpBlockDeviceMapping(self):
        image_uuid = "cedef40a-ed67-4d10-800e-17455edce175"
        sys_meta = flavors.save_flavor_info({}, flavors.get_flavor(1))
        inst1 = db.instance_create(
            self.context,
            {
                "image_ref": image_uuid,
                "instance_type_id": 1,
                "root_device_name": "/dev/sdb1",
                "system_metadata": sys_meta,
            },
        )
        inst2 = db.instance_create(
            self.context,
            {
                "image_ref": image_uuid,
                "instance_type_id": 1,
                "root_device_name": "/dev/sdc1",
                "system_metadata": sys_meta,
            },
        )

        instance_uuid = inst1["uuid"]
        mappings0 = [
            {"instance_uuid": instance_uuid, "device_name": "/dev/sdb1", "snapshot_id": "1", "volume_id": "2"},
            {"instance_uuid": instance_uuid, "device_name": "/dev/sdb2", "volume_id": "3", "volume_size": 1},
            {
                "instance_uuid": instance_uuid,
                "device_name": "/dev/sdb3",
                "delete_on_termination": True,
                "snapshot_id": "4",
                "volume_id": "5",
            },
            {
                "instance_uuid": instance_uuid,
                "device_name": "/dev/sdb4",
                "delete_on_termination": False,
                "snapshot_id": "6",
                "volume_id": "7",
            },
            {
                "instance_uuid": instance_uuid,
                "device_name": "/dev/sdb5",
                "snapshot_id": "8",
                "volume_id": "9",
                "volume_size": 0,
            },
            {
                "instance_uuid": instance_uuid,
                "device_name": "/dev/sdb6",
                "snapshot_id": "10",
                "volume_id": "11",
                "volume_size": 1,
            },
            {"instance_uuid": instance_uuid, "device_name": "/dev/sdb7", "no_device": True},
            {"instance_uuid": instance_uuid, "device_name": "/dev/sdb8", "virtual_name": "swap"},
            {"instance_uuid": instance_uuid, "device_name": "/dev/sdb9", "virtual_name": "ephemeral3"},
        ]

        volumes = self._block_device_mapping_create(instance_uuid, mappings0)
        return (inst1, inst2, volumes)