Helper methods to deal with images.
This is essentially a copy from nova.virt.images.py Some slight modifications, but at some point we should look at maybe pushing this up to Oslo
TemporaryImages
(image_service: cinder.image.glance.GlanceImageService)¶Bases: object
Manage temporarily downloaded images to avoid downloading it twice.
In the ‘with TemporaryImages.fetch(image_service, ctx, image_id) as tmp’ clause, ‘tmp’ can be used as the downloaded image path. In addition, image_utils.fetch() will use the pre-fetched image by the TemporaryImages. This is useful to inspect image contents before conversion.
fetch
(image_service: cinder.image.glance.GlanceImageService, context: cinder.context.RequestContext, image_id: str, suffix: Optional[str] = '') → Generator[str, None, None]¶for_image_service
(image_service: cinder.image.glance.GlanceImageService) → cinder.image.image_utils.TemporaryImages¶get
(context: cinder.context.RequestContext, image_id: str)¶check_available_space
(dest: str, image_size: int, image_id: str) → None¶check_qemu_img_version
(minimum_version: str) → None¶check_virtual_size
(virtual_size: float, volume_size: int, image_id: str) → int¶cleanup_temporary_file
(backend_name: str) → None¶coalesce_chain
(vhd_chain: List[str]) → str¶coalesce_vhd
(vhd_path: str) → None¶convert_image
(source: str, dest: str, out_format: str, out_subformat: Optional[str] = None, src_format: Optional[str] = None, run_as_root: bool = True, throttle=None, cipher_spec: Optional[dict] = None, passphrase_file: Optional[str] = None, compress: bool = False, src_passphrase_file: Optional[str] = None) → None¶create_temporary_file
(*args: str, **kwargs: str) → str¶decode_cipher
(cipher_spec: str, key_size: int) → Dict[str, str]¶Decode a dm-crypt style cipher specification string
The assumed format being cipher-chainmode-ivmode, similar to that documented under linux/Documentation/admin-guide/device-mapper/dm-crypt.txt in the kernel source tree. Cinder does not support the [:keycount] or [:ivopts] options.
discover_vhd_chain
(directory: str) → List[str]¶extract_targz
(archive_name: str, target: str) → None¶fetch
(context: cinder.context.RequestContext, image_service: cinder.image.glance.GlanceImageService, image_id: str, path: str, _user_id, _project_id) → None¶fetch_to_raw
(context: cinder.context.RequestContext, image_service: cinder.image.glance.GlanceImageService, image_id: str, dest: str, blocksize: int, user_id: Optional[str] = None, project_id: Optional[str] = None, size: Optional[int] = None, run_as_root: bool = True) → None¶fetch_to_vhd
(context: cinder.context.RequestContext, image_service: cinder.image.glance.GlanceImageService, image_id: str, dest: str, blocksize: int, volume_subformat: Optional[str] = None, user_id: Optional[str] = None, project_id: Optional[str] = None, run_as_root: bool = True) → None¶fetch_to_volume_format
(context: cinder.context.RequestContext, image_service: cinder.image.glance.GlanceImageService, image_id: str, dest: str, volume_format: str, blocksize: int, volume_subformat: Optional[str] = None, user_id: Optional[str] = None, project_id: Optional[str] = None, size: Optional[int] = None, run_as_root: bool = True) → None¶fetch_verify_image
(context: cinder.context.RequestContext, image_service: cinder.image.glance.GlanceImageService, image_id: str, dest: str) → None¶fix_vhd_chain
(vhd_chain: List[str]) → None¶fixup_disk_format
(disk_format: str) → str¶Return the format to be provided to qemu-img convert.
from_qemu_img_disk_format
(disk_format: str) → str¶Return the conventional format derived from qemu-img format.
get_qemu_data
(image_id: str, has_meta: bool, disk_format_raw: bool, dest: str, run_as_root: bool, force_share: bool = False) → oslo_utils.imageutils.QemuImgInfo¶get_qemu_img_version
() → Optional[List[int]]¶The qemu-img version will be cached until the process is restarted.
get_vhd_size
(vhd_path: str) → int¶is_xenserver_format
(image_meta: dict) → bool¶qemu_img_info
(path: str, run_as_root: bool = True, force_share: bool = False) → oslo_utils.imageutils.QemuImgInfo¶Return an object containing the parsed output from qemu-img info.
replace_xenserver_image_with_coalesced_vhd
(image_file: str) → None¶resize_image
(source: str, size: int, run_as_root: bool = False, file_format: Optional[str] = None) → None¶Changes the virtual size of the image.
resize_vhd
(vhd_path: str, size: int, journal: str) → None¶set_vhd_parent
(vhd_path: str, parentpath: str) → None¶temporary_dir
() → ContextManager[str]¶temporary_file
(*args: str, **kwargs) → Generator[str, None, None]¶upload_volume
(context: cinder.context.RequestContext, image_service: cinder.image.glance.GlanceImageService, image_meta: dict, volume_path: str, volume_format: str = 'raw', run_as_root: bool = True, compress: bool = True, store_id: Optional[str] = None, base_image_ref: Optional[str] = None) → None¶validate_stores_id
(context: cinder.context.RequestContext, image_service_store_id: str) → None¶verify_glance_image_signature
(context: cinder.context.RequestContext, image_service: cinder.image.glance.GlanceImageService, image_id: str, path: str) → bool¶Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.