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.

Previous topic

The cinder.backup.api Module

Next topic

The cinder.backup.driver Module

Project Source

This Page