Skip to content

Commit 0c27a24

Browse files
committed
Improvements to error handling in interactions with REST API
1 parent ef90c10 commit 0c27a24

File tree

1 file changed

+50
-20
lines changed

1 file changed

+50
-20
lines changed

simvue/remote.py

Lines changed: 50 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,14 @@ def create_run(self, data):
3838
headers=self._headers,
3939
json=data,
4040
timeout=DEFAULT_API_TIMEOUT)
41-
except requests.exceptions.RequestException:
41+
except requests.exceptions.RequestException as err:
42+
self._error(f"Exception creating run: {str(err)}")
4243
return False
4344

44-
if response.status_code != 200:
45-
self._error('Unable to reconnect to run')
45+
if response.status_code == 409:
46+
self._error(f"Duplicate run, name {data['name']} already exists")
47+
elif response.status_code != 200:
48+
self._error(f"Got status code {response.status_code} when creating run")
4649
return False
4750

4851
return True
@@ -56,12 +59,14 @@ def update(self, data):
5659
headers=self._headers,
5760
json=data,
5861
timeout=DEFAULT_API_TIMEOUT)
59-
except requests.exceptions.RequestException:
60-
pass
62+
except requests.exceptions.RequestException as err:
63+
self._error(f"Exception creating updating run: {str(err)}")
64+
return False
6165

6266
if response.status_code == 200:
6367
return True
6468

69+
self._error(f"Got status code {response.status_code} when updating run")
6570
return False
6671

6772
def set_folder_details(self, data):
@@ -73,12 +78,14 @@ def set_folder_details(self, data):
7378
headers=self._headers,
7479
json=data,
7580
timeout=DEFAULT_API_TIMEOUT)
76-
except requests.exceptions.RequestException:
77-
pass
81+
except requests.exceptions.RequestException as err:
82+
self._error(f"Exception setting folder details: {err}")
83+
return False
7884

7985
if response.status_code == 200:
8086
return True
8187

88+
self._error(f"Got status code {response.status_code} when updating folder details")
8289
return False
8390

8491
def save_file(self, data):
@@ -122,16 +129,18 @@ def add_alert(self, data):
122129
Add an alert
123130
"""
124131
try:
125-
response = requests.put(f"{self._url}/api/runs",
126-
headers=self._headers,
127-
json=data,
128-
timeout=DEFAULT_API_TIMEOUT)
129-
except requests.exceptions.RequestException:
130-
pass
132+
response = requests.post(f"{self._url}/api/alerts",
133+
headers=self._headers,
134+
json=data,
135+
timeout=DEFAULT_API_TIMEOUT)
136+
except requests.exceptions.RequestException as err:
137+
self._error(f"Got exception when creating an alert: {str(err)}")
138+
return False
131139

132-
if response.status_code == 200:
140+
if response.status_code in (200, 409):
133141
return True
134142

143+
self._error(f"Got status code {response.status_code} when creating alert")
135144
return False
136145

137146
def send_metrics(self, data):
@@ -143,8 +152,15 @@ def send_metrics(self, data):
143152
headers=self._headers_mp,
144153
data=data,
145154
timeout=DEFAULT_API_TIMEOUT)
146-
except:
147-
pass
155+
except requests.exceptions.RequestException as err:
156+
self._error(f"Exception sending metrics: {str(err)}")
157+
return False
158+
159+
if response.status_code == 200:
160+
return True
161+
162+
self._error(f"Got status code {response.status_code} when sending metrics")
163+
return False
148164

149165
def send_event(self, data):
150166
"""
@@ -155,8 +171,15 @@ def send_event(self, data):
155171
headers=self._headers_mp,
156172
data=data,
157173
timeout=DEFAULT_API_TIMEOUT)
158-
except:
159-
pass
174+
except requests.exceptions.RequestException as err:
175+
self._error(f"Exception sending event: {str(err)}")
176+
return False
177+
178+
if response.status_code == 200:
179+
return True
180+
181+
self._error(f"Got status code {response.status_code} when sending events")
182+
return False
160183

161184
def send_heartbeat(self):
162185
"""
@@ -167,5 +190,12 @@ def send_heartbeat(self):
167190
headers=self._headers,
168191
json={'name': self._name},
169192
timeout=DEFAULT_API_TIMEOUT)
170-
except:
171-
pass
193+
except requests.exceptions.RequestException as err:
194+
self._error(f"Exception creating run: {str(err)}")
195+
return False
196+
197+
if response.status_code == 200:
198+
return True
199+
200+
self._error(f"Got status code {response.status_code} when sending heartbeat")
201+
return False

0 commit comments

Comments
 (0)