Forráskód Böngészése

more descriptive error fo checkpoint ls for non existent containers

Signed-off-by: Krasi Georgiev <krasi@vip-consult.solutions>
Krasi Georgiev 8 éve
szülő
commit
8ddfd2f759
2 módosított fájl, 15 hozzáadás és 0 törlés
  1. 4 0
      client/checkpoint_list.go
  2. 11 0
      client/checkpoint_list_test.go

+ 4 - 0
client/checkpoint_list.go

@@ -2,6 +2,7 @@ package client
 
 
 import (
 import (
 	"encoding/json"
 	"encoding/json"
+	"net/http"
 	"net/url"
 	"net/url"
 
 
 	"github.com/docker/docker/api/types"
 	"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)
 	resp, err := cli.get(ctx, "/containers/"+container+"/checkpoints", query, nil)
 	if err != nil {
 	if err != nil {
+		if resp.statusCode == http.StatusNotFound {
+			return checkpoints, containerNotFoundError{container}
+		}
 		return checkpoints, err
 		return checkpoints, err
 	}
 	}
 
 

+ 11 - 0
client/checkpoint_list_test.go

@@ -55,3 +55,14 @@ func TestCheckpointList(t *testing.T) {
 		t.Fatalf("expected 1 checkpoint, got %v", checkpoints)
 		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)
+	}
+}