mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Extract watch reactor out of test CSI plugin constructor
This commit is contained in:
parent
195a5af23b
commit
f098ada9d1
@ -203,9 +203,12 @@ func TestAttacherAttach(t *testing.T) {
|
|||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
t.Logf("test case: %s", tc.name)
|
t.Logf("test case: %s", tc.name)
|
||||||
plug, fakeWatcher, tmpDir, _ := newTestWatchPlugin(t, nil, false)
|
plug, tmpDir, fakeClient := newTestWatchPlugin(t, nil, false)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
|
fakeWatcher := watch.NewRaceFreeFake()
|
||||||
|
fakeClient.Fake.PrependWatchReactor("volumeattachments", core.DefaultWatchReactor(fakeWatcher, nil))
|
||||||
|
|
||||||
attacher, err := plug.NewAttacher()
|
attacher, err := plug.NewAttacher()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to create new attacher: %v", err)
|
t.Fatalf("failed to create new attacher: %v", err)
|
||||||
@ -288,9 +291,12 @@ func TestAttacherAttachWithInline(t *testing.T) {
|
|||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
t.Logf("test case: %s", tc.name)
|
t.Logf("test case: %s", tc.name)
|
||||||
plug, fakeWatcher, tmpDir, _ := newTestWatchPlugin(t, nil, false)
|
plug, tmpDir, fakeClient := newTestWatchPlugin(t, nil, false)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
|
fakeWatcher := watch.NewRaceFreeFake()
|
||||||
|
fakeClient.Fake.PrependWatchReactor("volumeattachments", core.DefaultWatchReactor(fakeWatcher, nil))
|
||||||
|
|
||||||
attacher, err := plug.NewAttacher()
|
attacher, err := plug.NewAttacher()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to create new attacher: %v", err)
|
t.Fatalf("failed to create new attacher: %v", err)
|
||||||
@ -357,7 +363,7 @@ func TestAttacherWithCSIDriver(t *testing.T) {
|
|||||||
getTestCSIDriver("attachable", nil, &bTrue, nil),
|
getTestCSIDriver("attachable", nil, &bTrue, nil),
|
||||||
getTestCSIDriver("nil", nil, nil, nil),
|
getTestCSIDriver("nil", nil, nil, nil),
|
||||||
)
|
)
|
||||||
plug, _, tmpDir, _ := newTestWatchPlugin(t, fakeClient, true)
|
plug, tmpDir, _ := newTestWatchPlugin(t, fakeClient, true)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
attachmentWatchCreated := make(chan core.Action)
|
attachmentWatchCreated := make(chan core.Action)
|
||||||
@ -542,7 +548,7 @@ func TestAttacherWaitForAttach(t *testing.T) {
|
|||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
plug, _, tmpDir, _ := newTestWatchPlugin(t, nil, true)
|
plug, tmpDir, _ := newTestWatchPlugin(t, nil, true)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
attacher, err := plug.NewAttacher()
|
attacher, err := plug.NewAttacher()
|
||||||
@ -624,7 +630,7 @@ func TestAttacherWaitForAttachWithInline(t *testing.T) {
|
|||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
plug, _, tmpDir, _ := newTestWatchPlugin(t, nil, true)
|
plug, tmpDir, _ := newTestWatchPlugin(t, nil, true)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
attacher, err := plug.NewAttacher()
|
attacher, err := plug.NewAttacher()
|
||||||
@ -711,14 +717,18 @@ func TestAttacherWaitForVolumeAttachment(t *testing.T) {
|
|||||||
|
|
||||||
for i, tc := range testCases {
|
for i, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
plug, fakeWatcher, tmpDir, _ := newTestWatchPlugin(t, nil, false)
|
plug, tmpDir, fakeClient := newTestWatchPlugin(t, nil, false)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
|
fakeWatcher := watch.NewRaceFreeFake()
|
||||||
|
fakeClient.Fake.PrependWatchReactor("volumeattachments", core.DefaultWatchReactor(fakeWatcher, nil))
|
||||||
|
|
||||||
attacher, err := plug.NewAttacher()
|
attacher, err := plug.NewAttacher()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to create new attacher: %v", err)
|
t.Fatalf("failed to create new attacher: %v", err)
|
||||||
}
|
}
|
||||||
csiAttacher := getCsiAttacherFromVolumeAttacher(attacher)
|
csiAttacher := getCsiAttacherFromVolumeAttacher(attacher)
|
||||||
|
|
||||||
t.Logf("running test: %v", tc.name)
|
t.Logf("running test: %v", tc.name)
|
||||||
pvName := fmt.Sprintf("test-pv-%d", i)
|
pvName := fmt.Sprintf("test-pv-%d", i)
|
||||||
volID := fmt.Sprintf("test-vol-%d", i)
|
volID := fmt.Sprintf("test-vol-%d", i)
|
||||||
@ -968,10 +978,14 @@ func TestAttacherDetach(t *testing.T) {
|
|||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
t.Logf("running test: %v", tc.name)
|
t.Logf("running test: %v", tc.name)
|
||||||
plug, fakeWatcher, tmpDir, client := newTestWatchPlugin(t, nil, false)
|
plug, tmpDir, fakeClient := newTestWatchPlugin(t, nil, false)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
|
fakeWatcher := watch.NewRaceFreeFake()
|
||||||
|
fakeClient.Fake.PrependWatchReactor("volumeattachments", core.DefaultWatchReactor(fakeWatcher, nil))
|
||||||
|
|
||||||
if tc.reactor != nil {
|
if tc.reactor != nil {
|
||||||
client.PrependReactor("*", "*", tc.reactor)
|
fakeClient.PrependReactor("*", "*", tc.reactor)
|
||||||
}
|
}
|
||||||
|
|
||||||
attacher, err0 := plug.NewAttacher()
|
attacher, err0 := plug.NewAttacher()
|
||||||
@ -1024,7 +1038,7 @@ func TestAttacherDetach(t *testing.T) {
|
|||||||
func TestAttacherGetDeviceMountPath(t *testing.T) {
|
func TestAttacherGetDeviceMountPath(t *testing.T) {
|
||||||
// Setup
|
// Setup
|
||||||
// Create a new attacher
|
// Create a new attacher
|
||||||
plug, _, tmpDir, _ := newTestWatchPlugin(t, nil, true)
|
plug, tmpDir, _ := newTestWatchPlugin(t, nil, true)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
attacher, err0 := plug.NewAttacher()
|
attacher, err0 := plug.NewAttacher()
|
||||||
if err0 != nil {
|
if err0 != nil {
|
||||||
@ -1189,8 +1203,12 @@ func TestAttacherMountDevice(t *testing.T) {
|
|||||||
|
|
||||||
// Setup
|
// Setup
|
||||||
// Create a new attacher
|
// Create a new attacher
|
||||||
plug, fakeWatcher, tmpDir, _ := newTestWatchPlugin(t, nil, false)
|
plug, tmpDir, fakeClient := newTestWatchPlugin(t, nil, false)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
|
fakeWatcher := watch.NewRaceFreeFake()
|
||||||
|
fakeClient.Fake.PrependWatchReactor("volumeattachments", core.DefaultWatchReactor(fakeWatcher, nil))
|
||||||
|
|
||||||
attacher, err0 := plug.NewAttacher()
|
attacher, err0 := plug.NewAttacher()
|
||||||
if err0 != nil {
|
if err0 != nil {
|
||||||
t.Fatalf("failed to create new attacher: %v", err0)
|
t.Fatalf("failed to create new attacher: %v", err0)
|
||||||
@ -1352,8 +1370,12 @@ func TestAttacherMountDeviceWithInline(t *testing.T) {
|
|||||||
|
|
||||||
// Setup
|
// Setup
|
||||||
// Create a new attacher
|
// Create a new attacher
|
||||||
plug, fakeWatcher, tmpDir, _ := newTestWatchPlugin(t, nil, false)
|
plug, tmpDir, fakeClient := newTestWatchPlugin(t, nil, false)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
|
fakeWatcher := watch.NewRaceFreeFake()
|
||||||
|
fakeClient.Fake.PrependWatchReactor("volumeattachments", core.DefaultWatchReactor(fakeWatcher, nil))
|
||||||
|
|
||||||
attacher, err0 := plug.NewAttacher()
|
attacher, err0 := plug.NewAttacher()
|
||||||
if err0 != nil {
|
if err0 != nil {
|
||||||
t.Fatalf("failed to create new attacher: %v", err0)
|
t.Fatalf("failed to create new attacher: %v", err0)
|
||||||
@ -1480,7 +1502,7 @@ func TestAttacherUnmountDevice(t *testing.T) {
|
|||||||
t.Logf("Running test case: %s", tc.testName)
|
t.Logf("Running test case: %s", tc.testName)
|
||||||
// Setup
|
// Setup
|
||||||
// Create a new attacher
|
// Create a new attacher
|
||||||
plug, _, tmpDir, _ := newTestWatchPlugin(t, nil, true)
|
plug, tmpDir, _ := newTestWatchPlugin(t, nil, true)
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
attacher, err0 := plug.NewAttacher()
|
attacher, err0 := plug.NewAttacher()
|
||||||
if err0 != nil {
|
if err0 != nil {
|
||||||
@ -1567,7 +1589,7 @@ func TestAttacherUnmountDevice(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create a plugin mgr to load plugins and setup a fake client
|
// create a plugin mgr to load plugins and setup a fake client
|
||||||
func newTestWatchPlugin(t *testing.T, fakeClient *fakeclient.Clientset, setupInformer bool) (*csiPlugin, *watch.RaceFreeFakeWatcher, string, *fakeclient.Clientset) {
|
func newTestWatchPlugin(t *testing.T, fakeClient *fakeclient.Clientset, setupInformer bool) (*csiPlugin, string, *fakeclient.Clientset) {
|
||||||
tmpDir, err := utiltesting.MkTmpdir("csi-test")
|
tmpDir, err := utiltesting.MkTmpdir("csi-test")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("can't create temp dir: %v", err)
|
t.Fatalf("can't create temp dir: %v", err)
|
||||||
@ -1582,13 +1604,6 @@ func newTestWatchPlugin(t *testing.T, fakeClient *fakeclient.Clientset, setupInf
|
|||||||
},
|
},
|
||||||
Spec: v1.NodeSpec{},
|
Spec: v1.NodeSpec{},
|
||||||
})
|
})
|
||||||
fakeWatcher := watch.NewRaceFreeFake()
|
|
||||||
if !setupInformer {
|
|
||||||
// TODO: In the fakeClient, if default watchReactor is overwritten, the volumeAttachmentInformer
|
|
||||||
// and the csiAttacher.Attach both endup reading from same channel causing hang in Attach().
|
|
||||||
// So, until this is fixed, we don't overwrite default reactor while setting up volumeAttachment informer.
|
|
||||||
fakeClient.Fake.PrependWatchReactor("volumeattachments", core.DefaultWatchReactor(fakeWatcher, nil))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Start informer for CSIDrivers.
|
// Start informer for CSIDrivers.
|
||||||
factory := informers.NewSharedInformerFactory(fakeClient, CsiResyncPeriod)
|
factory := informers.NewSharedInformerFactory(fakeClient, CsiResyncPeriod)
|
||||||
@ -1630,7 +1645,7 @@ func newTestWatchPlugin(t *testing.T, fakeClient *fakeclient.Clientset, setupInf
|
|||||||
t.Fatalf("cannot assert plugin to be type csiPlugin")
|
t.Fatalf("cannot assert plugin to be type csiPlugin")
|
||||||
}
|
}
|
||||||
|
|
||||||
return csiPlug, fakeWatcher, tmpDir, fakeClient
|
return csiPlug, tmpDir, fakeClient
|
||||||
}
|
}
|
||||||
|
|
||||||
func getCsiAttacherFromVolumeAttacher(attacher volume.Attacher) *csiAttacher {
|
func getCsiAttacherFromVolumeAttacher(attacher volume.Attacher) *csiAttacher {
|
||||||
|
Loading…
Reference in New Issue
Block a user