From 1e13a85609da7c4b77b5ff8fb3206d009ddf1920 Mon Sep 17 00:00:00 2001 From: Peter Hunt Date: Thu, 21 Mar 2019 15:20:40 -0400 Subject: [PATCH] container: crio: Return more informative error Before, making a ContainerInfo request returned an uninformative message about failing to decode json. Fix this by catching response codes that aren't 200, and return a more informative message. Signed-off-by: Peter Hunt --- container/crio/client.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/container/crio/client.go b/container/crio/client.go index a47a3e77..e9951362 100644 --- a/container/crio/client.go +++ b/container/crio/client.go @@ -122,6 +122,13 @@ func (c *crioClientImpl) ContainerInfo(id string) (*ContainerInfo, error) { return nil, err } defer resp.Body.Close() + + // golang's http.Do doesn't return an error if non 200 response code is returned + // handle this case here, rather than failing to decode the body + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("Error finding container %s: Status %d returned error %s", id, resp.StatusCode, resp.Body) + } + cInfo := ContainerInfo{} if err := json.NewDecoder(resp.Body).Decode(&cInfo); err != nil { return nil, err