From 411f5a89f985cba1ffbbd8c272a635639573be0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Peliz=C3=A4us?= Date: Tue, 9 Dec 2025 12:24:33 +0100 Subject: [PATCH] microcluster/rest/response: Remove odd response body discard reader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ParseResponse function always reads from the response which invalidates the purpose of the body discard reader. Signed-off-by: Julian Pelizäus --- microcluster/rest/response/response.go | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/microcluster/rest/response/response.go b/microcluster/rest/response/response.go index 0682367ab..5a8c288b5 100644 --- a/microcluster/rest/response/response.go +++ b/microcluster/rest/response/response.go @@ -4,13 +4,9 @@ import ( "bytes" "encoding/json" "fmt" - "io" - "log/slog" "net/http" "github.com/canonical/lxd/shared/api" - - "github.com/canonical/microcluster/v3/internal/log" ) // Init registers smart error mappings. @@ -170,6 +166,8 @@ func (r *manualResponse) String() string { // ParseResponse takes an HTTP response, parses it and returns the extracted result. func ParseResponse(resp *http.Response) (*api.Response, error) { + defer resp.Body.Close() + decoder := json.NewDecoder(resp.Body) response := api.Response{} @@ -186,16 +184,5 @@ func ParseResponse(resp *http.Response) (*api.Response, error) { return nil, api.StatusErrorf(resp.StatusCode, "%s", response.Error) } - defer resp.Body.Close() - _, err = io.Copy(io.Discard, resp.Body) - if err != nil { - logger, logErr := log.LoggerFromContext(resp.Request.Context()) - if logErr != nil { - return nil, err - } - - logger.Error("Failed to read response body", slog.String("error", err.Error())) - } - return &response, nil }