claimmanager

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: May 31, 2024 License: Apache-2.0 Imports: 5 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClaimManager

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

func New

func New(
	claimer client.Object,
	selector Selector,
	strategy ClaimStrategy,
) *ClaimManager

func (*ClaimManager) Claim

func (r *ClaimManager) Claim(
	ctx context.Context,
	obj client.Object,
) (bool, error)

type ClaimState

type ClaimState uint8
const (
	ClaimStateInvalid ClaimState = iota
	ClaimStateFree
	ClaimStateClaimed
	ClaimStateTaken
)

type ClaimStrategy

type ClaimStrategy interface {
	ClaimState(claimer client.Object, obj client.Object) ClaimState
	Adopt(ctx context.Context, claimer client.Object, obj client.Object) error
	Release(ctx context.Context, claimer client.Object, obj client.Object) error
}

type ClaimStrategyFuncs

type ClaimStrategyFuncs struct {
	ClaimStateFunc func(claimer client.Object, obj client.Object) ClaimState
	AdoptFunc      func(ctx context.Context, claimer client.Object, obj client.Object) error
	ReleaseFunc    func(ctx context.Context, claimer client.Object, obj client.Object) error
}

func (ClaimStrategyFuncs) Adopt

func (f ClaimStrategyFuncs) Adopt(ctx context.Context, claimer client.Object, obj client.Object) error

func (ClaimStrategyFuncs) ClaimState

func (f ClaimStrategyFuncs) ClaimState(claimer client.Object, obj client.Object) ClaimState

func (ClaimStrategyFuncs) Release

func (f ClaimStrategyFuncs) Release(ctx context.Context, claimer client.Object, obj client.Object) error

type MatchingLabelSelector

type MatchingLabelSelector struct {
	Selector labels.Selector
}

func MatchingLabels

func MatchingLabels(lbls map[string]string) MatchingLabelSelector

func (MatchingLabelSelector) Match

func (s MatchingLabelSelector) Match(obj client.Object) bool

type Selector

type Selector interface {
	Match(obj client.Object) bool
}

func EverythingSelector

func EverythingSelector() Selector

func NothingSelector

func NothingSelector() Selector

type SelectorFunc

type SelectorFunc func(obj client.Object) bool

func (SelectorFunc) Match

func (f SelectorFunc) Match(obj client.Object) bool

Jump to

Keyboard shortcuts

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