Change URLBuilder methods to use references for tags and digests

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
Aaron Lehmann 2015-12-15 16:43:13 -08:00
parent 4441333912
commit 2b20b0167a
8 changed files with 150 additions and 62 deletions

View file

@ -6,7 +6,6 @@ import (
"github.com/docker/distribution"
"github.com/docker/distribution/context"
"github.com/docker/distribution/digest"
"github.com/docker/distribution/reference"
"github.com/docker/distribution/uuid"
)
@ -23,8 +22,8 @@ var _ Listener = &bridge{}
// URLBuilder defines a subset of url builder to be used by the event listener.
type URLBuilder interface {
BuildManifestURL(name reference.Named, tag string) (string, error)
BuildBlobURL(name reference.Named, dgst digest.Digest) (string, error)
BuildManifestURL(name reference.Named) (string, error)
BuildBlobURL(ref reference.Canonical) (string, error)
}
// NewBridge returns a notification listener that writes records to sink,
@ -115,7 +114,12 @@ func (b *bridge) createManifestEvent(action string, repo reference.Named, sm dis
event.Target.Size = desc.Size
event.Target.Digest = desc.Digest
event.Target.URL, err = b.ub.BuildManifestURL(repo, event.Target.Digest.String())
ref, err := reference.WithDigest(repo, event.Target.Digest)
if err != nil {
return nil, err
}
event.Target.URL, err = b.ub.BuildManifestURL(ref)
if err != nil {
return nil, err
}
@ -138,8 +142,12 @@ func (b *bridge) createBlobEvent(action string, repo reference.Named, desc distr
event.Target.Length = desc.Size
event.Target.Repository = repo.Name()
var err error
event.Target.URL, err = b.ub.BuildBlobURL(repo, desc.Digest)
ref, err := reference.WithDigest(repo, desc.Digest)
if err != nil {
return nil, err
}
event.Target.URL, err = b.ub.BuildBlobURL(ref)
if err != nil {
return nil, err
}