patroni.request module
Facilities for handling communication with Patroni’s REST API.
- class patroni.request.HTTPSConnectionPool(host: str, port: int | None = None, timeout: _TYPE_TIMEOUT | None = _TYPE_DEFAULT.token, maxsize: int = 1, block: bool = False, headers: Mapping[str, str] | None = None, retries: Retry | bool | int | None = None, _proxy: Url | None = None, _proxy_headers: Mapping[str, str] | None = None, key_file: str | None = None, cert_file: str | None = None, cert_reqs: int | str | None = None, key_password: str | None = None, ca_certs: str | None = None, ssl_version: int | str | None = None, ssl_minimum_version: ssl.TLSVersion | None = None, ssl_maximum_version: ssl.TLSVersion | None = None, assert_hostname: str | Literal[False] | None = None, assert_fingerprint: str | None = None, ca_cert_dir: str | None = None, **conn_kw: Any)View on GitHub
Bases:
HTTPSConnectionPool
- _validate_conn(*args: Any, **kwargs: Any) None View on GitHub
Override parent method to silence warnings about requests without certificate verification enabled.
- class patroni.request.PatroniPoolManager(*args: Any, **kwargs: Any)View on GitHub
Bases:
PoolManager
- __init__(*args: Any, **kwargs: Any) None View on GitHub
- class patroni.request.PatroniRequest(config: Config | Dict[str, Any], insecure: bool | None = None)View on GitHub
Bases:
object
Wrapper for performing requests to Patroni’s REST API.
Prepares the request manager with the configured settings before performing the request.
- __init__(config: Config | Dict[str, Any], insecure: bool | None = None) None View on GitHub
Create a new
PatroniRequest
instance with given config.- Parameters:
config – Patroni YAML configuration.
insecure –
how to deal with SSL certs verification:
If
True
it will perform REST API requests without verifying SSL certs; orIf
False
it will perform REST API requests and verify SSL certs; orIf
None
it will behave according to the value ofctl.insecure
configuration; orIf none of the above applies, then it falls back to
False
.
- _apply_pool_param(param: str, value: Any) None View on GitHub
Configure param as value in the request manager.
- Parameters:
param – name of the setting to be changed.
value – new value for param. If
None
,0
,False
, and similar values, then explicit param declaration is removed, in which case it takes its default value, if any.
- _apply_ssl_file_param(config: Config | Dict[str, Any], name: str) str | None View on GitHub
Apply a given SSL related param to the request manager.
- Parameters:
config – Patroni YAML configuration.
name –
prefix of the Patroni SSL related setting name. Currently, supports these:
cert
: gets translated tocertfile
key
: gets translated tokeyfile
Will attempt to fetch the requested key first from
ctl
section.
- Returns:
value of
ctl.*name*file
if present,None
otherwise.
- static _get_ctl_value(config: Config | Dict[str, Any], name: str, default: Any = None) Any | None View on GitHub
Get value of name setting from the
ctl
section of the config.- Parameters:
config – Patroni YAML configuration.
name – name of the setting value to be retrieved.
- Returns:
value of
ctl.*name*
if present,None
otherwise.
- static _get_restapi_value(config: Config | Dict[str, Any], name: str) Any | None View on GitHub
Get value of name setting from the
restapi
section of the config.- Parameters:
config – Patroni YAML configuration.
name – name of the setting value to be retrieved.
- Returns:
value of
restapi -> *name*
if present,None
otherwise.
- reload_config(config: Config | Dict[str, Any]) None View on GitHub
Apply config to request manager.
Configure these HTTP headers for requests:
authorization
: based on Patroni’ CTL or REST API authentication config;user-agent
: based onpatroni.utils.USER_AGENT
.
Also configure SSL related settings for requests:
ca_certs
is configured ifctl.cacert
orrestapi.cafile
is available;cert
,key
andkey_password
are configured ifctl.certfile
is available.
- Parameters:
config – Patroni YAML configuration.
- request(method: str, url: str, body: Any | None = None, **kwargs: Any) HTTPResponse View on GitHub
Perform an HTTP request.
- Parameters:
method – the HTTP method to be used, e.g.
GET
.url – the URL to be requested.
body – anything to be used as the request body.
kwargs – keyword arguments to be passed to
urllib3.PoolManager.request()
.
- Returns:
the response returned upon request.
- patroni.request.get(url: str, verify: bool = True, **kwargs: Any) HTTPResponse View on GitHub
Perform an HTTP GET request.
Note
It uses
PatroniRequest
so all relevant configuration is applied before processing the request.- Parameters:
url – full URL for this GET request.
verify – if it should verify SSL certificates when processing the request.
- Returns:
the response returned from the request.