mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Add repo/tag parsing on the daemon for pull and import
Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)
This commit is contained in:
parent
170609e369
commit
714b63d1be
2 changed files with 26 additions and 17 deletions
|
@ -1052,16 +1052,19 @@ func (cli *DockerCli) CmdImport(args ...string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
var src, repository, tag string
|
||||
var (
|
||||
v = url.Values{}
|
||||
src = cmd.Arg(0)
|
||||
repository = cmd.Arg(1)
|
||||
)
|
||||
|
||||
v.Set("fromSrc", src)
|
||||
v.Set("repo", repository)
|
||||
|
||||
if cmd.NArg() == 3 {
|
||||
fmt.Fprintf(cli.err, "[DEPRECATED] The format 'URL|- [REPOSITORY [TAG]]' as been deprecated. Please use URL|- [REPOSITORY[:TAG]]\n")
|
||||
src, repository, tag = cmd.Arg(0), cmd.Arg(1), cmd.Arg(2)
|
||||
} else {
|
||||
src = cmd.Arg(0)
|
||||
repository, tag = utils.ParseRepositoryTag(cmd.Arg(1))
|
||||
v.Set("tag", cmd.Arg(2))
|
||||
}
|
||||
v := url.Values{}
|
||||
|
||||
if repository != "" {
|
||||
//Check if the given image name can be resolved
|
||||
|
@ -1070,10 +1073,6 @@ func (cli *DockerCli) CmdImport(args ...string) error {
|
|||
}
|
||||
}
|
||||
|
||||
v.Set("repo", repository)
|
||||
v.Set("tag", tag)
|
||||
v.Set("fromSrc", src)
|
||||
|
||||
var in io.Reader
|
||||
|
||||
if src == "-" {
|
||||
|
@ -1159,12 +1158,18 @@ func (cli *DockerCli) CmdPull(args ...string) error {
|
|||
cmd.Usage()
|
||||
return nil
|
||||
}
|
||||
var (
|
||||
v = url.Values{}
|
||||
remote = cmd.Arg(0)
|
||||
)
|
||||
|
||||
v.Set("fromImage", remote)
|
||||
|
||||
remote, parsedTag := utils.ParseRepositoryTag(cmd.Arg(0))
|
||||
if *tag == "" {
|
||||
*tag = parsedTag
|
||||
v.Set("tag", *tag)
|
||||
}
|
||||
|
||||
remote, _ = utils.ParseRepositoryTag(remote)
|
||||
// Resolve the Repository name from fqn to hostname + name
|
||||
hostname, _, err := registry.ResolveRepositoryName(remote)
|
||||
if err != nil {
|
||||
|
@ -1175,9 +1180,6 @@ func (cli *DockerCli) CmdPull(args ...string) error {
|
|||
|
||||
// Resolve the Auth config relevant for this server
|
||||
authConfig := cli.configFile.ResolveAuthConfig(hostname)
|
||||
v := url.Values{}
|
||||
v.Set("fromImage", remote)
|
||||
v.Set("tag", *tag)
|
||||
|
||||
pull := func(authConfig registry.AuthConfig) error {
|
||||
buf, err := json.Marshal(authConfig)
|
||||
|
|
|
@ -468,6 +468,7 @@ func postImagesCreate(eng *engine.Engine, version version.Version, w http.Respon
|
|||
|
||||
var (
|
||||
image = r.Form.Get("fromImage")
|
||||
repo = r.Form.Get("repo")
|
||||
tag = r.Form.Get("tag")
|
||||
job *engine.Job
|
||||
)
|
||||
|
@ -482,18 +483,24 @@ func postImagesCreate(eng *engine.Engine, version version.Version, w http.Respon
|
|||
}
|
||||
}
|
||||
if image != "" { //pull
|
||||
if tag == "" {
|
||||
image, tag = utils.ParseRepositoryTag(image)
|
||||
}
|
||||
metaHeaders := map[string][]string{}
|
||||
for k, v := range r.Header {
|
||||
if strings.HasPrefix(k, "X-Meta-") {
|
||||
metaHeaders[k] = v
|
||||
}
|
||||
}
|
||||
job = eng.Job("pull", r.Form.Get("fromImage"), tag)
|
||||
job = eng.Job("pull", image, tag)
|
||||
job.SetenvBool("parallel", version.GreaterThan("1.3"))
|
||||
job.SetenvJson("metaHeaders", metaHeaders)
|
||||
job.SetenvJson("authConfig", authConfig)
|
||||
} else { //import
|
||||
job = eng.Job("import", r.Form.Get("fromSrc"), r.Form.Get("repo"), tag)
|
||||
if tag == "" {
|
||||
repo, tag = utils.ParseRepositoryTag(repo)
|
||||
}
|
||||
job = eng.Job("import", r.Form.Get("fromSrc"), repo, tag)
|
||||
job.Stdin.Add(r.Body)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue