Skip to content

Commit 92206a5

Browse files
committed
make _request_timeout args work as expected; add default timeout
1 parent b620f72 commit 92206a5

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

osisoft/pidevclub/piwebapi/api_client.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,8 @@ def __call_api(self, resource_path, method,
136136
response_data = self.request(method, url,
137137
query_params=query_params,
138138
headers=header_params,
139-
body=body)
139+
body=body,
140+
timeout=_request_timeout)
140141

141142
return_data = response_data
142143
if _preload_content:
@@ -321,12 +322,13 @@ def call_api(self, resource_path, method,
321322
thread.start()
322323
return thread
323324

324-
def request(self, method, url, query_params=None, headers=None, body=None):
325+
def request(self, method, url, query_params=None, headers=None, body=None, timeout=None):
325326

326327
return self.rest_client.send_request(url, method,
327328
body=body,
328329
query_params=query_params,
329-
headers=headers)
330+
headers=headers,
331+
timeout=timeout)
330332

331333

332334

osisoft/pidevclub/piwebapi/rest.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,28 +45,31 @@ def __init__(self, verifySsl):
4545
self.verifySsl = verifySsl
4646

4747

48-
def send_request(self, url, method, body, headers=None,query_params=None):
48+
def send_request(self, url, method, body, headers=None, query_params=None, timeout=None):
4949

5050
"""
5151
Makes the HTTP request using RESTClient.
5252
"""
5353
if query_params:
5454
url += '?' + urlencode(query_params)
5555

56+
if timeout is None:
57+
timeout = (60, 600) # 1 minute connection timeout; 10 minute response timeout
58+
5659
if method == "GET":
57-
response = requests.get(url, auth=self.auth, headers=headers, verify=self.verifySsl)
60+
response = requests.get(url, auth=self.auth, headers=headers, verify=self.verifySsl, timeout=timeout)
5861
elif method == "HEAD":
59-
response = requests.head(url, auth=self.auth, headers=headers, verify=self.verifySsl)
62+
response = requests.head(url, auth=self.auth, headers=headers, verify=self.verifySsl, timeout=timeout)
6063
elif method == "OPTIONS":
61-
response = requests.options(url, auth=self.auth, headers=headers, verify=self.verifySsl)
64+
response = requests.options(url, auth=self.auth, headers=headers, verify=self.verifySsl, timeout=timeout)
6265
elif method == "POST":
63-
response = requests.post(url, json=body, auth=self.auth, headers=headers, verify=self.verifySsl)
66+
response = requests.post(url, json=body, auth=self.auth, headers=headers, verify=self.verifySsl, timeout=timeout)
6467
elif method == "PUT":
65-
response = requests.put(url, json=body, auth=self.auth, headers=headers, verify=self.verifySsl)
68+
response = requests.put(url, json=body, auth=self.auth, headers=headers, verify=self.verifySsl, timeout=timeout)
6669
elif method == "PATCH":
67-
response = requests.patch(url, json=body, auth=self.auth, headers=headers, verify=self.verifySsl)
70+
response = requests.patch(url, json=body, auth=self.auth, headers=headers, verify=self.verifySsl, timeout=timeout)
6871
elif method == "DELETE":
69-
response = requests.delete(url, auth=self.auth, headers=headers, verify=self.verifySsl)
72+
response = requests.delete(url, auth=self.auth, headers=headers, verify=self.verifySsl, timeout=timeout)
7073
else:
7174
raise ValueError(
7275
"http method must be `GET`, `HEAD`, `OPTIONS`,"

0 commit comments

Comments
 (0)