示例#1
0
def es_version(es_client: Elasticsearch) -> Tuple[int, int, int]:
    """Tags the current ES client with a cached '_eland_es_version'
    property if one doesn't exist yet for the current Elasticsearch version.
    """
    if not hasattr(es_client, "_eland_es_version"):
        version_info = es_client.info()["version"]["number"]
        match = re.match(r"^(\d+)\.(\d+)\.(\d+)", version_info)
        if match is None:
            raise ValueError(f"Unable to determine Elasticsearch version. "
                             f"Received: {version_info}")
        major, minor, patch = [int(x) for x in match.groups()]
        es_client._eland_es_version = (major, minor, patch)
    return cast(Tuple[int, int, int], es_client._eland_es_version)