Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit e027e64

Browse files
authored
Merge pull request #70 from youngsofun/dev
check http status code before try to handle content.
2 parents 8dd8933 + 0325de1 commit e027e64

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

databend_py/connection.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,15 @@ def do_query(self, url, query_sql):
135135
auth=HTTPBasicAuth(self.user, self.password),
136136
timeout=(self.connect_timeout, self.read_timeout),
137137
verify=True)
138+
if response.status_code != 200:
139+
try:
140+
resp_dict = json.loads(response.content)
141+
if resp_dict and resp_dict.get('error') and "no endpoint" in resp_dict.get('error'):
142+
raise WarehouseTimeoutException
143+
except ValueError:
144+
pass
145+
raise UnexpectedException("Unexpected status code %d when post query, content: %s" %
146+
(response.status_code, response.content))
138147

139148
if response.content:
140149
try:
@@ -196,6 +205,7 @@ def wait_until_has_schema(self, raw_data_dict):
196205
if raw_data_dict['next_uri'] is None:
197206
break
198207
resp = self.next_page(raw_data_dict['next_uri'])
208+
199209
resp_dict = json.loads(resp.content)
200210
raw_data_dict = resp_dict
201211
resp_schema = raw_data_dict.get("schema")
@@ -205,7 +215,12 @@ def wait_until_has_schema(self, raw_data_dict):
205215

206216
def next_page(self, next_uri):
207217
url = "{}://{}:{}{}".format(self.schema, self.host, self.port, next_uri)
208-
return self.requests_session.get(url=url, headers=self.make_headers(), cookies=self.cookies)
218+
219+
response = self.requests_session.get(url=url, headers=self.make_headers(), cookies=self.cookies)
220+
if response.status_code != 200:
221+
raise UnexpectedException("Unexpected status code %d when get %s, content: %s" %
222+
(response.status_code, url, response.content))
223+
return response
209224

210225
# return a list of response util empty next_uri
211226
def query_with_session(self, statement):

0 commit comments

Comments
 (0)