From f3ced64a80717a35773ac3cd12941fb43152cefd Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Tue, 8 Dec 2015 22:36:52 -0800 Subject: [PATCH] scheduler: a small refactor for generic scheduler --- plugin/pkg/scheduler/generic_scheduler.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/plugin/pkg/scheduler/generic_scheduler.go b/plugin/pkg/scheduler/generic_scheduler.go index 8c6101be6bb..563b55ea564 100644 --- a/plugin/pkg/scheduler/generic_scheduler.go +++ b/plugin/pkg/scheduler/generic_scheduler.go @@ -63,6 +63,9 @@ type genericScheduler struct { randomLock sync.Mutex } +// Schedule tries to schedule the given pod to one of node in the node list. +// If it succeeds, it will return the name of the node. +// If it fails, it will return a Fiterror error with reasons. func (g *genericScheduler) Schedule(pod *api.Pod, nodeLister algorithm.NodeLister) (string, error) { nodes, err := nodeLister.List() if err != nil { @@ -84,17 +87,18 @@ func (g *genericScheduler) Schedule(pod *api.Pod, nodeLister algorithm.NodeListe return "", err } - priorityList, err := PrioritizeNodes(pod, machinesToPods, g.pods, g.prioritizers, algorithm.FakeNodeLister(filteredNodes), g.extenders) - if err != nil { - return "", err - } - if len(priorityList) == 0 { + if len(filteredNodes.Items) == 0 { return "", &FitError{ Pod: pod, FailedPredicates: failedPredicateMap, } } + priorityList, err := PrioritizeNodes(pod, machinesToPods, g.pods, g.prioritizers, algorithm.FakeNodeLister(filteredNodes), g.extenders) + if err != nil { + return "", err + } + return g.selectHost(priorityList) }