Skip to content

Commit cd0b336

Browse files
authored
feat: #313 unified InternalServerError messages (#317)
1 parent e896f57 commit cd0b336

File tree

14 files changed

+132
-93
lines changed

14 files changed

+132
-93
lines changed

backend/oqtopus_cloud/admin/routers/announcements.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ def get_announcements_list(
7676
return GetAnnouncementsListResponse(announcements=announcements_list)
7777

7878
except Exception as e:
79-
logger.exception(f"error: {str(e)}")
80-
return InternalServerErrorResponse(message=str(e))
79+
tracer.put_annotation("error", str(e))
80+
logger.exception(f"Internal Server Error: {e}")
81+
return InternalServerErrorResponse(message="Internal Server Error")
8182

8283

8384
@router.get(
@@ -108,8 +109,9 @@ def get_announcement(
108109
return NotFoundErrorResponse(message=message)
109110

110111
except Exception as e:
111-
logger.exception(f"error: {str(e)}")
112-
return InternalServerErrorResponse(message=str(e))
112+
tracer.put_annotation("error", str(e))
113+
logger.exception(f"Internal Server Error: {e}")
114+
return InternalServerErrorResponse(message="Internal Server Error")
113115

114116

115117
@router.post(
@@ -142,8 +144,9 @@ def register_announcements(
142144
return BadRequestErrorResponse(message=str(e))
143145

144146
except Exception as e:
145-
logger.exception(f"error: {str(e)}")
146-
return InternalServerErrorResponse(message=str(e))
147+
tracer.put_annotation("error", str(e))
148+
logger.exception(f"Internal Server Error: {e}")
149+
return InternalServerErrorResponse(message="Internal Server Error")
147150

148151

149152
@router.patch(
@@ -185,7 +188,7 @@ def update_announcements_data(
185188
return BadRequestErrorResponse(message=str(e))
186189

187190
except Exception as e:
188-
tracer.put_annotation("db_error", str(e))
191+
tracer.put_annotation("error", str(e))
189192
logger.exception(f"Internal Server Error: {e}")
190193
return InternalServerErrorResponse(message="Internal Server Error")
191194

@@ -223,7 +226,7 @@ def delete_announcement(
223226
return SuccessResponse(message="Announcement deleted successfully")
224227

225228
except Exception as e:
226-
tracer.put_annotation("db_error", str(e))
229+
tracer.put_annotation("error", str(e))
227230
logger.exception(f"Internal Server Error: {e}")
228231
return InternalServerErrorResponse(message="Internal Server Error")
229232

backend/oqtopus_cloud/admin/routers/devices.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@ def get_devices(
4444
devices = db.scalars(select(Device)).all()
4545
return [model_to_schema(device) for device in devices]
4646
except Exception as e:
47-
logger.exception(f"error: {str(e)}")
48-
return InternalServerErrorResponse(message=str(e))
47+
tracer.put_annotation("error", str(e))
48+
logger.exception(f"Internal Server Error: {e}")
49+
return InternalServerErrorResponse(message="Internal Server Error")
4950

5051

5152
@router.get(
@@ -72,8 +73,9 @@ def get_device(
7273
logger.info(message)
7374
return NotFoundErrorResponse(message=message)
7475
except Exception as e:
75-
logger.exception(f"error: {str(e)}")
76-
return InternalServerErrorResponse(message=str(e))
76+
tracer.put_annotation("error", str(e))
77+
logger.exception(f"Internal Server Error: {e}")
78+
return InternalServerErrorResponse(message="Internal Server Error")
7779

7880

7981
@router.post(
@@ -108,8 +110,9 @@ def register_devices(
108110
db.commit()
109111
return SuccessResponse(message="Device registered successfully")
110112
except Exception as e:
111-
logger.exception(f"error: {str(e)}")
112-
return InternalServerErrorResponse(message=str(e))
113+
tracer.put_annotation("error", str(e))
114+
logger.exception(f"Internal Server Error: {e}")
115+
return InternalServerErrorResponse(message="Internal Server Error")
113116

114117

115118
@router.patch(
@@ -155,7 +158,7 @@ def update_device_data(
155158
# refresh the object to get the updated value
156159
return SuccessResponse(message="Device updated successfully")
157160
except Exception as e:
158-
tracer.put_annotation("db_error", str(e))
161+
tracer.put_annotation("error", str(e))
159162
logger.exception(f"Internal Server Error: {e}")
160163
return InternalServerErrorResponse(message="Internal Server Error")
161164

@@ -188,7 +191,7 @@ def delete_device(
188191
db.commit()
189192
return SuccessResponse(message="Device deleted successfully")
190193
except Exception as e:
191-
tracer.put_annotation("db_error", str(e))
194+
tracer.put_annotation("error", str(e))
192195
logger.exception(f"Internal Server Error: {e}")
193196
return InternalServerErrorResponse(message="Internal Server Error")
194197

backend/oqtopus_cloud/admin/routers/users.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,9 @@ def get_users(
126126

127127
return GetUsersResponse(offset=str(offset), limit=str(limit), users=users)
128128
except Exception as e:
129-
tracer.put_annotation("db_error", str(e))
130-
logger.exception(f"error: {str(e)}")
131-
return InternalServerErrorResponse(message=str(e))
129+
tracer.put_annotation("error", str(e))
130+
logger.exception(f"Internal Server Error: {e}")
131+
return InternalServerErrorResponse(message="Internal Server Error")
132132

133133

134134
@router.get(
@@ -152,9 +152,9 @@ def get_user(
152152

153153
return model_to_schema(user)
154154
except Exception as e:
155-
tracer.put_annotation("db_error", str(e))
156-
logger.exception(f"error: {str(e)}")
157-
return InternalServerErrorResponse(message=str(e))
155+
tracer.put_annotation("error", str(e))
156+
logger.exception(f"Internal Server Error: {e}")
157+
return InternalServerErrorResponse(message="Internal Server Error")
158158

159159

160160
@router.patch(
@@ -243,9 +243,9 @@ def update_user_status(
243243
logger.exception(f"error: {str(e)}")
244244
return BadRequestErrorResponse(message=str(e))
245245
except Exception as e:
246-
tracer.put_annotation("db_error", str(e))
247-
logger.exception(f"error: {str(e)}")
248-
return InternalServerErrorResponse(message=str(e))
246+
tracer.put_annotation("error", str(e))
247+
logger.exception(f"Internal Server Error: {e}")
248+
return InternalServerErrorResponse(message="Internal Server Error")
249249

250250

251251
@router.delete(
@@ -298,8 +298,8 @@ def delete_user(
298298

299299
return None
300300
except Exception as e:
301-
tracer.put_annotation("db_error", str(e))
302-
logger.exception(f"error: {str(e)}")
301+
tracer.put_annotation("error", str(e))
302+
logger.exception(f"Internal Server Error: {e}")
303303
return InternalServerErrorResponse(message="Internal Server Error")
304304

305305

backend/oqtopus_cloud/admin/routers/whitelist_users.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,9 @@ def get_whitelist_users(
164164

165165
return ListWhitelistUsersResponse(users=whitelist_users)
166166
except Exception as e:
167-
logger.exception(f"error: {str(e)}")
168-
return InternalServerErrorResponse(message=str(e))
167+
tracer.put_annotation("error", str(e))
168+
logger.exception(f"Internal Server Error: {e}")
169+
return InternalServerErrorResponse(message="Internal Server Error")
169170

170171

171172
@router.post(
@@ -211,8 +212,9 @@ def register_whitelist_user(
211212
db.commit()
212213
return SuccessResponse(message="Successfully registered")
213214
except Exception as e:
214-
logger.exception(f"error: {str(e)}")
215-
return InternalServerErrorResponse(message=str(e))
215+
tracer.put_annotation("error", str(e))
216+
logger.exception(f"Internal Server Error: {e}")
217+
return InternalServerErrorResponse(message="Internal Server Error")
216218

217219

218220
@router.delete(
@@ -244,8 +246,9 @@ def delete_whitelist_user(
244246
db.commit()
245247
return None
246248
except Exception as e:
247-
logger.exception(f"error: {str(e)}")
248-
return InternalServerErrorResponse(message=str(e))
249+
tracer.put_annotation("error", str(e))
250+
logger.exception(f"Internal Server Error: {e}")
251+
return InternalServerErrorResponse(message="Internal Server Error")
249252

250253

251254
def model_to_schema(model: WhitelistUser) -> ListWhitelistUserResponse:

backend/oqtopus_cloud/provider/routers/devices.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,9 @@ def update_device(
7676
db.commit()
7777
return UpdateDeviceResponse()
7878
except Exception as e:
79-
logger.error(
80-
f"An error occurred during updating device(device_id={device_id}):\n {e}"
81-
)
82-
return InternalServerErrorResponse(f"Error: {str(e)}")
79+
tracer.put_annotation("error", str(e))
80+
logger.exception(f"Internal Server Error: {e}")
81+
return InternalServerErrorResponse(message="Internal Server Error")
8382

8483

8584
@router.patch(
@@ -118,7 +117,9 @@ def update_device_status(
118117
db.commit()
119118
return DeviceDataUpdateResponse(message="Device's data updated")
120119
except Exception as e:
121-
return InternalServerErrorResponse(f"Error: {str(e)}")
120+
tracer.put_annotation("error", str(e))
121+
logger.exception(f"Internal Server Error: {e}")
122+
return InternalServerErrorResponse(message="Internal Server Error")
122123

123124

124125
@router.patch(
@@ -170,4 +171,6 @@ def update_device_calibration(
170171
db.commit()
171172
return DeviceDataUpdateResponse(message="Device's data updated")
172173
except Exception as e:
173-
return InternalServerErrorResponse(f"Error: {str(e)}")
174+
tracer.put_annotation("error", str(e))
175+
logger.exception(f"Internal Server Error: {e}")
176+
return InternalServerErrorResponse(message="Internal Server Error")

backend/oqtopus_cloud/provider/routers/jobs.py

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def get_jobs(
9090
i for i, field in enumerate(valid_fields_list) if field is False
9191
]
9292
invalid_fields_list = [fields_list[i] for i in invalid_indices]
93-
return InternalServerErrorResponse(
93+
return BadRequestResponse(
9494
message=f"fields {invalid_fields_list} is invalid"
9595
)
9696
else:
@@ -130,8 +130,9 @@ def get_jobs(
130130
db.commit()
131131
return results
132132
except Exception as e:
133-
logger.info(f"error: {str(e)}")
134-
return InternalServerErrorResponse(message=str(e))
133+
tracer.put_annotation("error", str(e))
134+
logger.exception(f"Internal Server Error: {e}")
135+
return InternalServerErrorResponse(message="Internal Server Error")
135136

136137

137138
@router.get(
@@ -161,7 +162,9 @@ def get_job(
161162
else:
162163
return job
163164
except Exception as e:
164-
return InternalServerErrorResponse(f"Error: {str(e)}")
165+
tracer.put_annotation("error", str(e))
166+
logger.exception(f"Internal Server Error: {e}")
167+
return InternalServerErrorResponse(message="Internal Server Error")
165168

166169

167170
@router.patch(
@@ -195,7 +198,9 @@ def update_job_status(
195198
db.commit()
196199
return JobStatusUpdateResponse(message="Job status updated")
197200
except Exception as e:
198-
return InternalServerErrorResponse(f"Error: {str(e)}")
201+
tracer.put_annotation("error", str(e))
202+
logger.exception(f"Internal Server Error: {e}")
203+
return InternalServerErrorResponse(message="Internal Server Error")
199204

200205

201206
@router.patch(
@@ -290,7 +295,9 @@ def patch_job_info(job_info: JobInfo) -> tuple[Optional[JobStatus], JobInfo]:
290295
db.commit()
291296
return UpdateJobInfoResponse(message="Job info updated")
292297
except Exception as e:
293-
return InternalServerErrorResponse(f"Error: {str(e)}")
298+
tracer.put_annotation("error", str(e))
299+
logger.exception(f"Internal Server Error: {e}")
300+
return InternalServerErrorResponse(message="Internal Server Error")
294301

295302

296303
@router.put(
@@ -326,8 +333,9 @@ def update_job_transpiler_info(
326333
)
327334

328335
except Exception as e:
329-
logger.error(e)
330-
return InternalServerErrorResponse(f"Error: {str(e)}")
336+
tracer.put_annotation("error", str(e))
337+
logger.exception(f"Internal Server Error: {e}")
338+
return InternalServerErrorResponse(message="Internal Server Error")
331339

332340

333341
@router.get(
@@ -349,14 +357,18 @@ def get_ssesrc(
349357
key = f"{job_id}/{file_name}"
350358
program = storage.get(key)
351359
if program is None:
352-
return InternalServerErrorResponse(f"SSE user program not found: {key}")
360+
e = f"SSE user program not found: {key}"
361+
tracer.put_annotation("error", str(e))
362+
logger.exception(f"Internal Server Error: {e}")
363+
return InternalServerErrorResponse(message="Internal Server Error")
353364
# encode the file to base64
354365
program_base64 = base64.b64encode(program).decode("utf-8")
355366
return PlainTextResponse(content=program_base64)
356367

357368
except Exception as e:
358-
logger.exception("Failed to get SSE user program file: %s", e)
359-
return InternalServerErrorResponse(f"Error: {str(e)}")
369+
tracer.put_annotation("error", str(e))
370+
logger.exception(f"Internal Server Error: {e}")
371+
return InternalServerErrorResponse(message="Internal Server Error")
360372

361373

362374
@router.patch(
@@ -395,8 +407,9 @@ def upload_sselog(
395407
storage.put(key=f"{job_id}/{file_name}", data=binary)
396408
return UploadSselogResponse(message="SSE log uploaded")
397409
except Exception as e:
398-
logger.exception("Failed to upload SSE log file: %s", e)
399-
return InternalServerErrorResponse(f"Error: {str(e)}")
410+
tracer.put_annotation("error", str(e))
411+
logger.exception(f"Internal Server Error: {e}")
412+
return InternalServerErrorResponse(message="Internal Server Error")
400413

401414

402415
# TODO: match parameter names of model and schema

backend/oqtopus_cloud/user/routers/announcements.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,9 @@ def get_announcements_list(
7272
]
7373
)
7474
except Exception as e:
75-
logger.error(f"error: {str(e)}", stack_info=True)
76-
return InternalServerErrorResponse(message=str(e))
75+
tracer.put_annotation("error", str(e))
76+
logger.exception(f"Internal Server Error: {e}")
77+
return InternalServerErrorResponse(message="Internal Server Error")
7778

7879

7980
@router.get(
@@ -98,8 +99,9 @@ def get_announcement(
9899
logger.info(message)
99100
return NotFoundErrorResponse(message=message)
100101
except Exception as e:
101-
logger.error(f"error: {str(e)}", stack_info=True)
102-
return InternalServerErrorResponse(message=str(e))
102+
tracer.put_annotation("error", str(e))
103+
logger.exception(f"Internal Server Error: {e}")
104+
return InternalServerErrorResponse(message="Internal Server Error")
103105

104106

105107
def localize(dt: datetime | None) -> datetime | None:

backend/oqtopus_cloud/user/routers/api_token.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ def get_api_token(
7373
api_token_expiration=apitoken_expiration,
7474
)
7575
except Exception as e:
76-
logger.info(f"error: {str(e)}")
76+
tracer.put_annotation("error", str(e))
77+
logger.exception(f"Internal Server Error: {e}")
7778
return InternalServerErrorResponse(message="Internal Server Error")
7879

7980

@@ -125,7 +126,8 @@ def create_api_token(
125126
api_token_expiration=api_token_expiration,
126127
)
127128
except Exception as e:
128-
logger.info(f"error: {str(e)}")
129+
tracer.put_annotation("error", str(e))
130+
logger.exception(f"Internal Server Error: {e}")
129131
return InternalServerErrorResponse(message="Internal Server Error")
130132

131133

@@ -167,5 +169,6 @@ def delete_api_token(
167169
logger.info("API token deleted")
168170
return Response(status_code=status.HTTP_200_OK)
169171
except Exception as e:
170-
logger.info(f"error: {str(e)}")
172+
tracer.put_annotation("error", str(e))
173+
logger.exception(f"Internal Server Error: {e}")
171174
return InternalServerErrorResponse(message="Internal Server Error")

0 commit comments

Comments
 (0)