cinder.backup.chunkeddriver module

cinder.backup.chunkeddriver module

Generic base class to implement metadata, compression and chunked data operations

class ChunkedBackupDriver(context, chunk_size_bytes, sha_block_size_bytes, backup_default_container, enable_progress_timer)

Bases: BackupDriver

Abstract chunked backup driver.

Implements common functionality for backup drivers that store volume data in multiple “chunks” in a backup repository when the size of the backed up cinder volume exceeds the size of a backup repository “chunk.”

Provides abstract methods to be implemented in concrete chunking drivers.

DRIVER_VERSION = '1.0.0'
DRIVER_VERSION_MAPPING = {'1.0.0': '_restore_v1'}
backup(backup, volume_file, backup_metadata=True)

Backup the given volume.

If backup[‘parent_id’] is given, then an incremental backup is performed.

delete_backup(backup)

Delete the given backup.

abstract delete_object(container, object_name)

Delete object from container.

abstract get_container_entries(container, prefix)

Get container entry names.

abstract get_extra_metadata(backup, volume)

Return extra metadata to use in prepare_backup.

This method allows for collection of extra metadata in prepare_backup() which will be passed to get_object_reader() and get_object_writer(). Subclass extensions can use this extra information to optimize data transfers. Return a json serializable object.

abstract get_object_reader(container, object_name, extra_metadata=None)

Returns a reader object for the backed up chunk.

The object reader methods must not have any logging calls, as eventlet has a bug (https://github.com/eventlet/eventlet/issues/432) that would result in failures.

abstract get_object_writer(container, object_name, extra_metadata=None)

Returns a writer object which stores the chunk data.

The object returned should be a context handler that can be used in a “with” context.

The object writer methods must not have any logging calls, as eventlet has a bug (https://github.com/eventlet/eventlet/issues/432) that would result in failures.

abstract put_container(container)

Create the container if needed. No failure if it pre-exists.

restore(backup, volume_id, volume_file)

Restore the given volume backup from backup repository.

Raises BackupRestoreCancel on any backup status change.

abstract update_container_name(backup, container)

Allow sub-classes to override container name.

This method exists so that sub-classes can override the container name as it comes in to the driver in the backup object. Implementations should return None if no change to the container name is desired.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.