Minor fix: remove redundant tag name in error message of create failed.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
This commit is contained in:
Lei Jitang 2015-08-30 10:43:33 +08:00
parent e137f2d081
commit 16220e0681
2 changed files with 44 additions and 2 deletions

View file

@ -2,6 +2,7 @@ package daemon
import ( import (
"fmt" "fmt"
"strings"
"github.com/Sirupsen/logrus" "github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types" "github.com/docker/docker/api/types"
@ -28,11 +29,14 @@ func (daemon *Daemon) ContainerCreate(name string, config *runconfig.Config, hos
container, buildWarnings, err := daemon.Create(config, hostConfig, name) container, buildWarnings, err := daemon.Create(config, hostConfig, name)
if err != nil { if err != nil {
if daemon.Graph().IsNotExist(err, config.Image) { 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 == "" { if tag == "" {
tag = tags.DefaultTag 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 return nil, warnings, err
} }

View file

@ -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))
}
}