cache

package
v0.0.0-...-2898a4c Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2022 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LookupKey

func LookupKey(kind EntryKind, hash string) string

func TransformActionCacheKey

func TransformActionCacheKey(key, instance string, logger Logger) string

TransformActionCacheKey takes an ActionCache key and an instance name and returns a new ActionCache key to use instead. If the instance name is empty, then the original key is returned unchanged.

Types

type EntryKind

type EntryKind int

EntryKind describes the kind of cache entry

const (
	// AC stands for Action Cache.
	AC EntryKind = iota

	// CAS stands for Content Addressable Storage.
	CAS

	// RAW cache items are not validated. Not exposed externally, only
	// used for HTTP when running with the --disable_http_ac_validation
	// commandline flag.
	RAW
)

func (EntryKind) DirName

func (e EntryKind) DirName() string

func (EntryKind) String

func (e EntryKind) String() string

type Error

type Error struct {
	// Corresponds to a http.Status* code
	Code int
	// A human-readable string describing the error
	Text string
}

Error is used by Cache implementations to return a structured error.

func (*Error) Error

func (e *Error) Error() string

type Logger

type Logger interface {
	Printf(format string, v ...interface{})
}

Logger is designed to be satisfied by log.Logger.

type Proxy

type Proxy interface {

	// Put makes a reasonable effort to asynchronously upload the cache
	// item identified by `hash` with logical size `size`, whose data is
	// readable from `rc` to the proxy backend. The data available in
	// `rc` is in the same format as used by the disk.Cache instance.
	//
	// This is allowed to fail silently (for example when under heavy load).
	Put(ctx context.Context, kind EntryKind, hash string, size int64, rc io.ReadCloser)

	// Get returns an io.ReadCloser from which the cache item identified by
	// `hash` can be read, its logical size, and an error if something went
	// wrong. The data available from `rc` is in the same format as used by
	// the disk.Cache instance.
	Get(ctx context.Context, kind EntryKind, hash string) (rc io.ReadCloser, size int64, err error)

	// Contains returns whether or not the cache item exists on the
	// remote end, and the size if it exists (and -1 if the size is
	// unknown).
	Contains(ctx context.Context, kind EntryKind, hash string) (bool, int64)
}

Proxy is the interface that (optional) proxy backends must implement. Implementations are expected to be safe for concurrent use.

Directories

Path Synopsis
Package gcsproxy provides cache implementation that proxies requests to/from Google Cloud Storage (GCS).
Package gcsproxy provides cache implementation that proxies requests to/from Google Cloud Storage (GCS).
Package httpproxy is a cache implementation that can proxy artifacts from/to another HTTP-based remote cache.
Package httpproxy is a cache implementation that can proxy artifacts from/to another HTTP-based remote cache.

Jump to

Keyboard shortcuts

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