def new_instance( host, index, type=None, name=None, port=9200, read_only=True, timeout=None, # NUMBER OF SECONDS TO WAIT FOR RESPONSE, OR SECONDS TO WAIT FOR DOWNLOAD (PASSED TO requests) wait_for_active_shards=1, # ES WRITE CONSISTENCY (https://www.elastic.co/guide/en/elasticsearch/reference/1.7/docs-index_.html#index-consistency) typed=None, kwargs=None): try: known = known_hosts.get((host, port)) if known: return known(kwargs=kwargs) url = URL(host) url.port = port status = http.get_json(url, stream=False) version = status.version.number if version.startswith(("5.", "6.")): from jx_elasticsearch.es52 import ES52 type2container.setdefault("elasticsearch", ES52) known_hosts[(host, port)] = ES52 output = ES52(kwargs=kwargs) return output else: Log.error("No jx interpreter for Elasticsearch {{version}}", version=version) except Exception as e: Log.error("Can not make an interpreter for Elasticsearch", cause=e)
def new_instance( host, index, type=None, name=None, port=9200, read_only=True, timeout=None, # NUMBER OF SECONDS TO WAIT FOR RESPONSE, OR SECONDS TO WAIT FOR DOWNLOAD (PASSED TO requests) wait_for_active_shards=1, # ES WRITE CONSISTENCY (https://www.elastic.co/guide/en/elasticsearch/reference/1.7/docs-index_.html#index-consistency) typed=None, kwargs=None ): try: known = known_hosts.get((host, port)) if known: return known(kwargs=kwargs) url = URL(host) url.port = port status = http.get_json(url, stream=False) version = status.version.number if version.startswith("1."): from jx_elasticsearch.es14 import ES14 type2container.setdefault("elasticsearch", ES14) known_hosts[(host, port)] = ES14 output = ES14(kwargs=kwargs) return output elif version.startswith(("5.", "6.")): from jx_elasticsearch.es52 import ES52 type2container.setdefault("elasticsearch", ES52) known_hosts[(host, port)] = ES52 output = ES52(kwargs=kwargs) return output else: Log.error("No jx interpreter for Elasticsearch {{version}}", version=version) except Exception as e: Log.error("Can not make an interpreter for Elasticsearch", cause=e)