Mercurial > libervia-backend
diff sat/plugins/plugin_comp_ap_gateway/http_server.py @ 4014:4ef473116499
component AP gateway (http): handle properly NotFound error:
When an `exceptions.NotFound` is received, log a warning message and return the
appropriate HTTP code instead of raising the default `exceptions.InternalError`.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 18 Mar 2023 16:53:21 +0100 |
parents | 48e8b3dba793 |
children | 2913313ca58f |
line wrap: on
line diff
--- a/sat/plugins/plugin_comp_ap_gateway/http_server.py Sat Mar 18 16:20:30 2023 +0100 +++ b/sat/plugins/plugin_comp_ap_gateway/http_server.py Sat Mar 18 16:53:21 2023 +0100 @@ -78,14 +78,24 @@ request.setResponseCode(http_code, None if msg is None else msg.encode()) def _onRequestError(self, failure_: failure.Failure, request: "HTTPRequest") -> None: - log.exception(f"Internal error: {failure_.value}") - self.responseCode( - request, - http.INTERNAL_SERVER_ERROR, - f"internal error: {failure_.value}" - ) + exc = failure_.value + if isinstance(exc, exceptions.NotFound): + self.responseCode( + request, + http.NOT_FOUND, + str(exc) + ) + else: + log.exception(f"Internal error: {failure_.value}") + self.responseCode( + request, + http.INTERNAL_SERVER_ERROR, + f"internal error: {failure_.value}" + ) + request.finish() + raise failure_ + request.finish() - raise failure_ async def webfinger(self, request): url_parsed = parse.urlparse(request.uri.decode())