@@ -36,9 +36,11 @@ def ping(self, ip, port, scheme='http'):
3636 return False
3737
3838 def create_connection (self , ip , port , scheme = 'http' , username = None , password = None , fail_on_exception = False ,
39- enable_ssl = False , ca_certs = None , verify_certs = True ):
39+ enable_ssl = False , ca_certs = None , verify_certs = True , client_cert = None , client_key = None ):
4040 """
4141 Creates a connection with a cluster and place the connection inside of a connection pool, using the cluster_name as an alias.
42+ :param client_cert:
43+ :param client_key:
4244 :param verify_certs:
4345 :param ip:
4446 :param port:
@@ -60,17 +62,19 @@ def create_connection(self, ip, port, scheme='http', username=None, password=Non
6062 is_basic_auth = True
6163 password = urllib .parse .unquote (password )
6264
65+ client_cert_credentials = None if client_cert is None or client_key is None else (client_cert , client_key )
66+
6367 # determine version first
6468 if is_basic_auth is True :
6569 if enable_ssl :
6670 response = requests .get (scheme + "://" + ip + ":" + port , auth = (username , password ),
67- timeout = REQUEST_TIMEOUT , verify = ca_certs )
71+ timeout = REQUEST_TIMEOUT , verify = ca_certs , cert = client_cert_credentials )
6872 else :
6973 response = requests .get (scheme + "://" + ip + ":" + port , auth = (username , password ),
7074 timeout = REQUEST_TIMEOUT )
7175 else :
7276 if enable_ssl :
73- response = requests .get (scheme + "://" + ip + ":" + port , timeout = REQUEST_TIMEOUT , verify = ca_certs )
77+ response = requests .get (scheme + "://" + ip + ":" + port , timeout = REQUEST_TIMEOUT , verify = ca_certs , cert = client_cert_credentials )
7478 else :
7579 response = requests .get (scheme + "://" + ip + ":" + port , timeout = REQUEST_TIMEOUT )
7680
@@ -85,7 +89,8 @@ def create_connection(self, ip, port, scheme='http', username=None, password=Non
8589 if enable_ssl :
8690 conn = Elasticsearch (hosts = [scheme + "://" + ip + ":" + port ], maxsize = 5 ,
8791 use_ssl = True , verify_certs = verify_certs , ca_certs = ca_certs ,
88- version = content .get ('version' ).get ('number' ), http_auth = (username , password ))
92+ version = content .get ('version' ).get ('number' ), http_auth = (username , password ),
93+ client_cert = client_cert , client_key = client_key )
8994 else :
9095 conn = Elasticsearch (hosts = [scheme + "://" + ip + ":" + port ], maxsize = 5 ,
9196 version = content .get ('version' ).get ('number' ), http_auth = (username , password ))
@@ -94,7 +99,8 @@ def create_connection(self, ip, port, scheme='http', username=None, password=Non
9499 if enable_ssl :
95100 conn = Elasticsearch (hosts = [scheme + "://" + ip + ":" + port ], maxsize = 5 ,
96101 use_ssl = True , verify_certs = verify_certs , ca_certs = ca_certs ,
97- version = content .get ('version' ).get ('number' ))
102+ version = content .get ('version' ).get ('number' ),
103+ client_cert = client_cert , client_key = client_key )
98104 else :
99105 conn = Elasticsearch (hosts = [scheme + "://" + ip + ":" + port ], maxsize = 5 ,
100106 version = content .get ('version' ).get ('number' ))
0 commit comments