docker: github.com/docker/docker/distribution/metadata Index | Files

package metadata

import "github.com/docker/docker/distribution/metadata"

Index

Package Files

metadata.go v1_id_service.go v2_metadata_service.go

func CheckV2MetadataHMAC Uses

func CheckV2MetadataHMAC(meta *V2Metadata, key []byte) bool

CheckV2MetadataHMAC returns true if the given "meta" is tagged with a hmac hashed by the given "key".

func ComputeV2MetadataHMAC Uses

func ComputeV2MetadataHMAC(key []byte, meta *V2Metadata) string

ComputeV2MetadataHMAC returns a hmac for the given "meta" hash by the given key.

func ComputeV2MetadataHMACKey Uses

func ComputeV2MetadataHMACKey(authConfig *types.AuthConfig) ([]byte, error)

ComputeV2MetadataHMACKey returns a key for the given "authConfig" that can be used to hash v2 metadata entries.

type FSMetadataStore Uses

type FSMetadataStore struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

FSMetadataStore uses the filesystem to associate metadata with layer and image IDs.

func NewFSMetadataStore Uses

func NewFSMetadataStore(basePath string) (*FSMetadataStore, error)

NewFSMetadataStore creates a new filesystem-based metadata store.

func (*FSMetadataStore) Delete Uses

func (store *FSMetadataStore) Delete(namespace, key string) error

Delete removes data indexed by namespace and key. The data file named after the key, stored in the namespace's directory is deleted.

func (*FSMetadataStore) Get Uses

func (store *FSMetadataStore) Get(namespace string, key string) ([]byte, error)

Get retrieves data by namespace and key. The data is read from a file named after the key, stored in the namespace's directory.

func (*FSMetadataStore) Set Uses

func (store *FSMetadataStore) Set(namespace, key string, value []byte) error

Set writes data indexed by namespace and key. The data is written to a file named after the key, stored in the namespace's directory.

type Store Uses

type Store interface {
    // Get retrieves data by namespace and key.
    Get(namespace string, key string) ([]byte, error)
    // Set writes data indexed by namespace and key.
    Set(namespace, key string, value []byte) error
    // Delete removes data indexed by namespace and key.
    Delete(namespace, key string) error
}

Store implements a K/V store for mapping distribution-related IDs to on-disk layer IDs and image IDs. The namespace identifies the type of mapping (i.e. "v1ids" or "artifacts"). MetadataStore is goroutine-safe.

type V1IDService Uses

type V1IDService struct {
    // contains filtered or unexported fields
}

V1IDService maps v1 IDs to layers on disk.

func NewV1IDService Uses

func NewV1IDService(store Store) *V1IDService

NewV1IDService creates a new V1 ID mapping service.

func (*V1IDService) Get Uses

func (idserv *V1IDService) Get(v1ID, registry string) (layer.DiffID, error)

Get finds a layer by its V1 ID.

func (*V1IDService) Set Uses

func (idserv *V1IDService) Set(v1ID, registry string, id layer.DiffID) error

Set associates an image with a V1 ID.

type V2Metadata Uses

type V2Metadata struct {
    Digest           digest.Digest
    SourceRepository string
    // HMAC hashes above attributes with recent authconfig digest used as a key in order to determine matching
    // metadata entries accompanied by the same credentials without actually exposing them.
    HMAC string
}

V2Metadata contains the digest and source repository information for a layer.

type V2MetadataService Uses

type V2MetadataService interface {
    GetMetadata(diffID layer.DiffID) ([]V2Metadata, error)
    GetDiffID(dgst digest.Digest) (layer.DiffID, error)
    Add(diffID layer.DiffID, metadata V2Metadata) error
    TagAndAdd(diffID layer.DiffID, hmacKey []byte, metadata V2Metadata) error
    Remove(metadata V2Metadata) error
}

V2MetadataService maps layer IDs to a set of known metadata for the layer.

func NewV2MetadataService Uses

func NewV2MetadataService(store Store) V2MetadataService

NewV2MetadataService creates a new diff ID to v2 metadata mapping service.

Package metadata imports 15 packages (graph) and is imported by 866 packages. Updated 2020-03-21. Refresh now. Tools for package owners.