bidstrategy

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BidStrategy

type BidStrategy interface {
	SemanticBidStrategy
	ResourceBidStrategy
}

func NewWaitingStrategy added in v0.3.26

func NewWaitingStrategy(underlying BidStrategy, waitOnBid, waitOnNoBid bool) BidStrategy

type BidStrategyRequest

type BidStrategyRequest struct {
	NodeID   string
	Job      model.Job
	Callback *url.URL
}

type BidStrategyResponse

type BidStrategyResponse struct {
	ShouldBid  bool   `json:"shouldBid"`
	ShouldWait bool   `json:"shouldWait"`
	Reason     string `json:"reason"`
}

func NewShouldBidResponse

func NewShouldBidResponse() BidStrategyResponse

type CallbackBidStrategy added in v0.3.26

type CallbackBidStrategy struct {
	OnShouldBid             func(context.Context, BidStrategyRequest) (BidStrategyResponse, error)
	OnShouldBidBasedOnUsage func(context.Context, BidStrategyRequest, model.ResourceUsageData) (BidStrategyResponse, error)
}

func NewFixedBidStrategy added in v0.3.25

func NewFixedBidStrategy(response, wait bool) *CallbackBidStrategy

FixedBidStrategy is a bid strategy that always returns the same response, which is useful for testing

func (*CallbackBidStrategy) ShouldBid added in v0.3.26

ShouldBid implements BidStrategy

func (*CallbackBidStrategy) ShouldBidBasedOnUsage added in v0.3.26

func (s *CallbackBidStrategy) ShouldBidBasedOnUsage(
	ctx context.Context,
	request BidStrategyRequest,
	resourceUsage model.ResourceUsageData,
) (BidStrategyResponse, error)

ShouldBidBasedOnUsage implements BidStrategy

type ChainedBidStrategy

type ChainedBidStrategy struct {
	Semantics []SemanticBidStrategy
	Resources []ResourceBidStrategy
}

func NewChainedBidStrategy

func NewChainedBidStrategy(opts ...StrategyOpt) *ChainedBidStrategy

func (*ChainedBidStrategy) AddStrategy

func (c *ChainedBidStrategy) AddStrategy(opts ...StrategyOpt)

AddStrategy Add new strategy to the end of the chain NOTE: this is not thread safe.

func (*ChainedBidStrategy) ShouldBid

ShouldBid Iterate over all strategies, and return shouldBid if no error is thrown and none of the strategies return should not bid.

func (*ChainedBidStrategy) ShouldBidBasedOnUsage

func (c *ChainedBidStrategy) ShouldBidBasedOnUsage(
	ctx context.Context, request BidStrategyRequest, usage model.ResourceUsageData) (BidStrategyResponse, error)

ShouldBidBasedOnUsage Iterate over all strategies, and return shouldBid if no error is thrown and none of the strategies return should not bid.

type JobSelectionPolicyProbeData

type JobSelectionPolicyProbeData struct {
	NodeID   string     `json:"node_id"`
	JobID    string     `json:"job_id"`
	Spec     model.Spec `json:"spec"`
	Callback *url.URL   `json:"callback"`
}

the JSON data we send to http or exec probes TODO: can we just use the BidStrategyRequest struct?

func GetJobSelectionPolicyProbeData added in v1.0.0

func GetJobSelectionPolicyProbeData(request BidStrategyRequest) JobSelectionPolicyProbeData

Return JobSelectionPolicyProbeData for the given request

type ModerateJobRequest added in v0.3.26

type ModerateJobRequest struct {
	ClientID string
	JobID    string
	Response BidStrategyResponse
}

func (ModerateJobRequest) GetClientID added in v0.3.26

func (mjr ModerateJobRequest) GetClientID() string

type ResourceBidStrategy added in v1.0.0

type ResourceBidStrategy interface {
	ShouldBidBasedOnUsage(ctx context.Context, request BidStrategyRequest, usage model.ResourceUsageData) (BidStrategyResponse, error)
}

type SemanticBidStrategy added in v1.0.0

type SemanticBidStrategy interface {
	ShouldBid(ctx context.Context, request BidStrategyRequest) (BidStrategyResponse, error)
}

type StrategyOpt added in v1.0.0

type StrategyOpt func(strategy *ChainedBidStrategy)

func WithResources added in v1.0.0

func WithResources(strategy ...ResourceBidStrategy) StrategyOpt

func WithSemantics added in v1.0.0

func WithSemantics(strategy ...SemanticBidStrategy) StrategyOpt

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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