Bläddra i källkod

Merge pull request #20940 from HackToday/fixsave

Refine error message when save non-exist image
Sebastiaan van Stijn 9 år sedan
förälder
incheckning
6b0119aefb
2 ändrade filer med 13 tillägg och 0 borttagningar
  1. 3 0
      image/store.go
  2. 10 0
      integration-cli/docker_cli_save_load_test.go

+ 3 - 0
image/store.go

@@ -170,6 +170,9 @@ func (is *store) Search(term string) (ID, error) {
 
 	dgst, err := is.digestSet.Lookup(term)
 	if err != nil {
+		if err == digest.ErrDigestNotFound {
+			err = fmt.Errorf("No such image: %s", term)
+		}
 		return "", err
 	}
 	return ID(dgst), nil

+ 10 - 0
integration-cli/docker_cli_save_load_test.go

@@ -167,6 +167,16 @@ func (s *DockerSuite) TestSaveAndLoadRepoFlags(c *check.C) {
 	c.Assert(before, checker.Equals, after, check.Commentf("inspect is not the same after a save / load"))
 }
 
+func (s *DockerSuite) TestSaveWithNoExistImage(c *check.C) {
+	testRequires(c, DaemonIsLinux)
+
+	imgName := "foobar-non-existing-image"
+
+	out, _, err := dockerCmdWithError("save", "-o", "test-img.tar", imgName)
+	c.Assert(err, checker.NotNil, check.Commentf("save image should fail for non-existing image"))
+	c.Assert(out, checker.Contains, fmt.Sprintf("No such image: %s", imgName))
+}
+
 func (s *DockerSuite) TestSaveMultipleNames(c *check.C) {
 	testRequires(c, DaemonIsLinux)
 	repoName := "foobar-save-multi-name-test"