btrsync.sync.root

Generic interface to a btrfs filesystem.

Classes

BtrfsRoot()

Abstract base class for implementing btrfs roots.

class btrsync.sync.root.BtrfsRoot[source]

Abstract base class for implementing btrfs roots.

abstract async classmethod get_root(path, **kwargs)[source]

Determine the subvolume root containing path and return a btrfs root instance anchored there.

Parameters
  • path – the path to examine

  • kwargs – keyword arguments passed on to the btrfs root constructor

Returns

a tuple (root, relpath) containing the requested btrfs root instance along with the component of path relative to the root path

Raises

BtrfsError – if the operation fails

abstract async classmethod is_root(path)[source]

Return whether path points to a btrfs subvolume root or not.

abstract async list()[source]

List available subvolumes within this root, as a sequence of COW hierarchy roots.

abstract property name

Human-readable name identifying this root and the location it refers to.

abstract async receive(flow, path='.', *, meta={})[source]

Perform a receive operation into path using the send stream provided by flow.

Parameters
  • flow – a btrsync.util.Flow containing the btrfs send stream

  • path – the relative path to receive into

  • meta – (optional) additional metadata about the send stream

Returns

a coroutine that finalizes the receive operation when run

abstract async send(*paths, parent=None, clones=[])[source]

Set up a send operation of paths with parent parent and clones clones.

Parameters
  • paths – the paths of the subvolumes to send

  • parent – if not None, the path of the parent subvolume to use for incremental send

  • clones – sequence of paths of clone subvolumes

Returns

a tuple (flow, send_coro) containing the send btrsync.util.Flow and a coroutine that finalizes the send operation when run

abstract async show(path='.')[source]

Return detailed information about the subvolume pointed to by path.

Exceptions

BtrfsError

Exception class encapsulating btrfs-specific errors.

exception btrsync.sync.root.BtrfsError[source]

Exception class encapsulating btrfs-specific errors.

Modules

btrsync.sync.root.file

Btrfs roots implemented using local file I/O.

btrsync.sync.root.local

Btrfs roots implemented using locally executed btrfs commands.

btrsync.sync.root.ssh

Btrfs roots for remote access via SSH.