Scheduler Reduce functions can use PriorityMetadata

pull/6/head
gmarek 2016-10-26 14:59:08 +02:00
parent 85fe0f1aad
commit c80d308128
5 changed files with 5 additions and 5 deletions

View File

@ -78,7 +78,7 @@ func CalculateNodeAffinityPriorityMap(pod *api.Pod, meta interface{}, nodeInfo *
}, nil }, nil
} }
func CalculateNodeAffinityPriorityReduce(pod *api.Pod, result schedulerapi.HostPriorityList) error { func CalculateNodeAffinityPriorityReduce(pod *api.Pod, meta interface{}, result schedulerapi.HostPriorityList) error {
var maxCount int var maxCount int
for i := range result { for i := range result {
if result[i].Score > maxCount { if result[i].Score > maxCount {

View File

@ -88,7 +88,7 @@ func ComputeTaintTolerationPriorityMap(pod *api.Pod, meta interface{}, nodeInfo
}, nil }, nil
} }
func ComputeTaintTolerationPriorityReduce(pod *api.Pod, result schedulerapi.HostPriorityList) error { func ComputeTaintTolerationPriorityReduce(pod *api.Pod, meta interface{}, result schedulerapi.HostPriorityList) error {
var maxCount int var maxCount int
for i := range result { for i := range result {
if result[i].Score > maxCount { if result[i].Score > maxCount {

View File

@ -51,7 +51,7 @@ func priorityFunction(mapFn algorithm.PriorityMapFunction, reduceFn algorithm.Pr
result = append(result, hostResult) result = append(result, hostResult)
} }
if reduceFn != nil { if reduceFn != nil {
if err := reduceFn(pod, result); err != nil { if err := reduceFn(pod, nil, result); err != nil {
return nil, err return nil, err
} }
} }

View File

@ -36,7 +36,7 @@ type PriorityMapFunction func(pod *api.Pod, meta interface{}, nodeInfo *schedule
// final scores for all nodes. // final scores for all nodes.
// TODO: Figure out the exact API of this method. // TODO: Figure out the exact API of this method.
// TODO: Change interface{} to a specific type. // 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. // MetdataProducer is a function that computes metadata for a given pod.
type MetadataProducer func(pod *api.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo) interface{} type MetadataProducer func(pod *api.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo) interface{}

View File

@ -315,7 +315,7 @@ func PrioritizeNodes(
wg.Add(1) wg.Add(1)
go func(index int, config algorithm.PriorityConfig) { go func(index int, config algorithm.PriorityConfig) {
defer wg.Done() defer wg.Done()
if err := config.Reduce(pod, results[index]); err != nil { if err := config.Reduce(pod, meta, results[index]); err != nil {
appendError(err) appendError(err)
} }
}(i, priorityConfig) }(i, priorityConfig)