The 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_driver=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)¶ Delete the given backup.
-
delete_object
(container, object_name)¶ Delete object from container.
-
get_container_entries
(container, prefix)¶ Get container entry names.
-
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.
-
get_object_reader
(container, object_name, extra_metadata=None)¶ Returns a reader object for the backed up chunk.
-
get_object_writer
(container, object_name, extra_metadata=None)¶ Returns a writer object which stores the chunk data in backup repository.
The object returned should be a context handler that can be used in a “with” context.
-
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.
-
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.
-