@@ -26,12 +26,14 @@ import (
26
26
"k8s.io/kubernetes/pkg/volume/util/volumehelper"
27
27
)
28
28
29
- // Calls AddVolume() once to add volume
29
+ var emptyVolumeName = api .UniqueVolumeName ("" )
30
+
31
+ // Calls MarkVolumeAsAttached() once to add volume
30
32
// Verifies newly added volume exists in GetUnmountedVolumes()
31
33
// Verifies newly added volume doesn't exist in GetGloballyMountedVolumes()
32
- func Test_AddVolume_Positive_NewVolume (t * testing.T ) {
34
+ func Test_MarkVolumeAsAttached_Positive_NewVolume (t * testing.T ) {
33
35
// Arrange
34
- volumePluginMgr , _ := volumetesting .GetTestVolumePluginMgr (t )
36
+ volumePluginMgr , plugin := volumetesting .GetTestVolumePluginMgr (t )
35
37
asw := NewActualStateOfWorld ("mynode" /* nodeName */ , volumePluginMgr )
36
38
pod := & api.Pod {
37
39
ObjectMeta : api.ObjectMeta {
@@ -53,28 +55,29 @@ func Test_AddVolume_Positive_NewVolume(t *testing.T) {
53
55
}
54
56
volumeSpec := & volume.Spec {Volume : & pod .Spec .Volumes [0 ]}
55
57
devicePath := "fake/device/path"
58
+ generatedVolumeName , _ := volumehelper .GetUniqueVolumeNameFromSpec (plugin , volumeSpec )
56
59
57
60
// Act
58
- generatedVolumeName , err := asw .AddVolume ( volumeSpec , devicePath )
61
+ err := asw .MarkVolumeAsAttached ( emptyVolumeName , volumeSpec , "" /* nodeName */ , devicePath )
59
62
60
63
// Assert
61
64
if err != nil {
62
- t .Fatalf ("AddVolume failed. Expected: <no error> Actual: <%v>" , err )
65
+ t .Fatalf ("MarkVolumeAsAttached failed. Expected: <no error> Actual: <%v>" , err )
63
66
}
64
67
65
68
verifyVolumeExistsAsw (t , generatedVolumeName , true /* shouldExist */ , asw )
66
69
verifyVolumeExistsInUnmountedVolumes (t , generatedVolumeName , asw )
67
70
verifyVolumeDoesntExistInGloballyMountedVolumes (t , generatedVolumeName , asw )
68
71
}
69
72
70
- // Calls AddVolume() twice to add the same volume
71
- // Verifies second call doesn't fail
73
+ // Calls MarkVolumeAsAttached() once to add volume, specifying a name --
74
+ // establishes that the supplied volume name is used to register the volume
75
+ // rather than the generated one.
72
76
// Verifies newly added volume exists in GetUnmountedVolumes()
73
77
// Verifies newly added volume doesn't exist in GetGloballyMountedVolumes()
74
- func Test_AddVolume_Positive_ExistingVolume (t * testing.T ) {
78
+ func Test_MarkVolumeAsAttached_SuppliedVolumeName_Positive_NewVolume (t * testing.T ) {
75
79
// Arrange
76
80
volumePluginMgr , _ := volumetesting .GetTestVolumePluginMgr (t )
77
- devicePath := "fake/device/path"
78
81
asw := NewActualStateOfWorld ("mynode" /* nodeName */ , volumePluginMgr )
79
82
pod := & api.Pod {
80
83
ObjectMeta : api.ObjectMeta {
@@ -94,19 +97,64 @@ func Test_AddVolume_Positive_ExistingVolume(t *testing.T) {
94
97
},
95
98
},
96
99
}
100
+ volumeSpec := & volume.Spec {Volume : & pod .Spec .Volumes [0 ]}
101
+ devicePath := "fake/device/path"
102
+ volumeName := api .UniqueVolumeName ("this-would-never-be-a-volume-name" )
103
+
104
+ // Act
105
+ err := asw .MarkVolumeAsAttached (volumeName , volumeSpec , "" /* nodeName */ , devicePath )
106
+
107
+ // Assert
108
+ if err != nil {
109
+ t .Fatalf ("MarkVolumeAsAttached failed. Expected: <no error> Actual: <%v>" , err )
110
+ }
97
111
112
+ verifyVolumeExistsAsw (t , volumeName , true /* shouldExist */ , asw )
113
+ verifyVolumeExistsInUnmountedVolumes (t , volumeName , asw )
114
+ verifyVolumeDoesntExistInGloballyMountedVolumes (t , volumeName , asw )
115
+ }
116
+
117
+ // Calls MarkVolumeAsAttached() twice to add the same volume
118
+ // Verifies second call doesn't fail
119
+ // Verifies newly added volume exists in GetUnmountedVolumes()
120
+ // Verifies newly added volume doesn't exist in GetGloballyMountedVolumes()
121
+ func Test_MarkVolumeAsAttached_Positive_ExistingVolume (t * testing.T ) {
122
+ // Arrange
123
+ volumePluginMgr , plugin := volumetesting .GetTestVolumePluginMgr (t )
124
+ devicePath := "fake/device/path"
125
+ asw := NewActualStateOfWorld ("mynode" /* nodeName */ , volumePluginMgr )
126
+ pod := & api.Pod {
127
+ ObjectMeta : api.ObjectMeta {
128
+ Name : "pod1" ,
129
+ UID : "pod1uid" ,
130
+ },
131
+ Spec : api.PodSpec {
132
+ Volumes : []api.Volume {
133
+ {
134
+ Name : "volume-name" ,
135
+ VolumeSource : api.VolumeSource {
136
+ GCEPersistentDisk : & api.GCEPersistentDiskVolumeSource {
137
+ PDName : "fake-device1" ,
138
+ },
139
+ },
140
+ },
141
+ },
142
+ },
143
+ }
98
144
volumeSpec := & volume.Spec {Volume : & pod .Spec .Volumes [0 ]}
99
- generatedVolumeName , err := asw .AddVolume (volumeSpec , devicePath )
145
+ generatedVolumeName , _ := volumehelper .GetUniqueVolumeNameFromSpec (plugin , volumeSpec )
146
+
147
+ err := asw .MarkVolumeAsAttached (emptyVolumeName , volumeSpec , "" /* nodeName */ , devicePath )
100
148
if err != nil {
101
- t .Fatalf ("AddVolume failed. Expected: <no error> Actual: <%v>" , err )
149
+ t .Fatalf ("MarkVolumeAsAttached failed. Expected: <no error> Actual: <%v>" , err )
102
150
}
103
151
104
152
// Act
105
- generatedVolumeName , err = asw .AddVolume ( volumeSpec , devicePath )
153
+ err = asw .MarkVolumeAsAttached ( emptyVolumeName , volumeSpec , "" /* nodeName */ , devicePath )
106
154
107
155
// Assert
108
156
if err != nil {
109
- t .Fatalf ("AddVolume failed. Expected: <no error> Actual: <%v>" , err )
157
+ t .Fatalf ("MarkVolumeAsAttached failed. Expected: <no error> Actual: <%v>" , err )
110
158
}
111
159
112
160
verifyVolumeExistsAsw (t , generatedVolumeName , true /* shouldExist */ , asw )
@@ -141,14 +189,12 @@ func Test_AddPodToVolume_Positive_ExistingVolumeNewNode(t *testing.T) {
141
189
},
142
190
},
143
191
}
144
-
145
192
volumeSpec := & volume.Spec {Volume : & pod .Spec .Volumes [0 ]}
146
- volumeName , err := volumehelper .GetUniqueVolumeNameFromSpec (
147
- plugin , volumeSpec )
193
+ generatedVolumeName , err := volumehelper .GetUniqueVolumeNameFromSpec (plugin , volumeSpec )
148
194
149
- generatedVolumeName , err : = asw .AddVolume ( volumeSpec , devicePath )
195
+ err = asw .MarkVolumeAsAttached ( emptyVolumeName , volumeSpec , "" /* nodeName */ , devicePath )
150
196
if err != nil {
151
- t .Fatalf ("AddVolume failed. Expected: <no error> Actual: <%v>" , err )
197
+ t .Fatalf ("MarkVolumeAsAttached failed. Expected: <no error> Actual: <%v>" , err )
152
198
}
153
199
podName := volumehelper .GetUniquePodName (pod )
154
200
@@ -159,7 +205,7 @@ func Test_AddPodToVolume_Positive_ExistingVolumeNewNode(t *testing.T) {
159
205
160
206
// Act
161
207
err = asw .AddPodToVolume (
162
- podName , pod .UID , volumeName , mounter , volumeSpec .Name (), "" /* volumeGidValue */ )
208
+ podName , pod .UID , generatedVolumeName , mounter , volumeSpec .Name (), "" /* volumeGidValue */ )
163
209
164
210
// Assert
165
211
if err != nil {
@@ -202,12 +248,12 @@ func Test_AddPodToVolume_Positive_ExistingVolumeExistingNode(t *testing.T) {
202
248
}
203
249
204
250
volumeSpec := & volume.Spec {Volume : & pod .Spec .Volumes [0 ]}
205
- volumeName , err := volumehelper .GetUniqueVolumeNameFromSpec (
251
+ generatedVolumeName , err := volumehelper .GetUniqueVolumeNameFromSpec (
206
252
plugin , volumeSpec )
207
253
208
- generatedVolumeName , err : = asw .AddVolume ( volumeSpec , devicePath )
254
+ err = asw .MarkVolumeAsAttached ( emptyVolumeName , volumeSpec , "" /* nodeName */ , devicePath )
209
255
if err != nil {
210
- t .Fatalf ("AddVolume failed. Expected: <no error> Actual: <%v>" , err )
256
+ t .Fatalf ("MarkVolumeAsAttached failed. Expected: <no error> Actual: <%v>" , err )
211
257
}
212
258
podName := volumehelper .GetUniquePodName (pod )
213
259
@@ -217,14 +263,14 @@ func Test_AddPodToVolume_Positive_ExistingVolumeExistingNode(t *testing.T) {
217
263
}
218
264
219
265
err = asw .AddPodToVolume (
220
- podName , pod .UID , volumeName , mounter , volumeSpec .Name (), "" /* volumeGidValue */ )
266
+ podName , pod .UID , generatedVolumeName , mounter , volumeSpec .Name (), "" /* volumeGidValue */ )
221
267
if err != nil {
222
268
t .Fatalf ("AddPodToVolume failed. Expected: <no error> Actual: <%v>" , err )
223
269
}
224
270
225
271
// Act
226
272
err = asw .AddPodToVolume (
227
- podName , pod .UID , volumeName , mounter , volumeSpec .Name (), "" /* volumeGidValue */ )
273
+ podName , pod .UID , generatedVolumeName , mounter , volumeSpec .Name (), "" /* volumeGidValue */ )
228
274
229
275
// Assert
230
276
if err != nil {
@@ -301,13 +347,13 @@ func Test_AddPodToVolume_Negative_VolumeDoesntExist(t *testing.T) {
301
347
asw )
302
348
}
303
349
304
- // Calls AddVolume () once to add volume
350
+ // Calls MarkVolumeAsAttached () once to add volume
305
351
// Calls MarkDeviceAsMounted() to mark volume as globally mounted.
306
352
// Verifies newly added volume exists in GetUnmountedVolumes()
307
353
// Verifies newly added volume exists in GetGloballyMountedVolumes()
308
354
func Test_MarkDeviceAsMounted_Positive_NewVolume (t * testing.T ) {
309
355
// Arrange
310
- volumePluginMgr , _ := volumetesting .GetTestVolumePluginMgr (t )
356
+ volumePluginMgr , plugin := volumetesting .GetTestVolumePluginMgr (t )
311
357
asw := NewActualStateOfWorld ("mynode" /* nodeName */ , volumePluginMgr )
312
358
pod := & api.Pod {
313
359
ObjectMeta : api.ObjectMeta {
@@ -329,9 +375,11 @@ func Test_MarkDeviceAsMounted_Positive_NewVolume(t *testing.T) {
329
375
}
330
376
volumeSpec := & volume.Spec {Volume : & pod .Spec .Volumes [0 ]}
331
377
devicePath := "fake/device/path"
332
- generatedVolumeName , err := asw .AddVolume (volumeSpec , devicePath )
378
+ generatedVolumeName , err := volumehelper .GetUniqueVolumeNameFromSpec (plugin , volumeSpec )
379
+
380
+ err = asw .MarkVolumeAsAttached (emptyVolumeName , volumeSpec , "" /* nodeName */ , devicePath )
333
381
if err != nil {
334
- t .Fatalf ("AddVolume failed. Expected: <no error> Actual: <%v>" , err )
382
+ t .Fatalf ("MarkVolumeAsAttached failed. Expected: <no error> Actual: <%v>" , err )
335
383
}
336
384
337
385
// Act
0 commit comments