support

package
v0.3.0-rc.2 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

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

This implementation is based on three interfaces that have to implemented:

  • BlobContainer is used to provide access to blob data
  • ComponentVersionContainer is used to provide access to component version for component.

The function NewComponentVersionAccess can be used to create an object implementing the complete ComponentVersionAccess contract.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Logger

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

Types

type AccessCheckError

type AccessCheckError struct {
	Name    string
	Version string
	Type    string

	Original error
}

func (AccessCheckError) Error

func (e AccessCheckError) Error() string

func (AccessCheckError) Unwrap

func (e AccessCheckError) Unwrap() error

type BaseAccess

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

func (*BaseAccess) Access

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

func (*BaseAccess) AccessMethod

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

type BlobContainer

type BlobContainer interface {
	GetBlobData(name string) (cpi.DataAccess, error)

	// GetStorageContext creates a storage context for blobs
	// that is used to feed blob handlers for specific blob starage methods.
	// If no handler accepts the blob, the AddBlobFor method will
	// be ued toi store the blob
	GetStorageContext(cv cpi.ComponentVersionAccess) cpi.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 cpi.StorageContext, blob cpi.BlobAccess, refName string, global cpi.AccessSpec) (cpi.AccessSpec, error)
}

BlobContainer is the interface for an element capable to store blobs.

type ComponentVersionAccess

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

func NewComponentVersionAccess

func NewComponentVersionAccess(container ComponentVersionContainer, lazy bool, persistent bool) (*ComponentVersionAccess, error)

func (ComponentVersionAccess) AccessMethod

func (c ComponentVersionAccess) AccessMethod(a cpi.AccessSpec) (cpi.AccessMethod, error)

func (ComponentVersionAccess) AddBlob

func (a ComponentVersionAccess) AddBlob(blob cpi.BlobAccess, artType, refName string, global cpi.AccessSpec) (cpi.AccessSpec, error)

func (ComponentVersionAccess) AdjustResourceAccess

func (c ComponentVersionAccess) AdjustResourceAccess(meta *cpi.ResourceMeta, acc compdesc.AccessSpec) error

func (*ComponentVersionAccess) Close

func (s *ComponentVersionAccess) Close() error

func (ComponentVersionAccess) DiscardChanges

func (a ComponentVersionAccess) DiscardChanges()

func (*ComponentVersionAccess) Dup

func (*ComponentVersionAccess) EnablePersistence

func (s *ComponentVersionAccess) EnablePersistence()

func (ComponentVersionAccess) GetContext

func (a ComponentVersionAccess) GetContext() cpi.Context

func (ComponentVersionAccess) GetDescriptor

func (a ComponentVersionAccess) GetDescriptor() *compdesc.ComponentDescriptor

func (ComponentVersionAccess) GetName

func (a ComponentVersionAccess) GetName() string

func (ComponentVersionAccess) GetReference

func (a ComponentVersionAccess) GetReference(id metav1.Identity) (cpi.ComponentReference, error)

func (ComponentVersionAccess) GetReferenceByIndex

func (a ComponentVersionAccess) GetReferenceByIndex(i int) (cpi.ComponentReference, error)

func (ComponentVersionAccess) GetResource

func (a ComponentVersionAccess) GetResource(id metav1.Identity) (cpi.ResourceAccess, error)

func (ComponentVersionAccess) GetResourceByIndex

func (a ComponentVersionAccess) GetResourceByIndex(i int) (cpi.ResourceAccess, error)

func (ComponentVersionAccess) GetResources

func (a ComponentVersionAccess) GetResources() []cpi.ResourceAccess

func (ComponentVersionAccess) GetResourcesByName

func (a ComponentVersionAccess) GetResourcesByName(name string, selectors ...compdesc.IdentitySelector) ([]cpi.ResourceAccess, error)

func (ComponentVersionAccess) GetSource

func (a ComponentVersionAccess) GetSource(id metav1.Identity) (cpi.SourceAccess, error)

func (ComponentVersionAccess) GetSourceByIndex

func (a ComponentVersionAccess) GetSourceByIndex(i int) (cpi.SourceAccess, error)

func (ComponentVersionAccess) GetSources

func (a ComponentVersionAccess) GetSources() []cpi.SourceAccess

func (ComponentVersionAccess) GetVersion

func (a ComponentVersionAccess) GetVersion() string

func (*ComponentVersionAccess) IsClosed

func (s *ComponentVersionAccess) IsClosed() bool

func (ComponentVersionAccess) IsReadOnly

func (a ComponentVersionAccess) IsReadOnly() bool

func (ComponentVersionAccess) Repository

func (c ComponentVersionAccess) Repository() cpi.Repository

func (ComponentVersionAccess) SetReference

func (c ComponentVersionAccess) SetReference(ref *cpi.ComponentReference) error

func (ComponentVersionAccess) SetResource

func (c ComponentVersionAccess) SetResource(meta *cpi.ResourceMeta, acc compdesc.AccessSpec) error

func (ComponentVersionAccess) SetResourceBlob

func (c ComponentVersionAccess) SetResourceBlob(meta *cpi.ResourceMeta, blob cpi.BlobAccess, refName string, global cpi.AccessSpec) error

AddResource adds a blob resource to the current archive.

func (ComponentVersionAccess) SetSource

func (c ComponentVersionAccess) SetSource(meta *cpi.SourceMeta, acc compdesc.AccessSpec) error

func (ComponentVersionAccess) SetSourceBlob

func (c ComponentVersionAccess) SetSourceBlob(meta *cpi.SourceMeta, blob cpi.BlobAccess, refName string, global cpi.AccessSpec) error

func (ComponentVersionAccess) Update

func (a ComponentVersionAccess) Update(final bool) error

func (ComponentVersionAccess) View

func (a ComponentVersionAccess) View(main ...bool) (*ComponentVersionAccess, error)

type ComponentVersionContainer

type ComponentVersionContainer interface {
	GetContext() cpi.Context

	Repository() cpi.Repository

	IsReadOnly() bool
	IsClosed() bool
	Update() error

	GetDescriptor() *compdesc.ComponentDescriptor

	BlobContainer

	io.Closer

	AccessMethod(a cpi.AccessSpec) (cpi.AccessMethod, error)
}

ComponentVersionContainer is the interface of an element hosting a component version.

type ContextProvider

type ContextProvider interface {
	GetContext() cpi.Context
}

type ResourceAccess

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

func (ResourceAccess) Meta

func (r ResourceAccess) Meta() *cpi.ResourceMeta

type SourceAccess

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

func (SourceAccess) Meta

func (r SourceAccess) Meta() *cpi.SourceMeta

type UpdateComponentVersionContainerError

type UpdateComponentVersionContainerError struct {
	Name    string
	Version string
	Type    string

	Original error
}

func (UpdateComponentVersionContainerError) Error

func (UpdateComponentVersionContainerError) Unwrap

Jump to

Keyboard shortcuts

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