patroni.postgresql.misc module

class patroni.postgresql.misc.PostgresqlRole(value)

Bases: str, enum.Enum

Possible values of Postgresql.role.

DEMOTED = 'demoted'
MASTER = 'master'
PRIMARY = 'primary'
PROMOTED = 'promoted'
REPLICA = 'replica'
STANDBY_LEADER = 'standby_leader'
UNINITIALIZED = 'uninitialized'
_generate_next_value_(start, count, last_values)

Generate the next value when not given.

name: the name of the member start: the initial start value or None count: the number of existing members last_value: the last value assigned or None

_member_map_ = {'DEMOTED': demoted, 'MASTER': master, 'PRIMARY': primary, 'PROMOTED': promoted, 'REPLICA': replica, 'STANDBY_LEADER': standby_leader, 'UNINITIALIZED': uninitialized}
_member_names_ = ['PRIMARY', 'MASTER', 'STANDBY_LEADER', 'REPLICA', 'DEMOTED', 'UNINITIALIZED', 'PROMOTED']
_member_type_

alias of str

_value2member_map_ = {'demoted': demoted, 'master': master, 'primary': primary, 'promoted': promoted, 'replica': replica, 'standby_leader': standby_leader, 'uninitialized': uninitialized}
class patroni.postgresql.misc.PostgresqlState(value)

Bases: str, enum.Enum

Possible values of Postgresql.state.

Numeric indexes should NEVER change once assigned to maintain backward compatibility with existing monitoring systems.

BOOTSTRAP_STARTING = 'starting after custom bootstrap'
CRASHED = 'crashed'
CREATING_REPLICA = 'creating replica'
CUSTOM_BOOTSTRAP = 'running custom bootstrap script'
CUSTOM_BOOTSTRAP_FAILED = 'custom bootstrap failed'
INITDB = 'initializing new cluster'
INITDB_FAILED = 'initdb failed'
RESTARTING = 'restarting'
RESTART_FAILED = 'restart failed'
RUNNING = 'running'
STARTING = 'starting'
START_FAILED = 'start failed'
STOPPED = 'stopped'
STOPPING = 'stopping'
STOP_FAILED = 'stop failed'
_generate_next_value_(start, count, last_values)

Generate the next value when not given.

name: the name of the member start: the initial start value or None count: the number of existing members last_value: the last value assigned or None

_member_map_ = {'BOOTSTRAP_STARTING': starting after custom bootstrap, 'CRASHED': crashed, 'CREATING_REPLICA': creating replica, 'CUSTOM_BOOTSTRAP': running custom bootstrap script, 'CUSTOM_BOOTSTRAP_FAILED': custom bootstrap failed, 'INITDB': initializing new cluster, 'INITDB_FAILED': initdb failed, 'RESTARTING': restarting, 'RESTART_FAILED': restart failed, 'RUNNING': running, 'STARTING': starting, 'START_FAILED': start failed, 'STOPPED': stopped, 'STOPPING': stopping, 'STOP_FAILED': stop failed}
_member_names_ = ['INITDB', 'INITDB_FAILED', 'CUSTOM_BOOTSTRAP', 'CUSTOM_BOOTSTRAP_FAILED', 'CREATING_REPLICA', 'RUNNING', 'STARTING', 'BOOTSTRAP_STARTING', 'START_FAILED', 'RESTARTING', 'RESTART_FAILED', 'STOPPING', 'STOPPED', 'STOP_FAILED', 'CRASHED']
_member_type_

alias of str

_value2member_map_ = {'crashed': crashed, 'creating replica': creating replica, 'custom bootstrap failed': custom bootstrap failed, 'initdb failed': initdb failed, 'initializing new cluster': initializing new cluster, 'restart failed': restart failed, 'restarting': restarting, 'running': running, 'running custom bootstrap script': running custom bootstrap script, 'start failed': start failed, 'starting': starting, 'starting after custom bootstrap': starting after custom bootstrap, 'stop failed': stop failed, 'stopped': stopped, 'stopping': stopping}
patroni.postgresql.misc.format_lsn(lsn: int, full: bool = False)str
patroni.postgresql.misc.fsync_dir(path: str)None
patroni.postgresql.misc.get_major_from_minor_version(version: int)int

Extract major PostgreSQL version from the provided full version.

Parameters

version – integer representation of PostgreSQL full version (major + minor).

Returns

integer representation of the PostgreSQL major version.

Example
>>> get_major_from_minor_version(100012)
100000
>>> get_major_from_minor_version(90313)
90300
patroni.postgresql.misc.parse_history(data: str) → Iterable[Tuple[int, int, str]]
patroni.postgresql.misc.parse_lsn(lsn: str)int
patroni.postgresql.misc.postgres_major_version_to_int(pg_version: str)int
>>> postgres_major_version_to_int('10')
100000
>>> postgres_major_version_to_int('9.6')
90600
patroni.postgresql.misc.postgres_version_to_int(pg_version: str)int

Convert the server_version to integer

>>> postgres_version_to_int('9.5.3')
90503
>>> postgres_version_to_int('9.3.13')
90313
>>> postgres_version_to_int('10.1')
100001
>>> postgres_version_to_int('10')  
Traceback (most recent call last):
    ...
PostgresException: 'Invalid PostgreSQL version format: X.Y or X.Y.Z is accepted: 10'
>>> postgres_version_to_int('9.6')  
Traceback (most recent call last):
    ...
PostgresException: 'Invalid PostgreSQL version format: X.Y or X.Y.Z is accepted: 9.6'
>>> postgres_version_to_int('a.b.c')  
Traceback (most recent call last):
    ...
PostgresException: 'Invalid PostgreSQL version: a.b.c'