From a2426bd48a58d4dc849a2eb14880b5d86e17ed16 Mon Sep 17 00:00:00 2001 From: Hongchao Deng Date: Sun, 11 Dec 2016 19:30:48 -0800 Subject: [PATCH 1/2] generic_scheduler: Schedule() pod param should never be nil --- plugin/pkg/scheduler/generic_scheduler.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/plugin/pkg/scheduler/generic_scheduler.go b/plugin/pkg/scheduler/generic_scheduler.go index dcfc467077f..25e2f2a4a99 100644 --- a/plugin/pkg/scheduler/generic_scheduler.go +++ b/plugin/pkg/scheduler/generic_scheduler.go @@ -90,12 +90,7 @@ type genericScheduler struct { // 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 *v1.Pod, nodeLister algorithm.NodeLister) (string, error) { - var trace *util.Trace - if pod != nil { - trace = util.NewTrace(fmt.Sprintf("Scheduling %s/%s", pod.Namespace, pod.Name)) - } else { - trace = util.NewTrace("Scheduling pod") - } + trace := util.NewTrace(fmt.Sprintf("Scheduling %s/%s", pod.Namespace, pod.Name)) defer trace.LogIfLong(100 * time.Millisecond) nodes, err := nodeLister.List() From 479f507532bec6ce4c4f731e8757bd0132ef5153 Mon Sep 17 00:00:00 2001 From: Hongchao Deng Date: Sun, 11 Dec 2016 20:05:17 -0800 Subject: [PATCH 2/2] scheduler test: fix test due to nil pod assumption --- plugin/pkg/scheduler/extender_test.go | 9 +++------ plugin/pkg/scheduler/generic_scheduler_test.go | 2 ++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/plugin/pkg/scheduler/extender_test.go b/plugin/pkg/scheduler/extender_test.go index 515d7635c9d..32e3bce9b0c 100644 --- a/plugin/pkg/scheduler/extender_test.go +++ b/plugin/pkg/scheduler/extender_test.go @@ -164,8 +164,6 @@ func TestGenericSchedulerWithExtenders(t *testing.T) { extenderPredicates []fitPredicate extenderPrioritizers []priorityConfig nodes []string - pod *v1.Pod - pods []*v1.Pod expectedHost string expectsErr bool }{ @@ -284,15 +282,13 @@ func TestGenericSchedulerWithExtenders(t *testing.T) { extenders = append(extenders, &test.extenders[ii]) } cache := schedulercache.New(time.Duration(0), wait.NeverStop) - for _, pod := range test.pods { - cache.AddPod(pod) - } for _, name := range test.nodes { cache.AddNode(&v1.Node{ObjectMeta: v1.ObjectMeta{Name: name}}) } scheduler := NewGenericScheduler( cache, test.predicates, algorithm.EmptyMetadataProducer, test.prioritizers, algorithm.EmptyMetadataProducer, extenders) - machine, err := scheduler.Schedule(test.pod, algorithm.FakeNodeLister(makeNodeList(test.nodes))) + podIgnored := &v1.Pod{} + machine, err := scheduler.Schedule(podIgnored, algorithm.FakeNodeLister(makeNodeList(test.nodes))) if test.expectsErr { if err == nil { t.Errorf("Unexpected non-error for %s, machine %s", test.name, machine) @@ -300,6 +296,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) { } else { if err != nil { t.Errorf("Unexpected error: %v", err) + continue } if test.expectedHost != machine { t.Errorf("Failed : %s, Expected: %s, Saw: %s", test.name, test.expectedHost, machine) diff --git a/plugin/pkg/scheduler/generic_scheduler_test.go b/plugin/pkg/scheduler/generic_scheduler_test.go index c7972c359ac..b225d6bbee8 100644 --- a/plugin/pkg/scheduler/generic_scheduler_test.go +++ b/plugin/pkg/scheduler/generic_scheduler_test.go @@ -205,6 +205,7 @@ func TestGenericScheduler(t *testing.T) { predicates: map[string]algorithm.FitPredicate{"true": truePredicate}, prioritizers: []algorithm.PriorityConfig{{Map: EqualPriorityMap, Weight: 1}}, nodes: []string{"machine1", "machine2"}, + pod: &v1.Pod{ObjectMeta: v1.ObjectMeta{Name: "ignore"}}, expectedHosts: sets.NewString("machine1", "machine2"), name: "test 2", wErr: nil, @@ -223,6 +224,7 @@ func TestGenericScheduler(t *testing.T) { predicates: map[string]algorithm.FitPredicate{"true": truePredicate}, prioritizers: []algorithm.PriorityConfig{{Function: numericPriority, Weight: 1}}, nodes: []string{"3", "2", "1"}, + pod: &v1.Pod{ObjectMeta: v1.ObjectMeta{Name: "ignore"}}, expectedHosts: sets.NewString("3"), name: "test 4", wErr: nil,