Logo Search packages:      
Sourcecode: obnam version File versions  Download package

Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions

obnamlib::repo::Repository Class Reference

List of all members.

Public Member Functions

def __init__
def acceptable_version
def add_client
def append_file_chunks
def check_format_version
def checksum
def chunk_exists
def client_dir
def commit_client
def commit_root
def create
def find_chunks
def genspec
def get_chunk
def get_file_chunks
def get_format_version
def get_generation_times
def get_is_checkpoint
def get_metadata
def list_chunks
def list_clients
def list_generations
def listdir
def lock_client
def lock_root
def new_checksummer
def open_client
def put_chunk
def remove
def remove_chunk
def remove_client
def remove_generation
def require_client_lock
def require_open_client
def require_root_lock
def require_started_generation
def set_file_chunks
def setup_hooks
def start_generation
def unlock_client
def unlock_root

Public Attributes

 added_clients
 added_generations
 chunk_idpath
 chunklist
 chunksums
 client
 client_lockfile
 clientlist
 current_client
 current_client_id
 format_version
 fs
 got_client_lock
 got_root_lock
 hooks
 lru_size
 new_generation
 node_size
 prev_chunkid
 removed_clients
 removed_generations
 upload_queue_size

Static Public Attributes

int format_version = 4

Private Member Functions

def _chunk_filename
def _really_remove_generation
def _write_format_version

Detailed Description

Repository for backup data.

Backup data is put on a virtual file system
(obnamlib.VirtualFileSystem instance), in some form that
the API of this class does not care about.

The repository may contain data for several clients that share 
encryption keys. Each client is identified by a name.

The repository has a "root" object, which is conceptually a list of
client names.

Each client in turn is conceptually a list of generations,
which correspond to snapshots of the user data that existed
when the generation was created.

Read-only access to the repository does not require locking.
Write access may affect only the root object, or only a client's
own data, and thus locking may affect only the root, or only
the client.

When a new generation is started, it is a copy-on-write clone
of the previous generation, and the caller needs to modify
the new generation to match the current state of user data.

The file 'metadata/format' at the root of the repository contains the
version of the repository format it uses. The version is
specified using a single integer.

Definition at line 86 of file repo.py.


The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index