From c26ebf48bbd54a50b0ec946fe9d876b5e7f5eb29 Mon Sep 17 00:00:00 2001 From: Armon Dadgar Date: Thu, 13 Aug 2015 13:52:20 -0700 Subject: [PATCH] scheduler: allow changing parameters mid-stream --- scheduler/feasible.go | 8 ++++++++ scheduler/rank.go | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/scheduler/feasible.go b/scheduler/feasible.go index 8b6f2da2a..065d0af98 100644 --- a/scheduler/feasible.go +++ b/scheduler/feasible.go @@ -80,6 +80,10 @@ func NewDriverIterator(ctx Context, source FeasibleIterator, drivers map[string] return iter } +func (iter *DriverIterator) SetDrivers(d map[string]struct{}) { + iter.drivers = d +} + func (iter *DriverIterator) Next() *structs.Node { for { // Get the next option from the source @@ -128,6 +132,10 @@ func NewConstraintIterator(ctx Context, source FeasibleIterator, constraints []* return iter } +func (iter *ConstraintIterator) SetConstraints(c []*structs.Constraint) { + iter.constraints = c +} + func (iter *ConstraintIterator) Next() *structs.Node { for { // Get the next option from the source diff --git a/scheduler/rank.go b/scheduler/rank.go index 1f4fdb326..23c55806b 100644 --- a/scheduler/rank.go +++ b/scheduler/rank.go @@ -105,6 +105,10 @@ func NewBinPackIterator(ctx Context, source RankIterator, resources *structs.Res return iter } +func (iter *BinPackIterator) SetResources(r *structs.Resources) { + iter.resources = r +} + func (iter *BinPackIterator) Next() *RankedNode { ctx := iter.ctx state := ctx.State()