mirror of https://github.com/k3s-io/k3s
Change from method to function
parent
988c9d619e
commit
cf4eacfdc7
|
@ -822,24 +822,6 @@ func (c *configFactory) CreateFromConfig(policy schedulerapi.Policy) (*Config, e
|
|||
return c.CreateFromKeys(predicateKeys, priorityKeys, extenders)
|
||||
}
|
||||
|
||||
// getBinderFunc returns an func which returns an extender that supports bind or a default binder based on the given pod.
|
||||
func (c *configFactory) getBinderFunc(extenders []algorithm.SchedulerExtender) func(pod *v1.Pod) Binder {
|
||||
var extenderBinder algorithm.SchedulerExtender
|
||||
for i := range extenders {
|
||||
if extenders[i].IsBinder() {
|
||||
extenderBinder = extenders[i]
|
||||
break
|
||||
}
|
||||
}
|
||||
defaultBinder := &binder{c.client}
|
||||
return func(pod *v1.Pod) Binder {
|
||||
if extenderBinder != nil && extenderBinder.IsInterested(pod) {
|
||||
return extenderBinder
|
||||
}
|
||||
return defaultBinder
|
||||
}
|
||||
}
|
||||
|
||||
// Creates a scheduler from a set of registered fit predicate keys and priority keys.
|
||||
func (c *configFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String, extenders []algorithm.SchedulerExtender) (*Config, error) {
|
||||
klog.V(2).Infof("Creating scheduler with fit predicates '%v' and priority functions '%v'", predicateKeys, priorityKeys)
|
||||
|
@ -894,7 +876,7 @@ func (c *configFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String,
|
|||
// The scheduler only needs to consider schedulable nodes.
|
||||
NodeLister: &nodeLister{c.nodeLister},
|
||||
Algorithm: algo,
|
||||
GetBinder: c.getBinderFunc(extenders),
|
||||
GetBinder: getBinderFunc(c.client, extenders),
|
||||
PodConditionUpdater: &podConditionUpdater{c.client},
|
||||
PodPreemptor: &podPreemptor{c.client},
|
||||
PluginSet: c.pluginSet,
|
||||
|
@ -911,6 +893,24 @@ func (c *configFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String,
|
|||
}, nil
|
||||
}
|
||||
|
||||
// getBinderFunc returns a func which returns an extender that supports bind or a default binder based on the given pod.
|
||||
func getBinderFunc(client clientset.Interface, extenders []algorithm.SchedulerExtender) func(pod *v1.Pod) Binder {
|
||||
var extenderBinder algorithm.SchedulerExtender
|
||||
for i := range extenders {
|
||||
if extenders[i].IsBinder() {
|
||||
extenderBinder = extenders[i]
|
||||
break
|
||||
}
|
||||
}
|
||||
defaultBinder := &binder{client}
|
||||
return func(pod *v1.Pod) Binder {
|
||||
if extenderBinder != nil && extenderBinder.IsInterested(pod) {
|
||||
return extenderBinder
|
||||
}
|
||||
return defaultBinder
|
||||
}
|
||||
}
|
||||
|
||||
type nodeLister struct {
|
||||
corelisters.NodeLister
|
||||
}
|
||||
|
|
|
@ -645,7 +645,7 @@ func testGetBinderFunc(expectedBinderType, podName string, extenders []algorithm
|
|||
}
|
||||
|
||||
f := &configFactory{}
|
||||
binderFunc := f.getBinderFunc(extenders)
|
||||
binderFunc := getBinderFunc(f.client, extenders)
|
||||
binder := binderFunc(pod)
|
||||
|
||||
binderType := fmt.Sprintf("%s", reflect.TypeOf(binder))
|
||||
|
|
Loading…
Reference in New Issue