blobinfocache

package
v5.29.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Uncompressed is the value we store in a blob info cache to indicate that we know that
	// the blob in the corresponding location is not compressed.
	Uncompressed = "uncompressed"
	// UnknownCompression is the value we store in a blob info cache to indicate that we don't
	// know if the blob in the corresponding location is compressed (and if so, how) or not.
	UnknownCompression = "unknown"
)

Variables

This section is empty.

Functions

func CandidateLocationsFromV2

func CandidateLocationsFromV2(v2candidates []BICReplacementCandidate2) []types.BICReplacementCandidate

CandidateLocationsFromV2 converts a slice of BICReplacementCandidate2 to a slice of types.BICReplacementCandidate, dropping compression information.

func OperationAndAlgorithmForCompressor

func OperationAndAlgorithmForCompressor(compressorName string) (types.LayerCompression, *compressiontypes.Algorithm, error)

OperationAndAlgorithmForCompressor returns CompressionOperation and CompressionAlgorithm values suitable for inclusion in a types.BlobInfo structure, based on the name of the compression algorithm, or Uncompressed, or UnknownCompression. This is typically used by TryReusingBlob() implementations to set values in the BlobInfo structure that they return upon success.

Types

type BICReplacementCandidate2

type BICReplacementCandidate2 struct {
	Digest          digest.Digest
	CompressorName  string                     // either the Name() of a known pkg/compression.Algorithm, or Uncompressed or UnknownCompression
	UnknownLocation bool                       // is true when `Location` for this blob is not set
	Location        types.BICLocationReference // not set if UnknownLocation is set to `true`
}

BICReplacementCandidate2 is an item returned by BlobInfoCache2.CandidateLocations2.

type BlobInfoCache2

type BlobInfoCache2 interface {
	types.BlobInfoCache

	// Open() sets up the cache for future accesses, potentially acquiring costly state. Each Open() must be paired with a Close().
	// Note that public callers may call the types.BlobInfoCache operations without Open()/Close().
	Open()
	// Close destroys state created by Open().
	Close()

	// RecordDigestCompressorName records a compressor for the blob with the specified digest,
	// or Uncompressed or UnknownCompression.
	// WARNING: Only call this with LOCALLY VERIFIED data; don’t record a compressor for a
	// digest just because some remote author claims so (e.g. because a manifest says so);
	// otherwise the cache could be poisoned and cause us to make incorrect edits to type
	// information in a manifest.
	RecordDigestCompressorName(anyDigest digest.Digest, compressorName string)
	// CandidateLocations2 returns a prioritized, limited, number of blobs and their locations (if known)
	// that could possibly be reused within the specified (transport scope) (if they still
	// exist, which is not guaranteed).
	//
	// If !canSubstitute, the returned cadidates will match the submitted digest exactly; if
	// canSubstitute, data from previous RecordDigestUncompressedPair calls is used to also look
	// up variants of the blob which have the same uncompressed digest.
	//
	// The CompressorName fields in returned data must never be UnknownCompression.
	CandidateLocations2(transport types.ImageTransport, scope types.BICTransportScope, digest digest.Digest, canSubstitute bool) []BICReplacementCandidate2
}

BlobInfoCache2 extends BlobInfoCache by adding the ability to track information about what kind of compression was applied to the blobs it keeps information about.

func FromBlobInfoCache

func FromBlobInfoCache(bic types.BlobInfoCache) BlobInfoCache2

FromBlobInfoCache returns a BlobInfoCache2 based on a BlobInfoCache, returning the original object if it implements BlobInfoCache2, or a wrapper which discards compression information if it only implements BlobInfoCache.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL