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:
parent
e137f2d081
commit
16220e0681
2 changed files with 44 additions and 2 deletions
|
@ -2,6 +2,7 @@ package daemon
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/Sirupsen/logrus"
|
||||
"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)
|
||||
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
|
||||
}
|
||||
|
|
38
integration-cli/docker_api_create_test.go
Normal file
38
integration-cli/docker_api_create_test.go
Normal 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))
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue