Browse Source

Fix error message in container creation

Error message was different if image was specified with the full ID.

Fixes #19652

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Tonis Tiigi 9 years ago
parent
commit
5bb832e024
2 changed files with 13 additions and 0 deletions
  1. 3 0
      daemon/daemon.go
  2. 10 0
      integration-cli/docker_api_create_test.go

+ 3 - 0
daemon/daemon.go

@@ -1228,6 +1228,9 @@ func (daemon *Daemon) ImageHistory(name string) ([]*types.ImageHistory, error) {
 func (daemon *Daemon) GetImageID(refOrID string) (image.ID, error) {
 	// Treat as an ID
 	if id, err := digest.ParseDigest(refOrID); err == nil {
+		if _, err := daemon.imageStore.Get(image.ID(id)); err != nil {
+			return "", ErrImageDoesNotExist{refOrID}
+		}
 		return image.ID(id), nil
 	}
 

+ 10 - 0
integration-cli/docker_api_create_test.go

@@ -32,4 +32,14 @@ func (s *DockerSuite) TestApiCreateWithNotExistImage(c *check.C) {
 	expected = "No such image: test456:latest"
 	c.Assert(strings.TrimSpace(string(resp)), checker.Equals, expected)
 
+	config3 := map[string]interface{}{
+		"Image": "sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efeaaaa",
+	}
+
+	status, resp, err = sockRequest("POST", "/containers/create?name="+name, config3)
+	c.Assert(err, check.IsNil)
+	c.Assert(status, check.Equals, http.StatusNotFound)
+	expected = "No such image: sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efeaaaa"
+	c.Assert(strings.TrimSpace(string(resp)), checker.Equals, expected)
+
 }