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)
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 = [ 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"])
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
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)
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))
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))
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)