mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Update distribution vendor
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
This commit is contained in:
parent
dc15fe8a34
commit
24698a07cb
7 changed files with 52 additions and 47 deletions
|
@ -43,7 +43,7 @@ github.com/boltdb/bolt fff57c100f4dea1905678da7e90d92429dff2904
|
||||||
github.com/miekg/dns 75e6e86cc601825c5dbcd4e0c209eab180997cd7
|
github.com/miekg/dns 75e6e86cc601825c5dbcd4e0c209eab180997cd7
|
||||||
|
|
||||||
# get graph and distribution packages
|
# get graph and distribution packages
|
||||||
github.com/docker/distribution 129ad8ea0c3760d878b34cffdb9c3be874a7b2f7
|
github.com/docker/distribution 545102ea07aa9796f189d82f606b7c27d7aa3ed3
|
||||||
github.com/vbatts/tar-split v0.10.1
|
github.com/vbatts/tar-split v0.10.1
|
||||||
github.com/opencontainers/go-digest a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb
|
github.com/opencontainers/go-digest a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb
|
||||||
|
|
||||||
|
|
20
vendor/github.com/docker/distribution/manifests.go
generated
vendored
20
vendor/github.com/docker/distribution/manifests.go
generated
vendored
|
@ -22,8 +22,8 @@ type Manifest interface {
|
||||||
References() []Descriptor
|
References() []Descriptor
|
||||||
|
|
||||||
// Payload provides the serialized format of the manifest, in addition to
|
// Payload provides the serialized format of the manifest, in addition to
|
||||||
// the mediatype.
|
// the media type.
|
||||||
Payload() (mediatype string, payload []byte, err error)
|
Payload() (mediaType string, payload []byte, err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ManifestBuilder creates a manifest allowing one to include dependencies.
|
// ManifestBuilder creates a manifest allowing one to include dependencies.
|
||||||
|
@ -94,20 +94,20 @@ var mappings = make(map[string]UnmarshalFunc, 0)
|
||||||
func UnmarshalManifest(ctHeader string, p []byte) (Manifest, Descriptor, error) {
|
func UnmarshalManifest(ctHeader string, p []byte) (Manifest, Descriptor, error) {
|
||||||
// Need to look up by the actual media type, not the raw contents of
|
// Need to look up by the actual media type, not the raw contents of
|
||||||
// the header. Strip semicolons and anything following them.
|
// the header. Strip semicolons and anything following them.
|
||||||
var mediatype string
|
var mediaType string
|
||||||
if ctHeader != "" {
|
if ctHeader != "" {
|
||||||
var err error
|
var err error
|
||||||
mediatype, _, err = mime.ParseMediaType(ctHeader)
|
mediaType, _, err = mime.ParseMediaType(ctHeader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, Descriptor{}, err
|
return nil, Descriptor{}, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unmarshalFunc, ok := mappings[mediatype]
|
unmarshalFunc, ok := mappings[mediaType]
|
||||||
if !ok {
|
if !ok {
|
||||||
unmarshalFunc, ok = mappings[""]
|
unmarshalFunc, ok = mappings[""]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, Descriptor{}, fmt.Errorf("unsupported manifest mediatype and no default available: %s", mediatype)
|
return nil, Descriptor{}, fmt.Errorf("unsupported manifest media type and no default available: %s", mediaType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,10 +116,10 @@ func UnmarshalManifest(ctHeader string, p []byte) (Manifest, Descriptor, error)
|
||||||
|
|
||||||
// RegisterManifestSchema registers an UnmarshalFunc for a given schema type. This
|
// RegisterManifestSchema registers an UnmarshalFunc for a given schema type. This
|
||||||
// should be called from specific
|
// should be called from specific
|
||||||
func RegisterManifestSchema(mediatype string, u UnmarshalFunc) error {
|
func RegisterManifestSchema(mediaType string, u UnmarshalFunc) error {
|
||||||
if _, ok := mappings[mediatype]; ok {
|
if _, ok := mappings[mediaType]; ok {
|
||||||
return fmt.Errorf("manifest mediatype registration would overwrite existing: %s", mediatype)
|
return fmt.Errorf("manifest media type registration would overwrite existing: %s", mediaType)
|
||||||
}
|
}
|
||||||
mappings[mediatype] = u
|
mappings[mediaType] = u
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
16
vendor/github.com/docker/distribution/reference/helpers.go
generated
vendored
16
vendor/github.com/docker/distribution/reference/helpers.go
generated
vendored
|
@ -1,5 +1,7 @@
|
||||||
package reference
|
package reference
|
||||||
|
|
||||||
|
import "path"
|
||||||
|
|
||||||
// IsNameOnly returns true if reference only contains a repo name.
|
// IsNameOnly returns true if reference only contains a repo name.
|
||||||
func IsNameOnly(ref Named) bool {
|
func IsNameOnly(ref Named) bool {
|
||||||
if _, ok := ref.(NamedTagged); ok {
|
if _, ok := ref.(NamedTagged); ok {
|
||||||
|
@ -14,7 +16,7 @@ func IsNameOnly(ref Named) bool {
|
||||||
// FamiliarName returns the familiar name string
|
// FamiliarName returns the familiar name string
|
||||||
// for the given named, familiarizing if needed.
|
// for the given named, familiarizing if needed.
|
||||||
func FamiliarName(ref Named) string {
|
func FamiliarName(ref Named) string {
|
||||||
if nn, ok := ref.(NormalizedNamed); ok {
|
if nn, ok := ref.(normalizedNamed); ok {
|
||||||
return nn.Familiar().Name()
|
return nn.Familiar().Name()
|
||||||
}
|
}
|
||||||
return ref.Name()
|
return ref.Name()
|
||||||
|
@ -23,8 +25,18 @@ func FamiliarName(ref Named) string {
|
||||||
// FamiliarString returns the familiar string representation
|
// FamiliarString returns the familiar string representation
|
||||||
// for the given reference, familiarizing if needed.
|
// for the given reference, familiarizing if needed.
|
||||||
func FamiliarString(ref Reference) string {
|
func FamiliarString(ref Reference) string {
|
||||||
if nn, ok := ref.(NormalizedNamed); ok {
|
if nn, ok := ref.(normalizedNamed); ok {
|
||||||
return nn.Familiar().String()
|
return nn.Familiar().String()
|
||||||
}
|
}
|
||||||
return ref.String()
|
return ref.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FamiliarMatch reports whether ref matches the specified pattern.
|
||||||
|
// See https://godoc.org/path#Match for supported patterns.
|
||||||
|
func FamiliarMatch(pattern string, ref Reference) (bool, error) {
|
||||||
|
matched, err := path.Match(pattern, FamiliarString(ref))
|
||||||
|
if namedRef, isNamed := ref.(Named); isNamed && !matched {
|
||||||
|
matched, _ = path.Match(pattern, FamiliarName(namedRef))
|
||||||
|
}
|
||||||
|
return matched, err
|
||||||
|
}
|
||||||
|
|
26
vendor/github.com/docker/distribution/reference/normalize.go
generated
vendored
26
vendor/github.com/docker/distribution/reference/normalize.go
generated
vendored
|
@ -12,16 +12,16 @@ import (
|
||||||
var (
|
var (
|
||||||
legacyDefaultDomain = "index.docker.io"
|
legacyDefaultDomain = "index.docker.io"
|
||||||
defaultDomain = "docker.io"
|
defaultDomain = "docker.io"
|
||||||
defaultRepoPrefix = "library/"
|
officialRepoName = "library"
|
||||||
defaultTag = "latest"
|
defaultTag = "latest"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NormalizedNamed represents a name which has been
|
// normalizedNamed represents a name which has been
|
||||||
// normalized and has a familiar form. A familiar name
|
// normalized and has a familiar form. A familiar name
|
||||||
// is what is used in Docker UI. An example normalized
|
// is what is used in Docker UI. An example normalized
|
||||||
// name is "docker.io/library/ubuntu" and corresponding
|
// name is "docker.io/library/ubuntu" and corresponding
|
||||||
// familiar name of "ubuntu".
|
// familiar name of "ubuntu".
|
||||||
type NormalizedNamed interface {
|
type normalizedNamed interface {
|
||||||
Named
|
Named
|
||||||
Familiar() Named
|
Familiar() Named
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ type NormalizedNamed interface {
|
||||||
// transforming a familiar name from Docker UI to a fully
|
// transforming a familiar name from Docker UI to a fully
|
||||||
// qualified reference. If the value may be an identifier
|
// qualified reference. If the value may be an identifier
|
||||||
// use ParseAnyReference.
|
// use ParseAnyReference.
|
||||||
func ParseNormalizedNamed(s string) (NormalizedNamed, error) {
|
func ParseNormalizedNamed(s string) (Named, error) {
|
||||||
if ok := anchoredIdentifierRegexp.MatchString(s); ok {
|
if ok := anchoredIdentifierRegexp.MatchString(s); ok {
|
||||||
return nil, fmt.Errorf("invalid repository name (%s), cannot specify 64-byte hexadecimal strings", s)
|
return nil, fmt.Errorf("invalid repository name (%s), cannot specify 64-byte hexadecimal strings", s)
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ func ParseNormalizedNamed(s string) (NormalizedNamed, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
named, isNamed := ref.(NormalizedNamed)
|
named, isNamed := ref.(Named)
|
||||||
if !isNamed {
|
if !isNamed {
|
||||||
return nil, fmt.Errorf("reference %s has no name", ref.String())
|
return nil, fmt.Errorf("reference %s has no name", ref.String())
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ func splitDockerDomain(name string) (domain, remainder string) {
|
||||||
domain = defaultDomain
|
domain = defaultDomain
|
||||||
}
|
}
|
||||||
if domain == defaultDomain && !strings.ContainsRune(remainder, '/') {
|
if domain == defaultDomain && !strings.ContainsRune(remainder, '/') {
|
||||||
remainder = defaultRepoPrefix + remainder
|
remainder = officialRepoName + "/" + remainder
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -89,7 +89,10 @@ func familiarizeName(named namedRepository) repository {
|
||||||
|
|
||||||
if repo.domain == defaultDomain {
|
if repo.domain == defaultDomain {
|
||||||
repo.domain = ""
|
repo.domain = ""
|
||||||
repo.path = strings.TrimPrefix(repo.path, defaultRepoPrefix)
|
// Handle official repositories which have the pattern "library/<official repo name>"
|
||||||
|
if split := strings.Split(repo.path, "/"); len(split) == 2 && split[0] == officialRepoName {
|
||||||
|
repo.path = split[1]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return repo
|
return repo
|
||||||
}
|
}
|
||||||
|
@ -120,11 +123,10 @@ func (c canonicalReference) Familiar() Named {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// EnsureTagged adds the default tag "latest" to a reference if it only has
|
// TagNameOnly adds the default tag "latest" to a reference if it only has
|
||||||
// a repo name.
|
// a repo name.
|
||||||
func EnsureTagged(ref Named) NamedTagged {
|
func TagNameOnly(ref Named) Named {
|
||||||
namedTagged, ok := ref.(NamedTagged)
|
if IsNameOnly(ref) {
|
||||||
if !ok {
|
|
||||||
namedTagged, err := WithTag(ref, defaultTag)
|
namedTagged, err := WithTag(ref, defaultTag)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Default tag must be valid, to create a NamedTagged
|
// Default tag must be valid, to create a NamedTagged
|
||||||
|
@ -134,7 +136,7 @@ func EnsureTagged(ref Named) NamedTagged {
|
||||||
}
|
}
|
||||||
return namedTagged
|
return namedTagged
|
||||||
}
|
}
|
||||||
return namedTagged
|
return ref
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParseAnyReference parses a reference string as a possible identifier,
|
// ParseAnyReference parses a reference string as a possible identifier,
|
||||||
|
|
31
vendor/github.com/docker/distribution/reference/reference.go
generated
vendored
31
vendor/github.com/docker/distribution/reference/reference.go
generated
vendored
|
@ -20,14 +20,13 @@
|
||||||
// digest-algorithm-component := /[A-Za-z][A-Za-z0-9]*/
|
// digest-algorithm-component := /[A-Za-z][A-Za-z0-9]*/
|
||||||
// digest-hex := /[0-9a-fA-F]{32,}/ ; At least 128 bit digest value
|
// digest-hex := /[0-9a-fA-F]{32,}/ ; At least 128 bit digest value
|
||||||
//
|
//
|
||||||
// identifier := /[a-f0-9]{64}/
|
// identifier := /[a-f0-9]{64}/
|
||||||
// short-identifier := /[a-f0-9]{6,64}/
|
// short-identifier := /[a-f0-9]{6,64}/
|
||||||
package reference
|
package reference
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"path"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/opencontainers/go-digest"
|
"github.com/opencontainers/go-digest"
|
||||||
|
@ -56,6 +55,9 @@ var (
|
||||||
|
|
||||||
// ErrNameTooLong is returned when a repository name is longer than NameTotalLengthMax.
|
// ErrNameTooLong is returned when a repository name is longer than NameTotalLengthMax.
|
||||||
ErrNameTooLong = fmt.Errorf("repository name must not be more than %v characters", NameTotalLengthMax)
|
ErrNameTooLong = fmt.Errorf("repository name must not be more than %v characters", NameTotalLengthMax)
|
||||||
|
|
||||||
|
// ErrNameNotCanonical is returned when a name is not canonical.
|
||||||
|
ErrNameNotCanonical = errors.New("repository name must be canonical")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Reference is an opaque object reference identifier that may include
|
// Reference is an opaque object reference identifier that may include
|
||||||
|
@ -232,18 +234,17 @@ func Parse(s string) (Reference, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParseNamed parses s and returns a syntactically valid reference implementing
|
// ParseNamed parses s and returns a syntactically valid reference implementing
|
||||||
// the Named interface. The reference must have a name, otherwise an error is
|
// the Named interface. The reference must have a name and be in the canonical
|
||||||
// returned.
|
// form, otherwise an error is returned.
|
||||||
// If an error was encountered it is returned, along with a nil Reference.
|
// If an error was encountered it is returned, along with a nil Reference.
|
||||||
// NOTE: ParseNamed will not handle short digests.
|
// NOTE: ParseNamed will not handle short digests.
|
||||||
func ParseNamed(s string) (Named, error) {
|
func ParseNamed(s string) (Named, error) {
|
||||||
ref, err := Parse(s)
|
named, err := ParseNormalizedNamed(s)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
named, isNamed := ref.(Named)
|
if named.String() != s {
|
||||||
if !isNamed {
|
return nil, ErrNameNotCanonical
|
||||||
return nil, fmt.Errorf("reference %s has no name", ref.String())
|
|
||||||
}
|
}
|
||||||
return named, nil
|
return named, nil
|
||||||
}
|
}
|
||||||
|
@ -317,16 +318,6 @@ func WithDigest(name Named, digest digest.Digest) (Canonical, error) {
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Match reports whether ref matches the specified pattern.
|
|
||||||
// See https://godoc.org/path#Match for supported patterns.
|
|
||||||
func Match(pattern string, ref Reference) (bool, error) {
|
|
||||||
matched, err := path.Match(pattern, ref.String())
|
|
||||||
if namedRef, isNamed := ref.(Named); isNamed && !matched {
|
|
||||||
matched, _ = path.Match(pattern, namedRef.Name())
|
|
||||||
}
|
|
||||||
return matched, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// TrimNamed removes any tag or digest from the named reference.
|
// TrimNamed removes any tag or digest from the named reference.
|
||||||
func TrimNamed(ref Named) Named {
|
func TrimNamed(ref Named) Named {
|
||||||
domain, path := SplitHostname(ref)
|
domain, path := SplitHostname(ref)
|
||||||
|
@ -408,7 +399,7 @@ func (r repository) Path() string {
|
||||||
type digestReference digest.Digest
|
type digestReference digest.Digest
|
||||||
|
|
||||||
func (d digestReference) String() string {
|
func (d digestReference) String() string {
|
||||||
return d.String()
|
return digest.Digest(d).String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d digestReference) Digest() digest.Digest {
|
func (d digestReference) Digest() digest.Digest {
|
||||||
|
|
2
vendor/github.com/docker/distribution/registry.go
generated
vendored
2
vendor/github.com/docker/distribution/registry.go
generated
vendored
|
@ -35,7 +35,7 @@ type Namespace interface {
|
||||||
// reference.
|
// reference.
|
||||||
Repository(ctx context.Context, name reference.Named) (Repository, error)
|
Repository(ctx context.Context, name reference.Named) (Repository, error)
|
||||||
|
|
||||||
// Repositories fills 'repos' with a lexigraphically sorted catalog of repositories
|
// Repositories fills 'repos' with a lexicographically sorted catalog of repositories
|
||||||
// up to the size of 'repos' and returns the value 'n' for the number of entries
|
// up to the size of 'repos' and returns the value 'n' for the number of entries
|
||||||
// which were filled. 'last' contains an offset in the catalog, and 'err' will be
|
// which were filled. 'last' contains an offset in the catalog, and 'err' will be
|
||||||
// set to io.EOF if there are no more entries to obtain.
|
// set to io.EOF if there are no more entries to obtain.
|
||||||
|
|
2
vendor/github.com/docker/distribution/registry/storage/cache/memory/memory.go
generated
vendored
2
vendor/github.com/docker/distribution/registry/storage/cache/memory/memory.go
generated
vendored
|
@ -26,7 +26,7 @@ func NewInMemoryBlobDescriptorCacheProvider() cache.BlobDescriptorCacheProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
func (imbdcp *inMemoryBlobDescriptorCacheProvider) RepositoryScoped(repo string) (distribution.BlobDescriptorService, error) {
|
func (imbdcp *inMemoryBlobDescriptorCacheProvider) RepositoryScoped(repo string) (distribution.BlobDescriptorService, error) {
|
||||||
if _, err := reference.ParseNamed(repo); err != nil {
|
if _, err := reference.ParseNormalizedNamed(repo); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue