Exit from NewController() for PersistentVolumeController when InitPlugins() failed just like NewAttachDetachController() does
This commit is contained in:
@@ -596,7 +596,7 @@ func newVolumeReactor(client *fake.Clientset, ctrl *PersistentVolumeController,
|
||||
}
|
||||
func alwaysReady() bool { return true }
|
||||
|
||||
func newTestController(kubeClient clientset.Interface, informerFactory informers.SharedInformerFactory, enableDynamicProvisioning bool) *PersistentVolumeController {
|
||||
func newTestController(kubeClient clientset.Interface, informerFactory informers.SharedInformerFactory, enableDynamicProvisioning bool) (*PersistentVolumeController, error) {
|
||||
if informerFactory == nil {
|
||||
informerFactory = informers.NewSharedInformerFactory(kubeClient, controller.NoResyncPeriodFunc())
|
||||
}
|
||||
@@ -610,13 +610,16 @@ func newTestController(kubeClient clientset.Interface, informerFactory informers
|
||||
EventRecorder: record.NewFakeRecorder(1000),
|
||||
EnableDynamicProvisioning: enableDynamicProvisioning,
|
||||
}
|
||||
ctrl := NewController(params)
|
||||
ctrl, err := NewController(params)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to construct persistentvolume controller: %v", err)
|
||||
}
|
||||
ctrl.volumeListerSynced = alwaysReady
|
||||
ctrl.claimListerSynced = alwaysReady
|
||||
ctrl.classListerSynced = alwaysReady
|
||||
// Speed up the test
|
||||
ctrl.createProvisionedPVInterval = 5 * time.Millisecond
|
||||
return ctrl
|
||||
return ctrl, nil
|
||||
}
|
||||
|
||||
// newVolume returns a new volume with given attributes
|
||||
@@ -912,7 +915,10 @@ func runSyncTests(t *testing.T, tests []controllerTest, storageClasses []*storag
|
||||
|
||||
// Initialize the controller
|
||||
client := &fake.Clientset{}
|
||||
ctrl := newTestController(client, nil, true)
|
||||
ctrl, err := newTestController(client, nil, true)
|
||||
if err != nil {
|
||||
t.Fatalf("Test %q construct persistent volume failed: %v", test.name, err)
|
||||
}
|
||||
reactor := newVolumeReactor(client, ctrl, nil, nil, test.errors)
|
||||
for _, claim := range test.initialClaims {
|
||||
ctrl.claims.Add(claim)
|
||||
@@ -931,7 +937,7 @@ func runSyncTests(t *testing.T, tests []controllerTest, storageClasses []*storag
|
||||
ctrl.classLister = storagelisters.NewStorageClassLister(indexer)
|
||||
|
||||
// Run the tested functions
|
||||
err := test.test(ctrl, reactor, test)
|
||||
err = test.test(ctrl, reactor, test)
|
||||
if err != nil {
|
||||
t.Errorf("Test %q failed: %v", test.name, err)
|
||||
}
|
||||
@@ -966,7 +972,10 @@ func runMultisyncTests(t *testing.T, tests []controllerTest, storageClasses []*s
|
||||
|
||||
// Initialize the controller
|
||||
client := &fake.Clientset{}
|
||||
ctrl := newTestController(client, nil, true)
|
||||
ctrl, err := newTestController(client, nil, true)
|
||||
if err != nil {
|
||||
t.Fatalf("Test %q construct persistent volume failed: %v", test.name, err)
|
||||
}
|
||||
|
||||
// Inject classes into controller via a custom lister.
|
||||
indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{})
|
||||
@@ -986,7 +995,7 @@ func runMultisyncTests(t *testing.T, tests []controllerTest, storageClasses []*s
|
||||
}
|
||||
|
||||
// Run the tested function
|
||||
err := test.test(ctrl, reactor, test)
|
||||
err = test.test(ctrl, reactor, test)
|
||||
if err != nil {
|
||||
t.Errorf("Test %q failed: %v", test.name, err)
|
||||
}
|
||||
|
Reference in New Issue
Block a user