Documentation ¶
Index ¶
- type BidStrategy
- type BidStrategyRequest
- type BidStrategyResponse
- type CallbackBidStrategy
- type ChainedBidStrategy
- func (c *ChainedBidStrategy) AddStrategy(opts ...StrategyOpt)
- func (c *ChainedBidStrategy) ShouldBid(ctx context.Context, request BidStrategyRequest) (BidStrategyResponse, error)
- func (c *ChainedBidStrategy) ShouldBidBasedOnUsage(ctx context.Context, request BidStrategyRequest, usage model.ResourceUsageData) (BidStrategyResponse, error)
- type JobSelectionPolicyProbeData
- type ModerateJobRequest
- type ResourceBidStrategy
- type SemanticBidStrategy
- type StrategyOpt
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 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
func (s *CallbackBidStrategy) ShouldBid(ctx context.Context, request BidStrategyRequest) (BidStrategyResponse, error)
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 ¶
func (c *ChainedBidStrategy) ShouldBid(ctx context.Context, request BidStrategyRequest) (BidStrategyResponse, error)
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