From e8e8e2d0860836880a2811c2c07e7881cbae52b9 Mon Sep 17 00:00:00 2001 From: Wojciech Tyczynski Date: Fri, 8 Jul 2016 14:49:25 +0200 Subject: [PATCH] Remove unneeded factories --- .../algorithm/predicates/predicates.go | 16 +++-------- .../algorithm/predicates/predicates_test.go | 3 +-- .../algorithm/priorities/node_affinity.go | 13 +-------- .../priorities/node_affinity_test.go | 3 +-- .../algorithm/priorities/taint_toleration.go | 15 +---------- .../priorities/taint_toleration_test.go | 3 +-- .../algorithmprovider/defaults/defaults.go | 27 +++---------------- 7 files changed, 12 insertions(+), 68 deletions(-) diff --git a/plugin/pkg/scheduler/algorithm/predicates/predicates.go b/plugin/pkg/scheduler/algorithm/predicates/predicates.go index d390fba531c..b49af98973d 100644 --- a/plugin/pkg/scheduler/algorithm/predicates/predicates.go +++ b/plugin/pkg/scheduler/algorithm/predicates/predicates.go @@ -999,19 +999,11 @@ func (checker *PodAffinityChecker) NodeMatchPodAffinityAntiAffinity(pod *api.Pod return true } -type TolerationMatch struct { - info NodeInfo -} - -func NewTolerationMatchPredicate(info NodeInfo) algorithm.FitPredicate { - tolerationMatch := &TolerationMatch{ - info: info, - } - return tolerationMatch.PodToleratesNodeTaints -} - -func (t *TolerationMatch) PodToleratesNodeTaints(pod *api.Pod, meta interface{}, nodeInfo *schedulercache.NodeInfo) (bool, error) { +func PodToleratesNodeTaints(pod *api.Pod, meta interface{}, nodeInfo *schedulercache.NodeInfo) (bool, error) { node := nodeInfo.Node() + if node == nil { + return false, fmt.Errorf("node not found") + } taints, err := api.GetTaintsFromNodeAnnotations(node.Annotations) if err != nil { diff --git a/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go b/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go index af858b9671e..cdf974cd720 100644 --- a/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go +++ b/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go @@ -2724,10 +2724,9 @@ func TestPodToleratesTaints(t *testing.T) { } for _, test := range podTolerateTaintsTests { - tolerationMatch := TolerationMatch{FakeNodeInfo(test.node)} nodeInfo := schedulercache.NewNodeInfo() nodeInfo.SetNode(&test.node) - fits, err := tolerationMatch.PodToleratesNodeTaints(test.pod, PredicateMetadata(test.pod), nodeInfo) + fits, err := PodToleratesNodeTaints(test.pod, PredicateMetadata(test.pod), nodeInfo) if fits == false && !reflect.DeepEqual(err, ErrTaintsTolerationsNotMatch) { t.Errorf("%s, unexpected error: %v", test.test, err) } diff --git a/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go b/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go index 5f3043fb5b5..4e42251e7aa 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go +++ b/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go @@ -25,23 +25,12 @@ import ( "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" ) -type NodeAffinity struct { - nodeLister algorithm.NodeLister -} - -func NewNodeAffinityPriority(nodeLister algorithm.NodeLister) algorithm.PriorityFunction { - nodeAffinity := &NodeAffinity{ - nodeLister: nodeLister, - } - return nodeAffinity.CalculateNodeAffinityPriority -} - // CalculateNodeAffinityPriority prioritizes nodes according to node affinity scheduling preferences // indicated in PreferredDuringSchedulingIgnoredDuringExecution. Each time a node match a preferredSchedulingTerm, // it will a get an add of preferredSchedulingTerm.Weight. Thus, the more preferredSchedulingTerms // the node satisfies and the more the preferredSchedulingTerm that is satisfied weights, the higher // score the node gets. -func (s *NodeAffinity) CalculateNodeAffinityPriority(pod *api.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo, nodeLister algorithm.NodeLister) (schedulerapi.HostPriorityList, error) { +func CalculateNodeAffinityPriority(pod *api.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo, nodeLister algorithm.NodeLister) (schedulerapi.HostPriorityList, error) { var maxCount int counts := map[string]int{} diff --git a/plugin/pkg/scheduler/algorithm/priorities/node_affinity_test.go b/plugin/pkg/scheduler/algorithm/priorities/node_affinity_test.go index ae78ae039a6..d677c21c3c5 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/node_affinity_test.go +++ b/plugin/pkg/scheduler/algorithm/priorities/node_affinity_test.go @@ -156,8 +156,7 @@ func TestNodeAffinityPriority(t *testing.T) { } for _, test := range tests { - nodeAffinity := NodeAffinity{nodeLister: algorithm.FakeNodeLister(api.NodeList{Items: test.nodes})} - list, err := nodeAffinity.CalculateNodeAffinityPriority(test.pod, schedulercache.CreateNodeNameToInfoMap(nil), algorithm.FakeNodeLister(api.NodeList{Items: test.nodes})) + list, err := CalculateNodeAffinityPriority(test.pod, schedulercache.CreateNodeNameToInfoMap(nil), algorithm.FakeNodeLister(api.NodeList{Items: test.nodes})) if err != nil { t.Errorf("unexpected error: %v", err) } diff --git a/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go b/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go index 9513f65dede..f58b70c66d3 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go +++ b/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go @@ -24,19 +24,6 @@ import ( "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" ) -// NodeTaints hold the node lister -type TaintToleration struct { - nodeLister algorithm.NodeLister -} - -// NewTaintTolerationPriority -func NewTaintTolerationPriority(nodeLister algorithm.NodeLister) algorithm.PriorityFunction { - taintToleration := &TaintToleration{ - nodeLister: nodeLister, - } - return taintToleration.ComputeTaintTolerationPriority -} - // CountIntolerableTaintsPreferNoSchedule gives the count of intolerable taints of a pod with effect PreferNoSchedule func countIntolerableTaintsPreferNoSchedule(taints []api.Taint, tolerations []api.Toleration) (intolerableTaints int) { for _, taint := range taints { @@ -63,7 +50,7 @@ func getAllTolerationPreferNoSchedule(tolerations []api.Toleration) (tolerationL } // ComputeTaintTolerationPriority prepares the priority list for all the nodes based on the number of intolerable taints on the node -func (s *TaintToleration) ComputeTaintTolerationPriority(pod *api.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo, nodeLister algorithm.NodeLister) (schedulerapi.HostPriorityList, error) { +func ComputeTaintTolerationPriority(pod *api.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo, nodeLister algorithm.NodeLister) (schedulerapi.HostPriorityList, error) { // counts hold the count of intolerable taints of a pod for a given node counts := make(map[string]int) diff --git a/plugin/pkg/scheduler/algorithm/priorities/taint_toleration_test.go b/plugin/pkg/scheduler/algorithm/priorities/taint_toleration_test.go index 6300ca40ccf..854886e4b3f 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/taint_toleration_test.go +++ b/plugin/pkg/scheduler/algorithm/priorities/taint_toleration_test.go @@ -212,8 +212,7 @@ func TestTaintAndToleration(t *testing.T) { } for _, test := range tests { nodeNameToInfo := schedulercache.CreateNodeNameToInfoMap([]*api.Pod{{}}) - taintToleration := TaintToleration{nodeLister: algorithm.FakeNodeLister(api.NodeList{Items: test.nodes})} - list, err := taintToleration.ComputeTaintTolerationPriority( + list, err := ComputeTaintTolerationPriority( test.pod, nodeNameToInfo, algorithm.FakeNodeLister(api.NodeList{Items: test.nodes})) diff --git a/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go b/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go index 8e0fba8cfb5..dbedff3f5d2 100644 --- a/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go +++ b/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go @@ -147,12 +147,7 @@ func defaultPredicates() sets.String { factory.RegisterFitPredicate("GeneralPredicates", predicates.GeneralPredicates), // Fit is determined based on whether a pod can tolerate all of the node's taints - factory.RegisterFitPredicateFactory( - "PodToleratesNodeTaints", - func(args factory.PluginFactoryArgs) algorithm.FitPredicate { - return predicates.NewTolerationMatchPredicate(args.NodeInfo) - }, - ), + factory.RegisterFitPredicate("PodToleratesNodeTaints", predicates.PodToleratesNodeTaints), // Fit is determined by node memory pressure condition. factory.RegisterFitPredicate("CheckNodeMemoryPressure", predicates.CheckNodeMemoryPressurePredicate), @@ -175,23 +170,7 @@ func defaultPriorities() sets.String { Weight: 1, }, ), - factory.RegisterPriorityConfigFactory( - "NodeAffinityPriority", - factory.PriorityConfigFactory{ - Function: func(args factory.PluginFactoryArgs) algorithm.PriorityFunction { - return priorities.NewNodeAffinityPriority(args.NodeLister) - }, - Weight: 1, - }, - ), - factory.RegisterPriorityConfigFactory( - "TaintTolerationPriority", - factory.PriorityConfigFactory{ - Function: func(args factory.PluginFactoryArgs) algorithm.PriorityFunction { - return priorities.NewTaintTolerationPriority(args.NodeLister) - }, - Weight: 1, - }, - ), + factory.RegisterPriorityFunction("NodeAffinityPriority", priorities.CalculateNodeAffinityPriority, 1), + factory.RegisterPriorityFunction("TaintTolerationPriority", priorities.ComputeTaintTolerationPriority, 1), ) }