Skip to content

Commit

Permalink
Minor fix: remove redundant tag name in error message of create failed.
Browse files Browse the repository at this point in the history
Signed-off-by: Lei Jitang <leijitang@huawei.com>
  • Loading branch information
coolljt0725 committed Aug 30, 2015
1 parent e137f2d commit 16220e0
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 2 deletions.
8 changes: 6 additions & 2 deletions daemon/create.go
Expand Up @@ -2,6 +2,7 @@ package daemon

import (
"fmt"
"strings"

"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
Expand All @@ -28,11 +29,14 @@ func (daemon *Daemon) ContainerCreate(name string, config *runconfig.Config, hos
container, buildWarnings, err := daemon.Create(config, hostConfig, name)
if err != nil {
if daemon.Graph().IsNotExist(err, config.Image) {
_, tag := parsers.ParseRepositoryTag(config.Image)
if strings.Contains(config.Image, "@") {
return nil, warnings, fmt.Errorf("No such image: %s", config.Image)
}
img, tag := parsers.ParseRepositoryTag(config.Image)
if tag == "" {
tag = tags.DefaultTag
}
return nil, warnings, fmt.Errorf("No such image: %s (tag: %s)", config.Image, tag)
return nil, warnings, fmt.Errorf("No such image: %s:%s", img, tag)
}
return nil, warnings, err
}
Expand Down
38 changes: 38 additions & 0 deletions integration-cli/docker_api_create_test.go
@@ -0,0 +1,38 @@
package main

import (
"net/http"
"strings"

"github.com/go-check/check"
)

func (s *DockerSuite) TestApiCreateWithNotExistImage(c *check.C) {
name := "test"
config := map[string]interface{}{
"Image": "test456:v1",
"Volumes": map[string]struct{}{"/tmp": {}},
}

status, resp, err := sockRequest("POST", "/containers/create?name="+name, config)
c.Assert(err, check.IsNil)
c.Assert(status, check.Equals, http.StatusNotFound)
expected := "No such image: test456:v1"
if !strings.Contains(string(resp), expected) {
c.Fatalf("expected: %s, got: %s", expected, string(resp))
}

config2 := map[string]interface{}{
"Image": "test456",
"Volumes": map[string]struct{}{"/tmp": {}},
}

status, resp, err = sockRequest("POST", "/containers/create?name="+name, config2)
c.Assert(err, check.IsNil)
c.Assert(status, check.Equals, http.StatusNotFound)
expected = "No such image: test456:latest"
if !strings.Contains(string(resp), expected) {
c.Fatalf("expected: %s, got: %s", expected, string(resp))
}

}

0 comments on commit 16220e0

Please sign in to comment.