From b164c90e916de5f9589772c87e526c90147eef26 Mon Sep 17 00:00:00 2001 From: Marcus Efraimsson Date: Thu, 15 Jul 2021 15:29:52 +0200 Subject: [PATCH] Chore: Fix http: superfluous response.WriteHeader error when deleting an external snapshot (#36780) --- pkg/api/dashboard_snapshot.go | 9 ++++++--- pkg/api/dashboard_snapshot_test.go | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pkg/api/dashboard_snapshot.go b/pkg/api/dashboard_snapshot.go index 331609141c5..a16a3f8aa5f 100644 --- a/pkg/api/dashboard_snapshot.go +++ b/pkg/api/dashboard_snapshot.go @@ -185,9 +185,12 @@ func deleteExternalDashboardSnapshot(externalUrl string) error { if err != nil { return err } - if err := response.Body.Close(); err != nil { - plog.Warn("Failed closing response body", "err", err) - } + + defer func() { + if err := response.Body.Close(); err != nil { + plog.Warn("Failed to close response body", "err", err) + } + }() if response.StatusCode == 200 { return nil diff --git a/pkg/api/dashboard_snapshot_test.go b/pkg/api/dashboard_snapshot_test.go index 6dbc39332a4..4f99fbf4599 100644 --- a/pkg/api/dashboard_snapshot_test.go +++ b/pkg/api/dashboard_snapshot_test.go @@ -171,16 +171,16 @@ func TestDashboardSnapshotAPIEndpoint_singleSnapshot(t *testing.T) { t.Run("When deleting an external snapshot", func(t *testing.T) { aclMockResp = []*models.DashboardAclInfoDTO{} - var writeErr error loggedInUserScenarioWithRole(t, "Should gracefully delete local snapshot when remote snapshot has already been removed when calling DELETE on", "DELETE", "/api/snapshots/12345", "/api/snapshots/:key", models.ROLE_EDITOR, func(sc *scenarioContext) { mockSnapshotResult := setUpSnapshotTest(t) mockSnapshotResult.UserId = testUserID + var writeErr error ts := setupRemoteServer(func(rw http.ResponseWriter, req *http.Request) { - _, writeErr = rw.Write([]byte(`{"message":"Failed to get dashboard snapshot"}`)) rw.WriteHeader(500) + _, writeErr = rw.Write([]byte(`{"message":"Failed to get dashboard snapshot"}`)) }) mockSnapshotResult.ExternalDeleteUrl = ts.URL