def default_device_names(virt_type, context, instance, root_device_name, ephemerals, swap, block_device_mapping, image_meta): block_device_info = { 'root_device_name': root_device_name, 'swap': driver_block_device.get_swap( driver_block_device.convert_swap(swap)), 'ephemerals': driver_block_device.convert_ephemerals(ephemerals), 'block_device_mapping': ( driver_block_device.convert_volumes( block_device_mapping) + driver_block_device.convert_snapshots( block_device_mapping) + driver_block_device.convert_blanks( block_device_mapping)) } get_disk_info(virt_type, instance, image_meta, block_device_info) for driver_bdm in itertools.chain(block_device_info['ephemerals'], [block_device_info['swap']] if block_device_info['swap'] else [], block_device_info['block_device_mapping']): driver_bdm.save()
def _list_running_instances(self, context, all_instances): """List running instances (on all compute nodes). This method returns a dictionary with the following keys: - used_images - image_popularity - instance_names """ used_images = {} image_popularity = {} instance_names = set() used_swap_images = set() for instance in all_instances: # NOTE(mikal): "instance name" here means "the name of a directory # which might contain an instance" and therefore needs to include # historical permutations as well as the current one. instance_names.add(instance.name) instance_names.add(instance.uuid) if instance.task_state in self.resize_states or instance.vm_state == vm_states.RESIZED: instance_names.add(instance.name + "_resize") instance_names.add(instance.uuid + "_resize") for image_key in ["image_ref", "kernel_id", "ramdisk_id"]: image_ref_str = getattr(instance, image_key) if image_ref_str is None: continue local, remote, insts = used_images.get(image_ref_str, (0, 0, [])) if instance.host == CONF.host: local += 1 else: remote += 1 insts.append(instance.name) used_images[image_ref_str] = (local, remote, insts) image_popularity.setdefault(image_ref_str, 0) image_popularity[image_ref_str] += 1 gb = objects.BlockDeviceMappingList.get_by_instance_uuid bdms = gb(context, instance.uuid) if bdms: swap = driver_block_device.convert_swap(bdms) if swap: swap_image = "swap_" + str(swap[0]["swap_size"]) used_swap_images.add(swap_image) return { "used_images": used_images, "image_popularity": image_popularity, "instance_names": instance_names, "used_swap_images": used_swap_images, }
def _list_running_instances(self, context, all_instances): """List running instances (on all compute nodes). This method returns a dictionary with the following keys: - used_images - image_popularity - instance_names """ used_images = {} image_popularity = {} instance_names = set() used_swap_images = set() for instance in all_instances: # NOTE(mikal): "instance name" here means "the name of a directory # which might contain an instance" and therefore needs to include # historical permutations as well as the current one. instance_names.add(instance.name) instance_names.add(instance.uuid) if (instance.task_state in self.resize_states or instance.vm_state == vm_states.RESIZED): instance_names.add(instance.name + '_resize') instance_names.add(instance.uuid + '_resize') for image_key in ['image_ref', 'kernel_id', 'ramdisk_id']: image_ref_str = getattr(instance, image_key) if image_ref_str is None: continue local, remote, insts = used_images.get(image_ref_str, (0, 0, [])) if instance.host == CONF.host: local += 1 else: remote += 1 insts.append(instance.name) used_images[image_ref_str] = (local, remote, insts) image_popularity.setdefault(image_ref_str, 0) image_popularity[image_ref_str] += 1 gb = objects.BlockDeviceMappingList.get_by_instance_uuid bdms = gb(context, instance.uuid) if bdms: swap = driver_block_device.convert_swap(bdms) if swap: swap_image = 'swap_' + str(swap[0]['swap_size']) used_swap_images.add(swap_image) return {'used_images': used_images, 'image_popularity': image_popularity, 'instance_names': instance_names, 'used_swap_images': used_swap_images}
def default_device_names(virt_type, context, instance, root_device_name, ephemerals, swap, block_device_mapping, image_meta): block_device_info = { 'root_device_name': root_device_name, 'swap': driver_block_device.get_swap(driver_block_device.convert_swap(swap)), 'ephemerals': driver_block_device.convert_ephemerals(ephemerals), 'block_device_mapping': (driver_block_device.convert_volumes(block_device_mapping) + driver_block_device.convert_snapshots(block_device_mapping) + driver_block_device.convert_blanks(block_device_mapping)) } get_disk_info(virt_type, instance, image_meta, block_device_info) for driver_bdm in itertools.chain( block_device_info['ephemerals'], [block_device_info['swap']] if block_device_info['swap'] else [], block_device_info['block_device_mapping']): driver_bdm.save()