From 70a6c7b21dd8d96f40dae569b4460d7178344a56 Mon Sep 17 00:00:00 2001 From: Antonio Murdaca Date: Wed, 23 Mar 2016 12:40:32 +0100 Subject: [PATCH] urls const(s) Signed-off-by: Antonio Murdaca --- docker.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docker.go b/docker.go index cda265a8..bcaa851d 100644 --- a/docker.go +++ b/docker.go @@ -30,6 +30,11 @@ const ( dockerCfg = ".docker" dockerCfgFileName = "config.json" dockerCfgObsolete = ".dockercfg" + + baseURL = "%s://%s/v2/" + tagsURL = baseURL + "%s/tags/list" + manifestURL = baseURL + "%s/manifests/%s" + blobsURL = baseURL + "%s/blobs/%s" ) var ( @@ -87,7 +92,7 @@ func (i *dockerImage) Manifest() (types.ImageManifest, error) { } func (i *dockerImage) getTags() ([]string, error) { - url := i.scheme + "://" + i.registry + "/v2/" + i.ref.RemoteName() + "/tags/list" + url := fmt.Sprintf(tagsURL, i.scheme, i.registry, i.ref.RemoteName()) res, err := i.makeRequest("GET", url, i.WWWAuthenticate != "", nil) if err != nil { return nil, err @@ -325,7 +330,7 @@ func (i *dockerImage) retrieveRawManifest() error { } i.WWWAuthenticate = pr.WWWAuthenticate i.scheme = pr.scheme - url := i.scheme + "://" + i.registry + "/v2/" + i.ref.RemoteName() + "/manifests/" + i.tag + url := fmt.Sprintf(manifestURL, i.scheme, i.registry, i.ref.RemoteName(), i.tag) // TODO(runcom) set manifest version header! schema1 for now - then schema2 etc etc and v1 // TODO(runcom) NO, switch on the resulter manifest like Docker is doing res, err := i.makeRequest("GET", url, pr.needsAuth(), nil) @@ -382,7 +387,6 @@ func (i *dockerImage) Layers(layers ...string) error { if err := ioutil.WriteFile(path.Join(tmpDir, "manifest.json"), data, 0644); err != nil { return err } - url := i.scheme + "://" + i.registry + "/v2/" + i.ref.RemoteName() + "/blobs/" if len(layers) == 0 { layers = m.GetLayers() } @@ -390,6 +394,7 @@ func (i *dockerImage) Layers(layers ...string) error { if !strings.HasPrefix(l, "sha256:") { l = "sha256:" + l } + url := fmt.Sprintf(blobsURL, i.scheme, i.registry, i.ref.RemoteName(), l) if err := i.getLayer(l, url, tmpDir); err != nil { return err } @@ -398,9 +403,8 @@ func (i *dockerImage) Layers(layers ...string) error { } func (i *dockerImage) getLayer(l, url, tmpDir string) error { - lurl := url + l - logrus.Infof("Downloading %s", lurl) - res, err := i.makeRequest("GET", lurl, i.WWWAuthenticate != "", nil) + logrus.Infof("Downloading %s", url) + res, err := i.makeRequest("GET", url, i.WWWAuthenticate != "", nil) if err != nil { return err }