Harmonize / across all name-related commands/Validate images names

Docker-DCO-1.1-Signed-off-by: Djibril Koné <kone.djibril@gmail.com> (github: enokd)
This commit is contained in:
Djibril Koné 2014-03-21 00:40:58 +01:00
parent e38e977a04
commit 43c3ee3ba1
2 changed files with 27 additions and 3 deletions

View File

@ -207,6 +207,15 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
}
// Upload the build context
v := &url.Values{}
//Check if the given image name can be resolved
if *tag != "" {
repository, _ := utils.ParseRepositoryTag(*tag)
if _, _, err := registry.ResolveRepositoryName(repository); err != nil {
return err
}
}
v.Set("t", *tag)
if *suppressOutput {
@ -1002,6 +1011,12 @@ func (cli *DockerCli) CmdImport(args ...string) error {
repository, tag = utils.ParseRepositoryTag(cmd.Arg(1))
}
v := url.Values{}
//Check if the given image name can be resolved
if _, _, err := registry.ResolveRepositoryName(repository); err != nil {
return err
}
v.Set("repo", repository)
v.Set("tag", tag)
v.Set("fromSrc", src)
@ -1452,9 +1467,9 @@ func (cli *DockerCli) CmdCommit(args ...string) error {
return nil
}
re := regexp.MustCompile("/{2}")
if re.MatchString(repository) {
return fmt.Errorf("Error: Bad image name. Please rename your image in the format <user>/<repo>")
//Check if the given image name can be resolved
if _, _, err := registry.ResolveRepositoryName(repository); err != nil {
return err
}
v := url.Values{}
@ -1745,6 +1760,11 @@ func (cli *DockerCli) CmdTag(args ...string) error {
}
v := url.Values{}
//Check if the given image name can be resolved
if _, _, err := registry.ResolveRepositoryName(repository); err != nil {
return err
}
v.Set("repo", repository)
v.Set("tag", tag)

View File

@ -206,4 +206,8 @@ func TestValidRepositoryName(t *testing.T) {
t.Log("Repository name should be invalid")
t.Fail()
}
if err := validateRepositoryName("docker///docker"); err == nil {
t.Log("Repository name should be invalid")
t.Fail()
}
}