From 48d083d495ead295b72f9578f8d38283356002c6 Mon Sep 17 00:00:00 2001 From: "grafana-delivery-bot[bot]" <132647405+grafana-delivery-bot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 23:11:44 +0300 Subject: [PATCH] [v11.3.x] Chore: Fix population of details when converting from errutil errors to K8s error (#94998) Chore: Fix population of details when converting from errutil errors to K8s error (#94996) (cherry picked from commit 672d5f92f2a61b998be15f021db26286c576ba08) Co-authored-by: Yuri Tseretyan --- pkg/apimachinery/errutil/errors.go | 9 +++++---- pkg/tests/apis/query/query_test.go | 16 ++++++---------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/pkg/apimachinery/errutil/errors.go b/pkg/apimachinery/errutil/errors.go index 7afc5d8c743..00bf30ff628 100644 --- a/pkg/apimachinery/errutil/errors.go +++ b/pkg/apimachinery/errutil/errors.go @@ -391,11 +391,12 @@ func (e Error) Status() metav1.Status { for k, v := range public.Extra { v, err := json.Marshal(v) if err != nil { - s.Details.Causes = append(s.Details.Causes, metav1.StatusCause{ - Field: k, - Message: string(v), - }) + continue } + s.Details.Causes = append(s.Details.Causes, metav1.StatusCause{ + Field: k, + Message: string(v), + }) } } return s diff --git a/pkg/tests/apis/query/query_test.go b/pkg/tests/apis/query/query_test.go index 02e63b6ca02..a683c63e3f7 100644 --- a/pkg/tests/apis/query/query_test.go +++ b/pkg/tests/apis/query/query_test.go @@ -138,16 +138,12 @@ func TestIntegrationSimpleQuery(t *testing.T) { //fmt.Printf("OUT: %s", string(body)) require.Error(t, err, "expecting a 400") - require.JSONEq(t, `{ - "kind": "Status", - "apiVersion": "v1", - "metadata": {}, - "status": "Failure", - "message": "did not execute expression [Y] due to a failure to of the dependent expression or query [X]", - "reason": "BadRequest", - "details": { "uid": "sse.dependencyError" }, - "code": 400 - }`, string(body)) + responseBody := map[string]any{} + require.NoError(t, json.Unmarshal(body, &responseBody)) + require.EqualValues(t, 400, responseBody["code"]) + require.Equal(t, "Failure", responseBody["status"]) + require.Equal(t, "did not execute expression [Y] due to a failure to of the dependent expression or query [X]", responseBody["message"]) + require.Equal(t, "BadRequest", responseBody["reason"]) // require.JSONEq(t, `{ // "status": "Failure", // "metadata": {},