Skip to content

Commit 9a9db00

Browse files
committed
handle registry merge error
Handle registry merge error. Add test case Add a test case in TestSchedulerCreation Add test case comment Add test case comment, and modify error msg. gofmt gofmt import order replace NewDefaultRegistry with a fake registry update comment rename framework plugins nodeaffinity import remove nodeaffinity plugin import, get fake registry name from default registry randomly Add a space Add a space after // update comment, trans FrameWork to Framework
1 parent 9905a33 commit 9a9db00

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

pkg/scheduler/scheduler.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,9 @@ func New(client clientset.Interface,
303303
VolumeBinder: volumeBinder,
304304
})
305305
}
306-
registry.Merge(options.frameworkOutOfTreeRegistry)
306+
if err := registry.Merge(options.frameworkOutOfTreeRegistry); err != nil {
307+
return nil, err
308+
}
307309

308310
snapshot := nodeinfosnapshot.NewEmptySnapshot()
309311

pkg/scheduler/scheduler_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import (
4848
"k8s.io/kubernetes/pkg/scheduler/algorithm/priorities"
4949
schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
5050
"k8s.io/kubernetes/pkg/scheduler/core"
51+
frameworkplugins "k8s.io/kubernetes/pkg/scheduler/framework/plugins"
5152
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
5253
internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
5354
fakecache "k8s.io/kubernetes/pkg/scheduler/internal/cache/fake"
@@ -201,6 +202,32 @@ func TestSchedulerCreation(t *testing.T) {
201202
if err != nil {
202203
t.Fatalf("Failed to create scheduler: %v", err)
203204
}
205+
206+
// Test case for when a plugin name in frameworkOutOfTreeRegistry already exist in defaultRegistry.
207+
fakeFrameworkPluginName := ""
208+
for name := range frameworkplugins.NewDefaultRegistry(&frameworkplugins.RegistryArgs{}) {
209+
fakeFrameworkPluginName = name
210+
break
211+
}
212+
registryFake := map[string]framework.PluginFactory{
213+
fakeFrameworkPluginName: func(_ *runtime.Unknown, fh framework.FrameworkHandle) (framework.Plugin, error) {
214+
return nil, nil
215+
},
216+
}
217+
_, err = New(client,
218+
informerFactory,
219+
NewPodInformer(client, 0),
220+
eventBroadcaster.NewRecorder(scheme.Scheme, "scheduler"),
221+
stopCh,
222+
WithAlgorithmSource(schedulerapi.SchedulerAlgorithmSource{Provider: &testSource}),
223+
WithPodInitialBackoffSeconds(1),
224+
WithPodMaxBackoffSeconds(10),
225+
WithFrameworkOutOfTreeRegistry(registryFake),
226+
)
227+
228+
if err == nil {
229+
t.Fatalf("Create scheduler should fail")
230+
}
204231
}
205232

206233
func TestScheduler(t *testing.T) {

0 commit comments

Comments
 (0)