The nova.virt.libvirt.imagebackend
Module¶
-
class
Backend
(use_cow)¶ Bases:
object
-
backend
(image_type=None)¶
-
image
(instance, disk_name, image_type=None)¶ Constructs image for selected backend
Instance: Instance name. Name: Image name. Image_type: Image type. Optional, is CONF.libvirt.images_type by default.
-
snapshot
(instance, disk_path, image_type=None)¶ Returns snapshot for given image
Path: path to image Image_type: type of image
-
-
class
Image
(source_type, driver_format, is_block_dev=False)¶ Bases:
object
-
SUPPORTS_CLONE
= False¶
-
cache
(fetch_func, filename, size=None, *args, **kwargs)¶ Creates image from template.
Ensures that template and image not already exists. Ensures that base directory exists. Synchronizes on template fetching.
Fetch_func: Function that creates the base image Should accept target argument. Filename: Name of the file in the image directory Size: Size of created image in bytes (optional)
-
check_image_exists
()¶
-
cleanup_direct_snapshot
(location, also_destroy_volume=False, ignore_errors=False)¶ Performs any cleanup actions required after calling direct_snapshot(), for graceful exception handling and the like.
This should be a no-op on any backend where it is not implemented.
-
clone
(context, image_id_or_uri)¶ Clone an image.
Note that clone operation is backend-dependent. The backend may ask the image API for a list of image “locations” and select one or more of those locations to clone an image from.
Parameters: image_id_or_uri – The ID or URI of an image to clone. Raises: exception.ImageUnacceptable if it cannot be cloned
-
create_image
(prepare_template, base, size, *args, **kwargs)¶ Create image from template.
Contains specific behavior for each image type.
Prepare_template: function, that creates template. Should accept target argument. Base: Template name Size: Size of created image in bytes
-
create_snap
(name)¶ Create a snapshot on the image. A noop on backends that don’t support snapshots.
Parameters: name – name of the snapshot
-
direct_snapshot
(context, snapshot_name, image_format, image_id, base_image_id)¶ Prepare a snapshot for direct reference from glance
Raises: exception.ImageUnacceptable if it cannot be referenced directly in the specified image format Returns: URL to be given to glance
-
disk_qos
(info, extra_specs)¶
-
get_disk_size
(name)¶
-
get_model
(connection)¶ Get the image information model
Returns: an instance of nova.virt.image.model.Image
-
import_file
(instance, local_file, remote_name)¶ Import an image from local storage into this backend.
Import a local file into the store used by this image type. Note that this is a noop for stores using local disk (the local file is considered “in the store”).
If the image already exists it will be overridden by the new file
Parameters: - local_file – path to the file to import
- remote_name – the name for the file in the store
-
static
is_file_in_instance_path
()¶ True if the backend stores images in files under instance path.
True if the backend puts images on a shared block storage.
-
libvirt_fs_info
(target, driver_type=None)¶ Get LibvirtConfigGuestFilesys filled for this image.
Target: target directory inside a container. Driver_type: filesystem driver type, can be loop nbd or ploop.
-
libvirt_info
(disk_bus, disk_dev, device_type, cache_mode, extra_specs, hypervisor_version)¶ Get LibvirtConfigGuestDisk filled for this image.
Disk_dev: Disk bus device name Disk_bus: Disk bus type Device_type: Device type for this image. Cache_mode: Caching mode for this image Extra_specs: Instance type extra specs dict. Hypervisor_version: the hypervisor version
-
remove_snap
(name, ignore_errors=False)¶ Remove a snapshot on the image. A noop on backends that don’t support snapshots.
Parameters: - name – name of the snapshot
- ignore_errors – don’t log errors if the snapshot does not exist
-
resize_image
(size)¶ Resize image to size (in bytes).
Size: Desired size of image in bytes
-
resolve_driver_format
()¶ Return the driver format for self.path.
First checks self.disk_info_path for an entry. If it’s not there, calls self._get_driver_format(), and then stores the result in self.disk_info_path
-
rollback_to_snap
(name)¶ Rollback the image to the named snapshot. A noop on backends that don’t support snapshots.
Parameters: name – name of the snapshot
-
snapshot_extract
(target, out_format)¶
-
verify_base_size
(base, size, base_size=0)¶ Check that the base image is not larger than size. Since images can’t be generally shrunk, enforce this constraint taking account of virtual image size.
-
-
class
Lvm
(instance=None, disk_name=None, path=None)¶ Bases:
nova.virt.libvirt.imagebackend.Image
-
create_image
(prepare_template, base, size, *args, **kwargs)¶
-
static
escape
(filename)¶
-
get_model
(connection)¶
-
remove_volume_on_error
(*args, **kwds)¶
-
resize_image
(size)¶
-
snapshot_extract
(target, out_format)¶
-
-
class
Ploop
(instance=None, disk_name=None, path=None)¶ Bases:
nova.virt.libvirt.imagebackend.Image
-
create_image
(prepare_template, base, size, *args, **kwargs)¶
-
resize_image
(size)¶
-
snapshot_extract
(target, out_format)¶
-
-
class
Qcow2
(instance=None, disk_name=None, path=None)¶ Bases:
nova.virt.libvirt.imagebackend.Image
-
create_image
(prepare_template, base, size, *args, **kwargs)¶
-
get_model
(connection)¶
-
static
is_file_in_instance_path
()¶
-
resize_image
(size)¶
-
snapshot_extract
(target, out_format)¶
-
-
class
Raw
(instance=None, disk_name=None, path=None)¶ Bases:
nova.virt.libvirt.imagebackend.Image
-
correct_format
()¶
-
create_image
(prepare_template, base, size, *args, **kwargs)¶
-
get_model
(connection)¶
-
static
is_file_in_instance_path
()¶
-
resize_image
(size)¶
-
snapshot_extract
(target, out_format)¶
-
-
class
Rbd
(instance=None, disk_name=None, path=None, **kwargs)¶ Bases:
nova.virt.libvirt.imagebackend.Image
-
SUPPORTS_CLONE
= True¶
-
check_image_exists
()¶
-
cleanup_direct_snapshot
(location, also_destroy_volume=False, ignore_errors=False)¶ Unprotects and destroys the name snapshot.
With also_destroy_volume=True, it will also cleanup/destroy the parent volume. This is useful for cleaning up when the target volume fails to snapshot properly.
-
clone
(context, image_id_or_uri)¶
-
create_image
(prepare_template, base, size, *args, **kwargs)¶
-
create_snap
(name)¶
-
direct_snapshot
(context, snapshot_name, image_format, image_id, base_image_id)¶ Creates an RBD snapshot directly.
-
get_disk_size
(name)¶ Returns the size of the virtual disk in bytes.
The name argument is ignored since this backend already knows its name, and callers may pass a non-existent local file path.
-
get_model
(connection)¶
-
import_file
(instance, local_file, remote_name)¶
-
libvirt_info
(disk_bus, disk_dev, device_type, cache_mode, extra_specs, hypervisor_version)¶ Get LibvirtConfigGuestDisk filled for this image.
Disk_dev: Disk bus device name Disk_bus: Disk bus type Device_type: Device type for this image. Cache_mode: Caching mode for this image Extra_specs: Instance type extra specs dict.
-
remove_snap
(name, ignore_errors=False)¶
-
resize_image
(size)¶
-
rollback_to_snap
(name)¶
-
snapshot_extract
(target, out_format)¶
-