adapter

package
v0.0.0-...-beb5f3f Latest Latest
Warning

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

Go to latest
Published: May 6, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxConcurrency = 100
)

const definition

Variables

This section is empty.

Functions

func ListRegisteredAdapterInfos

func ListRegisteredAdapterInfos() map[string]*model.AdapterPattern

ListRegisteredAdapterInfos list the adapter infos

func ListRegisteredAdapterTypes

func ListRegisteredAdapterTypes() []string

ListRegisteredAdapterTypes lists the registered Adapter type

func RegisterFactory

func RegisterFactory(t string, factory Factory) error

RegisterFactory registers one adapter factory to the registry

Types

type Adapter

type Adapter interface {
	// Info return the information of this adapter
	Info() (*model.RegistryInfo, error)
	// PrepareForPush does the prepare work that needed for pushing/uploading the resources
	// eg: create the namespace or repository
	PrepareForPush([]*model.Resource) error
	// HealthCheck checks health status of registry
	HealthCheck() (string, error)
}

Adapter interface defines the capabilities of registry

type ArtifactRegistry

type ArtifactRegistry interface {
	FetchArtifacts(filters []*model.Filter) ([]*model.Resource, error)
	ManifestExist(repository, reference string) (exist bool, desc *distribution.Descriptor, err error)
	PullManifest(repository, reference string, accepttedMediaTypes ...string) (manifest distribution.Manifest, digest string, err error)
	PushManifest(repository, reference, mediaType string, payload []byte) (string, error)
	DeleteManifest(repository, reference string) error // the "reference" can be "tag" or "digest", the function needs to handle both
	BlobExist(repository, digest string) (exist bool, err error)
	PullBlob(repository, digest string) (size int64, blob io.ReadCloser, err error)
	PullBlobChunk(repository, digest string, blobSize, start, end int64) (size int64, blob io.ReadCloser, err error)
	PushBlobChunk(repository, digest string, size int64, chunk io.Reader, start, end int64, location string) (nextUploadLocation string, endRange int64, err error)
	PushBlob(repository, digest string, size int64, blob io.Reader) error
	MountBlob(srcRepository, digest, dstRepository string) (err error)
	CanBeMount(digest string) (mount bool, repository string, err error) // check whether the blob can be mounted from the remote registry
	DeleteTag(repository, tag string) error
	ListTags(repository string) (tags []string, err error)
}

ArtifactRegistry defines the capabilities that an artifact registry should have

type Factory

type Factory interface {
	Create(*model.Registry) (Adapter, error)
	AdapterPattern() *model.AdapterPattern
}

Factory creates a specific Adapter according to the params

func GetFactory

func GetFactory(t string) (Factory, error)

GetFactory gets the adapter factory by the specified name

Jump to

Keyboard shortcuts

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