gem

package
v0.0.0-...-2373d08 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2021 License: Apache-2.0, BSD-2-Clause, MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultPath = "controller-registration.yaml"
)

Variables

View Source
var (
	// Solve is an alias for `Default.Solve`.
	Solve = Default.Solve
	// Fetch is an alias for `Default.Fetch`.
	Fetch = Default.Fetch
	// Ensure is an alias for `Default.Ensure`.
	Ensure = Default.Ensure
)
View Source
var GardenCoreCodec runtime.Codec

Functions

func LoadControllerRegistration

func LoadControllerRegistration(r io.Reader) ([]runtime.Object, error)

func LoadLocks

func LoadLocks(data []byte) (*gemapi.Locks, error)

func LoadLocksFromFile

func LoadLocksFromFile(filename string) (*gemapi.Locks, error)

func LoadRequirements

func LoadRequirements(data []byte) (*gemapi.Requirements, error)

func LoadRequirementsFromFile

func LoadRequirementsFromFile(filename string) (*gemapi.Requirements, error)

func WriteLocks

func WriteLocks(locks *gemapi.Locks) ([]byte, error)

func WriteLocksInto

func WriteLocksInto(locks *gemapi.Locks, w io.Writer) error

func WriteLocksToFile

func WriteLocksToFile(locks *gemapi.Locks, filename string) error

func WriteRequirements

func WriteRequirements(requirements *gemapi.Requirements) ([]byte, error)

func WriteRequirementsInto

func WriteRequirementsInto(requirements *gemapi.Requirements, w io.Writer) error

func WriteRequirementsToFile

func WriteRequirementsToFile(requirements *gemapi.Requirements, filename string) error

Types

type Interface

type Interface interface {
	Repository(repositoryName string) (RepositoryInterface, error)
	Solve(requirements *gemapi.Requirements) (*gemapi.Locks, error)
	Fetch(requirements *gemapi.Requirements, locks *gemapi.Locks) ([]runtime.Object, error)
	Ensure(requirements *gemapi.Requirements, locks *gemapi.Locks, updatePolicy UpdatePolicy) (*gemapi.Locks, error)
}

func New

func New(log logrus.FieldLogger, registry RepositoryRegistry, targetSolverFactory TargetSolverFactory) Interface

type ModuleKeySet

type ModuleKeySet map[gemapi.ModuleKey]struct{}

func NewModuleKeySet

func NewModuleKeySet(keys ...gemapi.ModuleKey) ModuleKeySet

func (ModuleKeySet) Has

func (u ModuleKeySet) Has(key gemapi.ModuleKey) bool

func (ModuleKeySet) Insert

func (u ModuleKeySet) Insert(keys ...gemapi.ModuleKey)

func (ModuleKeySet) Len

func (u ModuleKeySet) Len() int

func (ModuleKeySet) UnsortedList

func (u ModuleKeySet) UnsortedList() []gemapi.ModuleKey

type Repository

type Repository interface {
	Revision(name string) (string, error)
	Branch(name string) (string, error)
	Versions() ([]RepositoryVersion, error)
	Latest() (string, error)
	File(hash, path string) (io.Reader, error)
	HasFile(hash, path string) (bool, error)
}

func NewCachingRepository

func NewCachingRepository(repository Repository) Repository

func NewGitRepository

func NewGitRepository(repo *git.Repository) Repository

type RepositoryInterface

type RepositoryInterface interface {
	SolveTarget(target gemapi.Target) (*gemapi.Lock, error)
	Verify(submodule string, requirement *gemapi.Requirement, lock *gemapi.Lock) error
	Solve(submodule string, requirement *gemapi.Requirement) (*gemapi.Lock, error)
	Ensure(submodule string, requirement *gemapi.Requirement, lock *gemapi.Lock, update bool) (*gemapi.Lock, error)
	Fetch(submodule string, requirement *gemapi.Requirement, lock *gemapi.Lock) ([]runtime.Object, error)
}

func NewRepositoryInterface

func NewRepositoryInterface(targetSolver TargetSolver, repository Repository) RepositoryInterface

type RepositoryRegistry

type RepositoryRegistry interface {
	Repository(name string) (Repository, error)
}
var GitRepositoryRegistry RepositoryRegistry = gitRepositoryRegistry{}

func NewRepositoryRegistryCache

func NewRepositoryRegistryCache(registry RepositoryRegistry) RepositoryRegistry

func NewRepositoryRegistryCachingRepositoryWrapper

func NewRepositoryRegistryCachingRepositoryWrapper(registry RepositoryRegistry) RepositoryRegistry

type RepositoryVersion

type RepositoryVersion struct {
	Name    string
	Hash    string
	Version semver.Version
}

type TargetSolver

type TargetSolver interface {
	Solve(target gemapi.Target) (*gemapi.Lock, error)
}

func NewSolver

func NewSolver(repo Repository) TargetSolver

type TargetSolverFactory

type TargetSolverFactory interface {
	New(repository Repository) TargetSolver
}

type TargetSolverFactoryFunc

type TargetSolverFactoryFunc func(repository Repository) TargetSolver

func (TargetSolverFactoryFunc) New

type UpdatePolicy

type UpdatePolicy interface {
	ShouldUpdateModule(key gemapi.ModuleKey) bool
}
var UpdateAll UpdatePolicy = updateAll{}

func UpdateModuleKeySet

func UpdateModuleKeySet(set ModuleKeySet) UpdatePolicy

Directories

Path Synopsis
api
Package api contains API schema definitions for the gem internal API group.
Package api contains API schema definitions for the gem internal API group.
v1alpha1
Package v1alpha1 contains API schema definitions for the gem v1alpha1 API group.
Package v1alpha1 contains API schema definitions for the gem v1alpha1 API group.

Jump to

Keyboard shortcuts

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