ES Client API reference

Builder Class

class es_client.builder.Builder(configdict: Dict | None = None, configfile: str | None = None, autoconnect: bool = False)
Parameters:
  • configdict – A configuration dictionary

  • configfile – A YAML configuration file

  • autoconnect – Connect to client automatically

Build a client connection object out of settings from configfile or configdict.

If neither configfile nor configdict is provided, empty defaults will be used.

If both are provided, configdict will be used, and configfile ignored.

attributes

The DotMap storage for attributes and settings

client

The Elasticsearch client connection object

property client_args: DotMap

The storage and workspace for client settings

property config: DotMap

Configuration settings extracted from configfile or configdict

connect() None

Attempt connection and do post-connection checks

property is_master: bool

Is the node we connected to the elected master?

property master_only: bool

Only allow connection to the elected master, if True

property other_args: DotMap

The storage and workspace for other_settings

process_config_opts(configdict: Dict | None, configfile: str | None) None

Process whether to use a configdict or configfile

set_client_defaults() None

Set defaults for the client_args property

set_other_defaults() None

Set defaults for the other_args property

property skip_version_test: bool

Skip testing for Elasticsearch version compliance?

test_connection() ObjectApiResponse[Any]

Connect and execute Elasticsearch.info()

update_config() None

Update object with values provided

validate() None

Validate that what has been supplied is acceptable to attempt a connection

property version_max: Tuple

Maximum acceptable version of Elasticsearch

property version_min: Tuple

Minimum acceptable version of Elasticsearch

Builder Attribute Errata

client:

The Elasticsearch object is only created after passing all other tests, and if autoconnect is True, or connect() has been called.

is_master:

Initially set to None, this value is set automatically if autoconnect is True. It can otherwise be set by calling _find_master() after _get_client() has been called first.

Class Instantiation Flow

  1. Check to see if elasticsearch key is in the supplied raw_config dictionary. Log a warning about using defaults if it is not.

  2. Run _check_config() on raw_config

  3. Set instance attributes version_max and version_min with the provided values.

  4. Set instance attribute master_only to the value from raw_config

  5. Initialize instance attribute is_master with a None

  6. Set instance attribute skip_version_test to the value from raw_config

  7. Set instance attribute client_args to the value of raw_config['elasticsearch']['client']

  8. Execute _check_basic_auth() to build the basic_auth tuple, if username and password are not None.

  9. Execute _check_api_key() to build the api_key tuple, if the id and api_key sub-keys are not None.

  10. Execute _check_cloud_id() to ensure the client connects to the defined cloud_id rather than anything in hosts.

  11. Execute _check_ssl() to ensure we have at least the certifi signing certificates.

  12. If autoconnect is True:

    1. Execute _get_client() to finally build the Elasticsearch client object.

    2. Execute _check_version() and _check_master() as post-checks. Nothing will happen if these checks are not enabled in raw_config