Skip to content

Commit b9ba129

Browse files
committed
Refactored connection error handling
1 parent c2fc5aa commit b9ba129

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

elasticsearch/connection/http_requests.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,12 @@ def perform_request(self, method, url, params=None, body=None, timeout=None, ign
7474
timeout=timeout or self.timeout)
7575
duration = time.time() - start
7676
raw_data = response.text
77-
except requests.exceptions.SSLError as e:
78-
self.log_request_fail(method, url, prepared_request.path_url, body, time.time() - start, exception=e)
79-
raise SSLError('N/A', str(e), e)
80-
except requests.Timeout as e:
81-
self.log_request_fail(method, url, prepared_request.path_url, body, time.time() - start, exception=e)
82-
raise ConnectionTimeout('TIMEOUT', str(e), e)
83-
except requests.ConnectionError as e:
77+
except Exception as e:
8478
self.log_request_fail(method, url, prepared_request.path_url, body, time.time() - start, exception=e)
79+
if isinstance(e, requests.exceptions.SSLError):
80+
raise SSLError('N/A', str(e), e)
81+
if isinstance(e, requests.Timeout):
82+
raise ConnectionTimeout('TIMEOUT', str(e), e)
8583
raise ConnectionError('N/A', str(e), e)
8684

8785
# raise errors based on http status codes, let the client handle those if needed

elasticsearch/connection/http_urllib3.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,15 @@ def perform_request(self, method, url, params=None, body=None, timeout=None, ign
109109
response = self.pool.urlopen(method, url, body, retries=False, headers=self.headers, **kw)
110110
duration = time.time() - start
111111
raw_data = response.data.decode('utf-8')
112-
except UrllibSSLError as e:
113-
self.log_request_fail(method, full_url, url, body, time.time() - start, exception=e)
114-
raise SSLError('N/A', str(e), e)
115-
except ReadTimeoutError as e:
116-
self.log_request_fail(method, full_url, url, body, time.time() - start, exception=e)
117-
raise ConnectionTimeout('TIMEOUT', str(e), e)
118112
except Exception as e:
119113
self.log_request_fail(method, full_url, url, body, time.time() - start, exception=e)
114+
if isinstance(e, UrllibSSLError):
115+
raise SSLError('N/A', str(e), e)
116+
if isinstance(e, ReadTimeoutError):
117+
raise ConnectionTimeout('TIMEOUT', str(e), e)
120118
raise ConnectionError('N/A', str(e), e)
121119

120+
# raise errors based on http status codes, let the client handle those if needed
122121
if not (200 <= response.status < 300) and response.status not in ignore:
123122
self.log_request_fail(method, full_url, url, body, duration, response.status, raw_data)
124123
self._raise_error(response.status, raw_data)

0 commit comments

Comments
 (0)