From b0c8c0c192273b75337c8ba3822944521c932c6b Mon Sep 17 00:00:00 2001 From: David Levanon Date: Tue, 23 Nov 2021 20:16:07 +0200 Subject: [PATCH] Add response body to the error in case of failure (#503) * add response body to the error in case of failure * fix typo + make inline condition --- cli/apiserver/provider.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cli/apiserver/provider.go b/cli/apiserver/provider.go index b032cd4c8..dee6c225e 100644 --- a/cli/apiserver/provider.go +++ b/cli/apiserver/provider.go @@ -3,11 +3,12 @@ package apiserver import ( "bytes" "encoding/json" - "errors" "fmt" + "io" "io/ioutil" "net/http" "net/url" + "strings" "time" "github.com/up9inc/mizu/shared/kubernetes" @@ -61,7 +62,14 @@ func (provider *Provider) GetHealthStatus() (*shared.HealthResponse, error) { if response, err := provider.client.Get(healthUrl); err != nil { return nil, err } else if response.StatusCode > 299 { - return nil, errors.New(fmt.Sprintf("status code: %d", response.StatusCode)) + responseBody := new(strings.Builder) + + if _, err := io.Copy(responseBody, response.Body); err != nil { + return nil, fmt.Errorf("status code: %d - (bad response - %v)", response.StatusCode, err) + } else { + singleLineResponse := strings.ReplaceAll(responseBody.String(), "\n", "") + return nil, fmt.Errorf("status code: %d - (response - %v)", response.StatusCode, singleLineResponse) + } } else { defer response.Body.Close()