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, db=None)¶ Bases:
cinder.backup.driver.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.
-