From 7505453e38194e780eba4956f3e45c63e01617cf Mon Sep 17 00:00:00 2001 From: Krasi Georgiev Date: Thu, 2 Feb 2017 00:40:43 +0200 Subject: [PATCH] more descriptive error fo checkpoint ls for non existent containers Signed-off-by: Krasi Georgiev Upstream-commit: 8ddfd2f75928be5feda8bd8327a5e9dd60b85cf2 Component: engine --- components/engine/client/checkpoint_list.go | 4 ++++ components/engine/client/checkpoint_list_test.go | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/components/engine/client/checkpoint_list.go b/components/engine/client/checkpoint_list.go index 8eb720a6b2..97f2badf76 100644 --- a/components/engine/client/checkpoint_list.go +++ b/components/engine/client/checkpoint_list.go @@ -2,6 +2,7 @@ package client import ( "encoding/json" + "net/http" "net/url" "github.com/docker/docker/api/types" @@ -19,6 +20,9 @@ func (cli *Client) CheckpointList(ctx context.Context, container string, options resp, err := cli.get(ctx, "/containers/"+container+"/checkpoints", query, nil) if err != nil { + if resp.statusCode == http.StatusNotFound { + return checkpoints, containerNotFoundError{container} + } return checkpoints, err } diff --git a/components/engine/client/checkpoint_list_test.go b/components/engine/client/checkpoint_list_test.go index 6c90f61e8c..388465715b 100644 --- a/components/engine/client/checkpoint_list_test.go +++ b/components/engine/client/checkpoint_list_test.go @@ -55,3 +55,14 @@ func TestCheckpointList(t *testing.T) { t.Fatalf("expected 1 checkpoint, got %v", checkpoints) } } + +func TestCheckpointListContainerNotFound(t *testing.T) { + client := &Client{ + client: newMockClient(errorMock(http.StatusNotFound, "Server error")), + } + + _, err := client.CheckpointList(context.Background(), "unknown", types.CheckpointListOptions{}) + if err == nil || !IsErrContainerNotFound(err) { + t.Fatalf("expected a containerNotFound error, got %v", err) + } +}