pkgsolver

package
v0.0.0-...-25f2897 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2020 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultPackageSolversMap = PackageSolversMap{

	APT: func(solver statesolver.StateSolver) PackageSolver {
		return NewAPTSolver(solver)
	},
	APK: func(solver statesolver.StateSolver) PackageSolver {
		return NewAPKSolver(solver)
	},
}

DefaultPackageSolversMap contains the default set of package solver factories used by zbuild (and zbuilder).

Functions

This section is empty.

Types

type APKSolver

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

func (*APKSolver) ResolveVersions

func (s *APKSolver) ResolveVersions(
	ctx context.Context,
	imageRef string,
	pkgs map[string]string,
) (map[string]string, error)

type APTSolver

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

func NewAPTSolver

func NewAPTSolver(solver statesolver.StateSolver) *APTSolver

func (*APTSolver) ResolveVersions

func (s *APTSolver) ResolveVersions(
	ctx context.Context,
	imageRef string,
	pkgs map[string]string,
) (map[string]string, error)

type PackageSolver

type PackageSolver interface {
	// ResolveVersions takes the reference of a container image where the
	// resolution should happen as first arg. It also takes a map of packages
	// to resolve associated with their version constraint. It returns a map of
	// packages associated with their resolved version. It returns an error if
	// one of the package cannot be resolved.
	//
	// The set of supported version constraint formats depends of each
	// implementation.
	ResolveVersions(ctx context.Context, imageRef string, pkgs map[string]string) (map[string]string, error)
}

PackageSolver is an interface used by specialzed defkinds to lock system packages.

Note that PackageSolvers are structs that implement this interface instead of just being functions implementing ResolveVersions signature because gomock supports only interfaces.

func NewAPKSolver

func NewAPKSolver(solver statesolver.StateSolver) PackageSolver

type PackageSolversMap

type PackageSolversMap map[SolverType]func(statesolver.StateSolver) PackageSolver

PackageSolversMap is a list of SolverType associated to matching factories for PackageSolver implementations. Specialized defkind handlers use this to pin packages to specific versions.

func (PackageSolversMap) New

func (pkgSolvers PackageSolversMap) New(
	solverType SolverType,
	solver statesolver.StateSolver,
) PackageSolver

New create a new PackageSolver for the given SolverType.

type SolverType

type SolverType string
const (
	APT SolverType = "apt"
	APK SolverType = "apk"
)

Jump to

Keyboard shortcuts

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