Browse code

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 authored on 2016/01/26 04:45:20
Showing 2 changed files
... ...
@@ -1228,6 +1228,9 @@ func (daemon *Daemon) ImageHistory(name string) ([]*types.ImageHistory, error) {
1228 1228
 func (daemon *Daemon) GetImageID(refOrID string) (image.ID, error) {
1229 1229
 	// Treat as an ID
1230 1230
 	if id, err := digest.ParseDigest(refOrID); err == nil {
1231
+		if _, err := daemon.imageStore.Get(image.ID(id)); err != nil {
1232
+			return "", ErrImageDoesNotExist{refOrID}
1233
+		}
1231 1234
 		return image.ID(id), nil
1232 1235
 	}
1233 1236
 
... ...
@@ -32,4 +32,14 @@ func (s *DockerSuite) TestApiCreateWithNotExistImage(c *check.C) {
32 32
 	expected = "No such image: test456:latest"
33 33
 	c.Assert(strings.TrimSpace(string(resp)), checker.Equals, expected)
34 34
 
35
+	config3 := map[string]interface{}{
36
+		"Image": "sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efeaaaa",
37
+	}
38
+
39
+	status, resp, err = sockRequest("POST", "/containers/create?name="+name, config3)
40
+	c.Assert(err, check.IsNil)
41
+	c.Assert(status, check.Equals, http.StatusNotFound)
42
+	expected = "No such image: sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efeaaaa"
43
+	c.Assert(strings.TrimSpace(string(resp)), checker.Equals, expected)
44
+
35 45
 }