Skip to content

Commit 3f980b8

Browse files
committed
fix(exceptions): log certain APIExceptions tracebacks
1 parent 91f94f3 commit 3f980b8

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

rootfs/api/exceptions.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,12 @@ def custom_exception_handler(exc, context):
3131
# No response means DRF couldn't handle it
3232
# Output a generic 500 in a JSON format
3333
if response is None:
34-
logging.exception('Uncaught Exception', exc_info=exc, level=logging.CRITICAL)
34+
logging.exception('Uncaught Exception', exc_info=exc)
3535
set_rollback()
3636
return Response({'detail': 'Server Error'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
3737

38+
# log a few different types of exception instead of use APIException
39+
if isinstance(exc, (DeisException, ServiceUnavailable, HealthcheckException)):
40+
logging.exception(exc.__cause__, exc_info=exc)
41+
3842
return response

rootfs/api/models/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ def create(self, *args, **kwargs): # noqa
191191
self._scheduler.delete_namespace(namespace)
192192
except KubeException as e:
193193
# Just feed into the item below
194-
pass
194+
raise ServiceUnavailable('Could not delete the Namespace in Kubernetes') from e
195195

196196
raise ServiceUnavailable('Kubernetes resources could not be created') from e
197197

@@ -387,7 +387,7 @@ def _scale_pods(self, scale_types):
387387
except Exception as e:
388388
err = '{} (scale): {}'.format(self._get_job_id(scale_type), e)
389389
self.log(err, logging.ERROR)
390-
raise ServiceUnavailable(e) from e
390+
raise ServiceUnavailable(err) from e
391391

392392
def deploy(self, release):
393393
"""Deploy a new release to this application"""

0 commit comments

Comments
 (0)