patroni.request module¶
Facilities for handling communication with Patroni’s REST API.
-
class
patroni.request.HTTPSConnectionPool(host, port=None, strict=False, timeout=<object object>, maxsize=1, block=False, headers=None, retries=None, _proxy=None, _proxy_headers=None, key_file=None, cert_file=None, cert_reqs='CERT_REQUIRED', key_password=None, ca_certs='/etc/ssl/certs/ca-certificates.crt', ssl_version=None, assert_hostname=None, assert_fingerprint=None, ca_cert_dir=None, **conn_kw)¶ Bases:
urllib3.connectionpool.HTTPSConnectionPool-
_validate_conn(*args, **kwargs) → None¶ Override parent method to silence warnings about requests without certificate verification enabled.
-
-
class
patroni.request.PatroniPoolManager(*args, **kwargs)¶ Bases:
urllib3.poolmanager.PoolManager-
__init__(*args, **kwargs) → None¶ Initialize self. See help(type(self)) for accurate signature.
-
-
class
patroni.request.PatroniRequest(config: Union[patroni.config.Config, Dict[str, Any]], insecure: Optional[bool] = None)¶ Bases:
objectWrapper for performing requests to Patroni’s REST API.
Prepares the request manager with the configured settings before performing the request.
-
__init__(config: Union[patroni.config.Config, Dict[str, Any]], insecure: Optional[bool] = None) → None¶ Create a new
PatroniRequestinstance with given config.Parameters: - config – Patroni YAML configuration.
- insecure –
how to deal with SSL certs verification:
- If
Trueit will perform REST API requests without verifying SSL certs; or - If
Falseit will perform REST API requests and verify SSL certs; or - If
Noneit will behave according to the value ofctl.insecureconfiguration; or - If none of the above applies, then it falls back to
False.
- If
-
_apply_pool_param(param: str, value: Any) → None¶ 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: Union[patroni.config.Config, Dict[str, Any]], name: str) → Optional[str]¶ 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 tocertfilekey: gets translated tokeyfile
Will attempt to fetch the requested key first from
ctlsection.
Returns: value of
ctl.*name*fileif present,Noneotherwise.
-
static
_get_ctl_value(config: Union[patroni.config.Config, Dict[str, Any]], name: str, default: Any = None) → Optional[Any]¶ Get value of name setting from the
ctlsection of the config.Parameters: - config – Patroni YAML configuration.
- name – name of the setting value to be retrieved.
Returns: value of
ctl.*name*if present,Noneotherwise.
-
static
_get_restapi_value(config: Union[patroni.config.Config, Dict[str, Any]], name: str) → Optional[Any]¶ Get value of name setting from the
restapisection of the config.Parameters: - config – Patroni YAML configuration.
- name – name of the setting value to be retrieved.
Returns: value of
restapi -> *name*if present,Noneotherwise.
-
reload_config(config: Union[patroni.config.Config, Dict[str, Any]]) → None¶ 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_certsis configured ifctl.cacertorrestapi.cafileis available;cert,keyandkey_passwordare configured ifctl.certfileis available.
Parameters: config – Patroni YAML configuration.
-
request(method: str, url: str, body: Optional[Any] = None, **kwargs) → urllib3.response.HTTPResponse¶ 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.
- method – the HTTP method to be used, e.g.
-
-
patroni.request.get(url: str, verify: bool = True, **kwargs) → urllib3.response.HTTPResponse¶ Perform an HTTP GET request.
Note
It uses
PatroniRequestso 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.