patroni.scripts.wale_restore module

class patroni.scripts.wale_restore.ExitCode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)View on GitHub

Bases: IntEnum

FAIL = 2

Don’t try again unless configuration changes

RETRY_LATER = 1

External issue, retry later

SUCCESS = 0

Succeeded

class patroni.scripts.wale_restore.WALEConfig(env_dir, threshold_mb, threshold_pct, cmd)View on GitHub

Bases: NamedTuple

_asdict()View on GitHub

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('env_dir', 'threshold_mb', 'threshold_pct', 'cmd')
classmethod _make(iterable)View on GitHub

Make a new WALEConfig object from a sequence or iterable

_replace(**kwds)View on GitHub

Return a new WALEConfig object replacing specified fields with new values

cmd: List[str]

Alias for field number 3

env_dir: str

Alias for field number 0

threshold_mb: int

Alias for field number 1

threshold_pct: int

Alias for field number 2

class patroni.scripts.wale_restore.WALERestore(scope: str, datadir: str, connstring: str, env_dir: str, threshold_mb: int, threshold_pct: int, use_iam: int, no_leader: bool, retries: int)View on GitHub

Bases: object

__init__(scope: str, datadir: str, connstring: str, env_dir: str, threshold_mb: int, threshold_pct: int, use_iam: int, no_leader: bool, retries: int) NoneView on GitHub
create_replica_with_s3() intView on GitHub
fix_subdirectory_path_if_broken(dirname: str) boolView on GitHub
run() intView on GitHub

Creates a new replica using WAL-E

Returns:

0 = Success 1 = Error, try again 2 = Error, don’t try again

Return type:

ExitCode

should_use_s3_to_create_replica() bool | NoneView on GitHub

determine whether it makes sense to use S3 and not pg_basebackup

patroni.scripts.wale_restore.get_major_version(data_dir: str) floatView on GitHub
patroni.scripts.wale_restore.main() intView on GitHub
patroni.scripts.wale_restore.repr_size(n_bytes: float) strView on GitHub
>>> repr_size(1000)
'1000 Bytes'
>>> repr_size(8257332324597)
'7.5 TiB'
patroni.scripts.wale_restore.size_as_bytes(size: float, prefix: str) intView on GitHub
>>> size_as_bytes(7.5, 'T')
8246337208320