From a084ddc8af3f05ffe35392a86cf2400c5bbe2176 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Tue, 6 Oct 2015 13:39:12 -0400 Subject: [PATCH] 7491: Fix error handling/reporting in keepclient/GET --- sdk/go/keepclient/keepclient.go | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/sdk/go/keepclient/keepclient.go b/sdk/go/keepclient/keepclient.go index 53dfb2b538..8b7cf419ea 100644 --- a/sdk/go/keepclient/keepclient.go +++ b/sdk/go/keepclient/keepclient.go @@ -140,21 +140,19 @@ func (kc *KeepClient) Get(locator string) (io.ReadCloser, int64, string, error) url := host + "/" + locator req, err := http.NewRequest("GET", url, nil) if err != nil { + errs = append(errs, fmt.Sprintf("%s: %v", url, err)) continue } req.Header.Add("Authorization", fmt.Sprintf("OAuth2 %s", kc.Arvados.ApiToken)) resp, err := kc.Client.Do(req) - if err != nil || resp.StatusCode != http.StatusOK { - if resp != nil { - var respbody []byte - if resp.Body != nil { - respbody, _ = ioutil.ReadAll(&io.LimitedReader{resp.Body, 4096}) - } - errs = append(errs, fmt.Sprintf("%s: %d %s", - url, resp.StatusCode, strings.TrimSpace(string(respbody)))) - } else { - errs = append(errs, fmt.Sprintf("%s: %v", url, err)) - } + if err != nil { + errs = append(errs, fmt.Sprintf("%s: %v", url, err)) + continue + } else if resp.StatusCode != http.StatusOK { + respbody, _ := ioutil.ReadAll(&io.LimitedReader{resp.Body, 4096}) + resp.Body.Close() + errs = append(errs, fmt.Sprintf("%s: HTTP %d %q", + url, resp.StatusCode, bytes.TrimSpace(respbody))) continue } return HashCheckingReader{ -- 2.30.2