From c80d308128d6f2fee46822482496259c57043672 Mon Sep 17 00:00:00 2001 From: gmarek Date: Wed, 26 Oct 2016 14:59:08 +0200 Subject: [PATCH] Scheduler Reduce functions can use PriorityMetadata --- plugin/pkg/scheduler/algorithm/priorities/node_affinity.go | 2 +- plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go | 2 +- plugin/pkg/scheduler/algorithm/priorities/test_util.go | 2 +- plugin/pkg/scheduler/algorithm/types.go | 2 +- plugin/pkg/scheduler/generic_scheduler.go | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go b/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go index 4c843a62ba7..998bbb76162 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go +++ b/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go @@ -78,7 +78,7 @@ func CalculateNodeAffinityPriorityMap(pod *api.Pod, meta interface{}, nodeInfo * }, nil } -func CalculateNodeAffinityPriorityReduce(pod *api.Pod, result schedulerapi.HostPriorityList) error { +func CalculateNodeAffinityPriorityReduce(pod *api.Pod, meta interface{}, result schedulerapi.HostPriorityList) error { var maxCount int for i := range result { if result[i].Score > maxCount { diff --git a/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go b/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go index 36fa0312fdb..550d299b088 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go +++ b/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go @@ -88,7 +88,7 @@ func ComputeTaintTolerationPriorityMap(pod *api.Pod, meta interface{}, nodeInfo }, nil } -func ComputeTaintTolerationPriorityReduce(pod *api.Pod, result schedulerapi.HostPriorityList) error { +func ComputeTaintTolerationPriorityReduce(pod *api.Pod, meta interface{}, result schedulerapi.HostPriorityList) error { var maxCount int for i := range result { if result[i].Score > maxCount { diff --git a/plugin/pkg/scheduler/algorithm/priorities/test_util.go b/plugin/pkg/scheduler/algorithm/priorities/test_util.go index 5ed9f89bbbe..de6e584e9e3 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/test_util.go +++ b/plugin/pkg/scheduler/algorithm/priorities/test_util.go @@ -51,7 +51,7 @@ func priorityFunction(mapFn algorithm.PriorityMapFunction, reduceFn algorithm.Pr result = append(result, hostResult) } if reduceFn != nil { - if err := reduceFn(pod, result); err != nil { + if err := reduceFn(pod, nil, result); err != nil { return nil, err } } diff --git a/plugin/pkg/scheduler/algorithm/types.go b/plugin/pkg/scheduler/algorithm/types.go index 8034df6b866..9eac066d378 100644 --- a/plugin/pkg/scheduler/algorithm/types.go +++ b/plugin/pkg/scheduler/algorithm/types.go @@ -36,7 +36,7 @@ type PriorityMapFunction func(pod *api.Pod, meta interface{}, nodeInfo *schedule // final scores for all nodes. // TODO: Figure out the exact API of this method. // TODO: Change interface{} to a specific type. -type PriorityReduceFunction func(pod *api.Pod, result schedulerapi.HostPriorityList) error +type PriorityReduceFunction func(pod *api.Pod, meta interface{}, result schedulerapi.HostPriorityList) error // MetdataProducer is a function that computes metadata for a given pod. type MetadataProducer func(pod *api.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo) interface{} diff --git a/plugin/pkg/scheduler/generic_scheduler.go b/plugin/pkg/scheduler/generic_scheduler.go index 649d88b7f70..9bdbc0ecbcc 100644 --- a/plugin/pkg/scheduler/generic_scheduler.go +++ b/plugin/pkg/scheduler/generic_scheduler.go @@ -315,7 +315,7 @@ func PrioritizeNodes( wg.Add(1) go func(index int, config algorithm.PriorityConfig) { defer wg.Done() - if err := config.Reduce(pod, results[index]); err != nil { + if err := config.Reduce(pod, meta, results[index]); err != nil { appendError(err) } }(i, priorityConfig)