我想通过python API获取当前的Elasticsearch版本。 我可以轻松地通过 http 调用来获取它,例如
import requests
requests.get(http://endpoint:9200)
但我想知道是否有任何方法可以通过 API 调用而不是对端点的 http 请求来获取版本。喜欢
from elasticsearch import Elasticsearch
es = Elasticsearch()
我浏览了 Elasticsearch python 客户端文档,但找不到获取当前 ES 版本的调用 (https://elasticsearch-py.readthedocs.org/en/master/api.html)
如果你只想获得
version number
,你可以这样做:
#/usr/bin/env python
import json
import logging
def get_cluster_version(server, user, password):
cluster_version = "version"
r = do_request(verb='get',
server='http://{0}'.format(server),
auth=(user, password),
verify=False)
json_data = json.loads(r.content.decode('utf8'))
version_number = str(json_data["version"]["number"])
logging.info("Elastic cluster version " + str(version_number))
这对我有用,返回版本号:
client = Elasticsearch(cloud_id=self.cloud_id, http_auth=self.auth)
return client.info()['version']['number']