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 (
|
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
|
||||||
}
|
}
|
||||||
|
|
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