1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
.. _api:
ES Client API reference
#######################
.. _builder:
Builder Class
=============
.. autoclass:: es_client.builder.Builder
:members:
Builder Attribute Errata
------------------------
:client: The :py:class:`~.elasticsearch.Elasticsearch` object is only created after passing all
other tests, and if ``autoconnect`` is ``True``, or
:py:meth:`~.es_client.builder.Builder.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
:py:meth:`~.es_client.builder.Builder._find_master` after
:py:meth:`~.es_client.builder.Builder._get_client` has been called first.
Class Instantiation Flow
------------------------
#. Check to see if ``elasticsearch`` key is in the supplied ``raw_config``
dictionary. Log a warning about using defaults if it is not.
#. Run :py:meth:`~.es_client.builder.Builder._check_config` on ``raw_config``
#. Set instance attributes ``version_max`` and ``version_min`` with the
provided values.
#. Set instance attribute ``master_only`` to the value from ``raw_config``
#. Initialize instance attribute ``is_master`` with a ``None``
#. Set instance attribute ``skip_version_test`` to the value from
``raw_config``
#. Set instance attribute ``client_args`` to the value of
``raw_config['elasticsearch']['client']``
#. Execute :py:meth:`~.es_client.builder.Builder._check_basic_auth` to build the ``basic_auth``
tuple, if ``username`` and ``password`` are not ``None``.
#. Execute :py:meth:`~.es_client.builder.Builder._check_api_key` to build the
``api_key`` tuple, if the ``id`` and ``api_key`` sub-keys are not ``None``.
#. Execute :py:meth:`~.es_client.builder.Builder._check_cloud_id` to ensure the client
connects to the defined ``cloud_id`` rather than anything in ``hosts``.
#. Execute :py:meth:`~.es_client.builder.Builder._check_ssl` to ensure we have at least the
`certifi <https://github.com/certifi/python-certifi>`_ signing certificates.
#. If ``autoconnect`` is `True`:
#. Execute :py:meth:`~.es_client.builder.Builder._get_client` to finally build the
:py:class:`~.elasticsearch.Elasticsearch` client object.
#. Execute :py:meth:`~.es_client.builder.Builder._check_version` and
:py:meth:`~.es_client.builder.Builder._check_master` as post-checks. Nothing will
happen if these checks are not enabled in ``raw_config``
|