patroni.scripts.barman.recover module

Implements patroni_barman recover sub-command.

Restore a Barman backup to the local node through pg-backup-api.

This sub-command can be used both as a custom bootstrap method, and as a custom create replica method. Check the output of --help to understand the parameters supported by the sub-command. --datadir is a special parameter and it is automatically filled by Patroni in both cases.

It requires that you have previously configured a Barman server, and that you have pg-backup-api configured and running in the same host as Barman.

Refer to ExitCode for possible exit codes of this sub-command.

class patroni.scripts.barman.recover.ExitCode

Bases: enum.IntEnum

Possible exit codes of this script.

Variables:
HTTP_ERROR = 2
RECOVERY_DONE = 0
RECOVERY_FAILED = 1
patroni.scripts.barman.recover._restore_backup(api: PgBackupApi, barman_server: str, backup_id: str, ssh_command: str, data_directory: str, loop_wait: int) → int

Restore the configured Barman backup through pg-backup-api.

Note

If requests to pg-backup-api fail recurrently or we face HTTP errors, then exit with ExitCode.HTTP_ERROR.

Parameters:
  • api – a PgBackupApi instance to handle communication with the API.
  • barman_server – name of the Barman server which backup is to be restored.
  • backup_id – ID of the backup from the Barman server.
  • ssh_command – SSH command to connect from the Barman host to the target host.
  • data_directory – path to the Postgres data directory where to restore the backup in.
  • loop_wait – how long in seconds to wait before checking again the status of the recovery process. Higher values are useful for backups that are expected to take longer to restore.
Returns:

the return code to be used when exiting the patroni_barman application. Refer to ExitCode.

patroni.scripts.barman.recover.run_barman_recover(api: PgBackupApi, args: argparse.Namespace) → int

Run a remote barman recover through the pg-backup-api.

Parameters:
  • api – a PgBackupApi instance to handle communication with the API.
  • args – arguments received from the command-line of patroni_barman recover command.
Returns:

the return code to be used when exiting the patroni_barman application. Refer to ExitCode.