patroni.dcs.exhibitor module

class patroni.dcs.exhibitor.Exhibitor(config: Dict[str, Any], mpp: AbstractMPP)View on GitHub

Bases: ZooKeeper

__init__(config: Dict[str, Any], mpp: AbstractMPP) NoneView on GitHub

Prepare DCS paths, MPP object, initial values for state information and processing dependencies.

Variables:

configdict, reference to config section of selected DCS. i.e.: zookeeper for zookeeper, etcd for etcd, etc…

_abc_impl = <_abc._abc_data object>
_load_cluster(path: str, loader: Callable[[str], Cluster | Dict[int, Cluster]]) Cluster | Dict[int, Cluster]View on GitHub

Main abstract method that implements the loading of Cluster instance.

Note

Internally this method should call the loader method that will build Cluster object which represents current state and topology of the cluster in DCS. This method supposed to be called only by the get_cluster() method.

Parameters:
  • path – the path in DCS where to load Cluster(s) from.

  • loader – one of _postgresql_cluster_loader() or _mpp_cluster_loader().

Raise:

DCSError in case of communication problems with DCS. If the current node was running as a primary and exception raised, instance would be demoted.

class patroni.dcs.exhibitor.ExhibitorEnsembleProvider(hosts: List[str], port: int, uri_path: str = '/exhibitor/v1/cluster/list', poll_interval: int = 300)View on GitHub

Bases: object

TIMEOUT = 3.1
__init__(hosts: List[str], port: int, uri_path: str = '/exhibitor/v1/cluster/list', poll_interval: int = 300) NoneView on GitHub
_query_exhibitors(exhibitors: List[str]) Dict[str, Any] | AnyView on GitHub
poll() boolView on GitHub
property zookeeper_hosts: str