From 760dde8106f053f65d5132aa722a8675e890353b Mon Sep 17 00:00:00 2001 From: Vasek Sraier Date: Thu, 22 Dec 2022 11:55:48 +0100 Subject: [PATCH] manager: HTTP API: fixed returning Python str() instead of json.dumps() --- manager/knot_resolver_manager/server.py | 7 +++++-- manager/knot_resolver_manager/utils/modeling/query.py | 5 ----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/manager/knot_resolver_manager/server.py b/manager/knot_resolver_manager/server.py index 175d522aa..f0b8af597 100644 --- a/manager/knot_resolver_manager/server.py +++ b/manager/knot_resolver_manager/server.py @@ -1,5 +1,6 @@ import asyncio import errno +import json import logging import os import signal @@ -206,8 +207,10 @@ class Server: # apply await self.config_store.update(config_validated) - # return success - resp_text: Optional[str] = str(to_return) if to_return is not None else None + # serialize the response (the `to_return` object is a Dict/list/scalar, we want to return json) + resp_text: Optional[str] = json.dumps(to_return) if to_return is not None else None + + # create the response and return it res = web.Response(status=HTTPStatus.OK, text=resp_text, content_type="application/json") res.headers.add("ETag", f'"{structural_etag(new_config)}"') return res diff --git a/manager/knot_resolver_manager/utils/modeling/query.py b/manager/knot_resolver_manager/utils/modeling/query.py index b63e4b968..bff51cabb 100644 --- a/manager/knot_resolver_manager/utils/modeling/query.py +++ b/manager/knot_resolver_manager/utils/modeling/query.py @@ -136,11 +136,6 @@ class TestOp(Op): def query( original: Any, method: Literal["get", "delete", "put", "patch"], ptr: str, payload: Any ) -> Tuple[Any, Optional[Any]]: - """ - Implements a modification API in the style of Caddy: - https://caddyserver.com/docs/api - """ - ######################################## # Prepare data we will be working on -- 2.47.3