cpi

package
v2.0.0-...-98cc131 Latest Latest
Warning

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

Go to latest
Published: Jul 26, 2023 License: Apache-2.0 Imports: 19 Imported by: 0

README

Context Provider Interface for Component Repositories

Documentation

Index

Constants

View Source
const (
	KIND_COMPONENTVERSION = internal.KIND_COMPONENTVERSION
	KIND_RESOURCE         = internal.KIND_RESOURCE
	KIND_SOURCE           = internal.KIND_SOURCE
	KIND_REFERENCE        = internal.KIND_REFERENCE
)
View Source
const CONTEXT_TYPE = internal.CONTEXT_TYPE
View Source
const CommonTransportFormat = internal.CommonTransportFormat

Variables

View Source
var ErrClosed = resource.ErrClosed
View Source
var TAG_BLOBHANDLER = logging.DefineTag("blobhandler", "execution of blob handler used to upload resource blobs to an ocm repository.")

Functions

func ArtifactNameHint

func ArtifactNameHint(spec AccessSpec, cv ComponentVersionAccess) string

func BlobHandlerLogger

func BlobHandlerLogger(ctx Context, messageContext ...logging.MessageContext) logging.Logger

func DefaultContext

func DefaultContext() internal.Context

func ErrComponentVersionNotFound

func ErrComponentVersionNotFound(name, version string) error

func ErrComponentVersionNotFoundWrap

func ErrComponentVersionNotFoundWrap(err error, name, version string) error

func GetRefParseHandler

func GetRefParseHandler(ty string, h ParseHandler)

func Logger

func Logger(c OCMContextProvider, keyValuePairs ...interface{}) logging.Logger

func MustNewAccessSpecMultiFormatVersion

func MustNewAccessSpecMultiFormatVersion(kind string, formats AccessSpecFormatVersionRegistry) runtime.FormatVersion[AccessSpec]

func MustRegisterDigester

func MustRegisterDigester(digester BlobDigester, arttypes ...string)

func RegisterAccessType

func RegisterAccessType(atype AccessType)

func RegisterAccessTypeVersions

func RegisterAccessTypeVersions(s AccessTypeVersionScheme)

func RegisterBlobHandler

func RegisterBlobHandler(handler BlobHandler, opts ...BlobHandlerOption)

func RegisterBlobHandlerRegistrationHandler

func RegisterBlobHandlerRegistrationHandler(path string, handler BlobHandlerRegistrationHandler)

func RegisterRefParseHandler

func RegisterRefParseHandler(ty string, h ParseHandler)

func RegisterRepositorySpecHandler

func RegisterRepositorySpecHandler(handler RepositorySpecHandler, types ...string)

func RegisterRepositoryType

func RegisterRepositoryType(rtype RepositoryType)

func RegisterRepositoryTypeVersions

func RegisterRepositoryTypeVersions(s RepositoryTypeVersionScheme)

func RepositoryPrefix

func RepositoryPrefix(spec RepositorySpec) string

func ResourceData

func ResourceData(s AccessMethodSource) ([]byte, error)

ResourceData extracts the data for a given resource/source access. It handles the Close contract for the access method for a singular use.

func ResourceMimeReader

func ResourceMimeReader(s AccessMethodSource) (io.ReadCloser, string, error)

ResourceMimeReader gets a Reader for a given resource/source access. It provides a Reader handling the Close contract for the access method by connecting the access method's Close method to the Readers Close method. Additionally, the mime type is returned.

func ResourceReader

func ResourceReader(s AccessMethodSource) (io.ReadCloser, error)

ResourceReader gets a Reader for a given resource/source access. It provides a Reader handling the Close contract for the access method by connecting the access method's Close method to the Readers Close method .

func ResourceReaderForMethod

func ResourceReaderForMethod(meth AccessMethod) (io.ReadCloser, error)

func SetDefaultDigester

func SetDefaultDigester(d BlobDigester)

Types

type AccessMethod

type AccessMethod = internal.AccessMethod

type AccessMethodSource

type AccessMethodSource interface {
	AccessMethod() (AccessMethod, error)
}

type AccessMethodSupport

type AccessMethodSupport = internal.AccessMethodSupport

type AccessSpec

type AccessSpec = internal.AccessSpec

type AccessSpecDecoder

type AccessSpecDecoder = internal.AccessSpecDecoder

type AccessSpecFormatVersionRegistry

type AccessSpecFormatVersionRegistry = runtime.FormatVersionRegistry[AccessSpec]

func NewAccessSpecFormatVersionRegistry

func NewAccessSpecFormatVersionRegistry() AccessSpecFormatVersionRegistry

type AccessSpecOptionTarget

type AccessSpecOptionTarget interface {
	SetFormat(string)
	SetDescription(string)
	SetConfigHandler(flagsets.ConfigOptionTypeSetHandler)
}

type AccessSpecRef

type AccessSpecRef = internal.AccessSpecRef

func NewAccessSpecRef

func NewAccessSpecRef(spec AccessSpec) *AccessSpecRef

func NewRawAccessSpecRef

func NewRawAccessSpecRef(data []byte, unmarshaler runtime.Unmarshaler) (*AccessSpecRef, error)

type AccessSpecTypeOption

type AccessSpecTypeOption interface {
	ApplyToAccessSpecOptionTarget(AccessSpecOptionTarget)
}

func WithDescription

func WithDescription(value string) AccessSpecTypeOption

func WithFormatSpec

func WithFormatSpec(value string) AccessSpecTypeOption

type AccessType

type AccessType = internal.AccessType

func NewAccessSpecType

func NewAccessSpecType[I AccessSpec](name string, opts ...AccessSpecTypeOption) AccessType

func NewAccessSpecTypeByConverter

func NewAccessSpecTypeByConverter[I AccessSpec, V runtime.VersionedTypedObject](name string, converter runtime.Converter[I, V], opts ...AccessSpecTypeOption) AccessType

func NewAccessSpecTypeByFormatVersion

func NewAccessSpecTypeByFormatVersion(name string, fmt runtime.FormatVersion[AccessSpec], opts ...AccessSpecTypeOption) AccessType

type AccessTypeProvider

type AccessTypeProvider = internal.AccessTypeProvider

type AccessTypeScheme

type AccessTypeScheme = internal.AccessTypeScheme

type AccessTypeVersionScheme

type AccessTypeVersionScheme = runtime.TypeVersionScheme[AccessSpec, AccessType]

func NewAccessTypeVersionScheme

func NewAccessTypeVersionScheme(kind string) AccessTypeVersionScheme

type BaseAccess

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

func (*BaseAccess) Access

func (r *BaseAccess) Access() (AccessSpec, error)

func (*BaseAccess) AccessMethod

func (r *BaseAccess) AccessMethod() (AccessMethod, error)

func (*BaseAccess) ComponentVersion

func (r *BaseAccess) ComponentVersion() ComponentVersionAccess

type BlobAccess

type BlobAccess = internal.BlobAccess

type BlobAccessFactory

type BlobAccessFactory func() (BlobAccess, error)

type BlobDigester

type BlobDigester = internal.BlobDigester

type BlobDigesterRegistry

type BlobDigesterRegistry = internal.BlobDigesterRegistry

func DefaultBlobDigesterRegistry

func DefaultBlobDigesterRegistry() BlobDigesterRegistry

type BlobHandler

type BlobHandler = internal.BlobHandler

type BlobHandlerConfig

type BlobHandlerConfig = internal.BlobHandlerConfig

type BlobHandlerKey

type BlobHandlerKey = internal.BlobHandlerKey

type BlobHandlerOption

type BlobHandlerOption = internal.BlobHandlerOption

func ForArtifactType

func ForArtifactType(arttype string) BlobHandlerOption

func ForMimeType

func ForMimeType(mimetype string) BlobHandlerOption

func ForRepo

func ForRepo(ctxtype, repostype string) BlobHandlerOption

func WithPrio

func WithPrio(p int) BlobHandlerOption

type BlobHandlerOptions

type BlobHandlerOptions = internal.BlobHandlerOptions

func NewBlobHandlerOptions

func NewBlobHandlerOptions(olist ...BlobHandlerOption) *BlobHandlerOptions

type BlobHandlerRegistrationHandler

type BlobHandlerRegistrationHandler = internal.BlobHandlerRegistrationHandler

type BlobHandlerRegistry

type BlobHandlerRegistry = internal.BlobHandlerRegistry

type ComponentAccess

type ComponentAccess = internal.ComponentAccess

func NewComponentAccess

func NewComponentAccess(impl ComponentAccessImpl, kind ...string) ComponentAccess

type ComponentAccessImpl

type ComponentAccessImpl interface {
	resource.ResourceImplementation[ComponentAccess]
	internal.ComponentAccessImpl

	GetName() string
}

func GetComponentAccessImplementation

func GetComponentAccessImplementation(n ComponentAccess) (ComponentAccessImpl, error)

type ComponentAccessImplBase

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

func NewComponentAccessImplBase

func NewComponentAccessImplBase(ctx Context, name string, repo RepositoryViewManager, closer ...io.Closer) (*ComponentAccessImplBase, error)

func (*ComponentAccessImplBase) GetContext

func (b *ComponentAccessImplBase) GetContext() Context

func (*ComponentAccessImplBase) GetName

func (b *ComponentAccessImplBase) GetName() string

type ComponentAccessViewManager

type ComponentAccessViewManager = resource.ViewManager[ComponentAccess] // here you have to use an alias

type ComponentLister

type ComponentLister = internal.ComponentLister

type ComponentReference

type ComponentReference = internal.ComponentReference

type ComponentVersionAccess

type ComponentVersionAccess = internal.ComponentVersionAccess

type ComponentVersionAccessImpl

type ComponentVersionAccessImpl interface {
	resource.ResourceImplementation[ComponentVersionAccess]
	internal.ComponentVersionAccessImpl

	AccessMethod(ComponentVersionAccess, AccessSpec) (AccessMethod, error)

	GetInexpensiveContentVersionIdentity(ComponentVersionAccess, AccessSpec) string

	// GetStorageContext creates a storage context for blobs
	// that is used to feed blob handlers for specific blob storage methods.
	// If no handler accepts the blob, the AddBlobFor method will
	// be used to store the blob
	GetStorageContext(cv ComponentVersionAccess) StorageContext

	// AddBlobFor stores a local blob together with the component and
	// potentially provides a global reference according to the OCI distribution spec
	// if the blob described an oci artifact.
	// The resulting access information (global and local) is provided as
	// an access method specification usable in a component descriptor.
	// This is the direct technical storage, without caring about any handler.
	AddBlobFor(storagectx StorageContext, blob BlobAccess, refName string, global AccessSpec) (AccessSpec, error)
}

type ComponentVersionAccessImplBase

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

func NewComponentVersionAccessImplBase

func NewComponentVersionAccessImplBase(ctx Context, name, version string, repo ComponentAccessViewManager, closer ...io.Closer) (*ComponentVersionAccessImplBase, error)

func (*ComponentVersionAccessImplBase) Close

func (*ComponentVersionAccessImplBase) GetContext

func (b *ComponentVersionAccessImplBase) GetContext() Context

func (*ComponentVersionAccessImplBase) GetName

func (*ComponentVersionAccessImplBase) GetVersion

func (b *ComponentVersionAccessImplBase) GetVersion() string

type ComponentVersionAccessViewManager

type ComponentVersionAccessViewManager = resource.ViewManager[ComponentVersionAccess]

type ComponentVersionResolver

type ComponentVersionResolver = internal.ComponentVersionResolver

type Context

type Context = internal.Context

func FromProvider

func FromProvider(p ContextProvider) Context

func New

func New() Context

type ContextProvider

type ContextProvider = internal.ContextProvider

func WrapContextProvider

func WrapContextProvider(ctx LocalContextProvider) ContextProvider

type DataAccess

type DataAccess = internal.DataAccess

type DefaultAccessMethod

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

func (*DefaultAccessMethod) AccessSpec

func (m *DefaultAccessMethod) AccessSpec() AccessSpec

func (*DefaultAccessMethod) Close

func (m *DefaultAccessMethod) Close() error

func (*DefaultAccessMethod) Get

func (m *DefaultAccessMethod) Get() ([]byte, error)

func (*DefaultAccessMethod) GetKind

func (m *DefaultAccessMethod) GetKind() string

func (*DefaultAccessMethod) MimeType

func (m *DefaultAccessMethod) MimeType() string

func (*DefaultAccessMethod) Reader

func (m *DefaultAccessMethod) Reader() (io.ReadCloser, error)

type DefaultStorageContext

type DefaultStorageContext struct {
	ComponentRepository          Repository
	ComponentVersion             ComponentVersionAccess
	ImplementationRepositoryType ImplementationRepositoryType
}

func (*DefaultStorageContext) GetContext

func (c *DefaultStorageContext) GetContext() internal.Context

func (*DefaultStorageContext) GetImplementationRepositoryType

func (c *DefaultStorageContext) GetImplementationRepositoryType() ImplementationRepositoryType

func (*DefaultStorageContext) TargetComponentRepository

func (c *DefaultStorageContext) TargetComponentRepository() internal.Repository

func (*DefaultStorageContext) TargetComponentVersion

func (c *DefaultStorageContext) TargetComponentVersion() internal.ComponentVersionAccess

type DigestDescriptor

type DigestDescriptor = internal.DigestDescriptor

func NewDigestDescriptor

func NewDigestDescriptor(digest string, typ DigesterType) *DigestDescriptor

type DigesterType

type DigesterType = internal.DigesterType

type DummyComponentVersionAccess

type DummyComponentVersionAccess struct {
	Context Context
}

func (*DummyComponentVersionAccess) AccessMethod

func (d *DummyComponentVersionAccess) AccessMethod(spec AccessSpec) (AccessMethod, error)

func (*DummyComponentVersionAccess) AddBlob

func (d *DummyComponentVersionAccess) AddBlob(blob BlobAccess, arttype, refName string, global AccessSpec) (AccessSpec, error)

func (*DummyComponentVersionAccess) AdjustResourceAccess

func (d *DummyComponentVersionAccess) AdjustResourceAccess(meta *internal.ResourceMeta, acc compdesc.AccessSpec) error

func (*DummyComponentVersionAccess) AdjustSourceAccess

func (d *DummyComponentVersionAccess) AdjustSourceAccess(meta *internal.SourceMeta, acc compdesc.AccessSpec) error

func (*DummyComponentVersionAccess) Close

func (*DummyComponentVersionAccess) DiscardChanges

func (d *DummyComponentVersionAccess) DiscardChanges()

func (*DummyComponentVersionAccess) Dup

func (*DummyComponentVersionAccess) GetContext

func (d *DummyComponentVersionAccess) GetContext() Context

func (*DummyComponentVersionAccess) GetDescriptor

func (*DummyComponentVersionAccess) GetInexpensiveContentVersionIdentity

func (d *DummyComponentVersionAccess) GetInexpensiveContentVersionIdentity(spec AccessSpec) string

func (*DummyComponentVersionAccess) GetName

func (d *DummyComponentVersionAccess) GetName() string

func (*DummyComponentVersionAccess) GetReference

func (*DummyComponentVersionAccess) GetReferenceByIndex

func (d *DummyComponentVersionAccess) GetReferenceByIndex(i int) (ComponentReference, error)

func (*DummyComponentVersionAccess) GetReferencesByIdentitySelectors

func (d *DummyComponentVersionAccess) GetReferencesByIdentitySelectors(selectors ...compdesc.IdentitySelector) (compdesc.References, error)

func (*DummyComponentVersionAccess) GetReferencesByName

func (d *DummyComponentVersionAccess) GetReferencesByName(name string, selectors ...compdesc.IdentitySelector) (compdesc.References, error)

func (*DummyComponentVersionAccess) GetReferencesByReferenceSelectors

func (d *DummyComponentVersionAccess) GetReferencesByReferenceSelectors(selectors ...compdesc.ReferenceSelector) (compdesc.References, error)

func (*DummyComponentVersionAccess) GetResource

func (*DummyComponentVersionAccess) GetResourceByIndex

func (d *DummyComponentVersionAccess) GetResourceByIndex(i int) (ResourceAccess, error)

func (*DummyComponentVersionAccess) GetResources

func (d *DummyComponentVersionAccess) GetResources() []ResourceAccess

func (*DummyComponentVersionAccess) GetResourcesByIdentitySelectors

func (d *DummyComponentVersionAccess) GetResourcesByIdentitySelectors(selectors ...compdesc.IdentitySelector) ([]internal.ResourceAccess, error)

func (*DummyComponentVersionAccess) GetResourcesByName

func (d *DummyComponentVersionAccess) GetResourcesByName(name string, selectors ...compdesc.IdentitySelector) ([]ResourceAccess, error)

func (*DummyComponentVersionAccess) GetResourcesByResourceSelectors

func (d *DummyComponentVersionAccess) GetResourcesByResourceSelectors(selectors ...compdesc.ResourceSelector) ([]internal.ResourceAccess, error)

func (*DummyComponentVersionAccess) GetSource

func (*DummyComponentVersionAccess) GetSourceByIndex

func (d *DummyComponentVersionAccess) GetSourceByIndex(i int) (SourceAccess, error)

func (*DummyComponentVersionAccess) GetSources

func (d *DummyComponentVersionAccess) GetSources() []SourceAccess

func (*DummyComponentVersionAccess) GetVersion

func (d *DummyComponentVersionAccess) GetVersion() string

func (*DummyComponentVersionAccess) IsClosed

func (d *DummyComponentVersionAccess) IsClosed() bool

func (*DummyComponentVersionAccess) Repository

func (c *DummyComponentVersionAccess) Repository() Repository

func (*DummyComponentVersionAccess) SetReference

func (*DummyComponentVersionAccess) SetResource

func (*DummyComponentVersionAccess) SetResourceBlob

func (d *DummyComponentVersionAccess) SetResourceBlob(meta *ResourceMeta, blob BlobAccess, refname string, global AccessSpec) error

func (*DummyComponentVersionAccess) SetSource

func (*DummyComponentVersionAccess) SetSourceBlob

func (d *DummyComponentVersionAccess) SetSourceBlob(meta *SourceMeta, blob BlobAccess, refname string, global AccessSpec) error

type GenericAccessSpec

type GenericAccessSpec = internal.GenericAccessSpec

type GenericRepositorySpec

type GenericRepositorySpec = internal.GenericRepositorySpec

func ToGenericRepositorySpec

func ToGenericRepositorySpec(spec RepositorySpec) (*GenericRepositorySpec, error)

type HintProvider

type HintProvider internal.HintProvider

HintProvider is able to provide a name hint for globalization of local artifacts.

type ImplementationRepositoryType

type ImplementationRepositoryType = internal.ImplementationRepositoryType

type IntermediateRepositorySpecAspect

type IntermediateRepositorySpecAspect = internal.IntermediateRepositorySpecAspect

type LocalContextProvider

type LocalContextProvider = internal.LocalContextProvider

type NamePath

type NamePath = registrations.NamePath

func NewNamePath

func NewNamePath(p string) NamePath

type OCMContextProvider

type OCMContextProvider interface {
	GetContext() Context
}

type ParseHandler

type ParseHandler func(u *UniformRepositorySpec) error

type PrefixProvider

type PrefixProvider interface {
	PathPrefix() string
}

PrefixProvider is supported by RepositorySpecs to provide info about a potential path prefix to use for globalized local artifacts.

type References

type References = compdesc.References

type Repository

type Repository = internal.Repository

func NewNoneRefRepositoryView

func NewNoneRefRepositoryView(i RepositoryImpl) Repository

NewNoneRefRepositoryView provides a repository reflecting the state of the view manager without holding an additional reference.

func NewRepository

func NewRepository(impl RepositoryImpl, name ...string) Repository

type RepositoryAccessMethodChecker

type RepositoryAccessMethodChecker func(Context, compdesc.AccessSpec) bool

type RepositoryDelegationRegistry

type RepositoryDelegationRegistry = internal.RepositoryDelegationRegistry

func DefaultDelegationRegistry

func DefaultDelegationRegistry() RepositoryDelegationRegistry

type RepositoryImpl

func GetRepositoryImplementation

func GetRepositoryImplementation(n Repository) (RepositoryImpl, error)

type RepositoryImplBase

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

func NewRepositoryImplBase

func NewRepositoryImplBase(ctx Context, closer ...io.Closer) *RepositoryImplBase

func (*RepositoryImplBase) GetContext

func (b *RepositoryImplBase) GetContext() Context

type RepositorySpec

type RepositorySpec = internal.RepositorySpec

type RepositorySpecDecoder

type RepositorySpecDecoder = internal.RepositorySpecDecoder

type RepositorySpecHandler

type RepositorySpecHandler = internal.RepositorySpecHandler

type RepositorySpecHandlers

type RepositorySpecHandlers = internal.RepositorySpecHandlers

type RepositoryTypeProvider

type RepositoryTypeProvider = internal.RepositoryTypeProvider

type RepositoryTypeScheme

type RepositoryTypeScheme = internal.RepositoryTypeScheme

type RepositoryTypeVersionScheme

type RepositoryTypeVersionScheme = runtime.TypeVersionScheme[RepositorySpec, RepositoryType]

func NewRepositoryTypeVersionScheme

func NewRepositoryTypeVersionScheme(kind string) RepositoryTypeVersionScheme

type RepositoryViewManager

type RepositoryViewManager = resource.ViewManager[Repository] // here you have to use an alias

type ResourceAccess

type ResourceAccess = internal.ResourceAccess

type ResourceAccessImpl

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

func (*ResourceAccessImpl) Meta

func (r *ResourceAccessImpl) Meta() *ResourceMeta

type ResourceMeta

type ResourceMeta = internal.ResourceMeta

type SourceAccess

type SourceAccess = internal.SourceAccess

type SourceAccessImpl

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

func (SourceAccessImpl) Meta

func (r SourceAccessImpl) Meta() *SourceMeta

type SourceMeta

type SourceMeta = internal.SourceMeta

type StorageContext

type StorageContext = internal.StorageContext

Directories

Path Synopsis
Package support provides a standard implementation for the object type set required to implement the OCM repository interface.
Package support provides a standard implementation for the object type set required to implement the OCM repository interface.

Jump to

Keyboard shortcuts

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