From: Aleš Mrázek Date: Wed, 27 Nov 2024 10:38:25 +0000 (+0100) Subject: manager: server: globally handle configuration validation errors X-Git-Tag: v6.0.10~10^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a6d4e95199447b1740dc75322a3397333afc0712;p=thirdparty%2Fknot-resolver.git manager: server: globally handle configuration validation errors --- diff --git a/python/knot_resolver/manager/server.py b/python/knot_resolver/manager/server.py index fbfef2442..b09ff7b99 100644 --- a/python/knot_resolver/manager/server.py +++ b/python/knot_resolver/manager/server.py @@ -60,8 +60,8 @@ async def error_handler(request: web.Request, handler: Any) -> web.Response: try: return await handler(request) - except DataValidationError as e: - return web.Response(text=f"validation of configuration failed:\n{e}", status=HTTPStatus.BAD_REQUEST) + except (AggregateDataValidationError, DataValidationError) as e: + return web.Response(text=str(e), status=HTTPStatus.BAD_REQUEST) except DataParsingError as e: return web.Response(text=f"request processing error:\n{e}", status=HTTPStatus.BAD_REQUEST) except KresManagerException as e: @@ -262,16 +262,7 @@ class Server: async def _handler_cache_clear(self, request: web.Request) -> web.Response: data = parse_from_mime_type(await request.text(), request.content_type) - - try: - config = CacheClearRPCSchema(data) - except (AggregateDataValidationError, DataValidationError) as e: - return web.Response( - body=e, - status=HTTPStatus.BAD_REQUEST, - content_type="text/plain", - charset="utf8", - ) + config = CacheClearRPCSchema(data) _, result = await command_single_registered_worker(config.render_lua()) return web.Response(