@@ -46,16 +46,6 @@ const (
46
46
47
47
var (
48
48
// Define "normal" parameters
49
- stdVolCap = []* csi.VolumeCapability {
50
- {
51
- AccessType : & csi.VolumeCapability_Mount {
52
- Mount : & csi.VolumeCapability_MountVolume {},
53
- },
54
- AccessMode : & csi.VolumeCapability_AccessMode {
55
- Mode : csi .VolumeCapability_AccessMode_SINGLE_NODE_WRITER ,
56
- },
57
- },
58
- }
59
49
stdCapRange = & csi.CapacityRange {
60
50
RequiredBytes : common .GbToBytes (20 ),
61
51
}
@@ -304,7 +294,6 @@ func TestListSnapshotsArguments(t *testing.T) {
304
294
}
305
295
306
296
func TestCreateVolumeArguments (t * testing.T ) {
307
-
308
297
// Define test cases
309
298
testCases := []struct {
310
299
name string
@@ -317,7 +306,7 @@ func TestCreateVolumeArguments(t *testing.T) {
317
306
req : & csi.CreateVolumeRequest {
318
307
Name : "test-name" ,
319
308
CapacityRange : stdCapRange ,
320
- VolumeCapabilities : stdVolCap ,
309
+ VolumeCapabilities : stdVolCaps ,
321
310
Parameters : stdParams ,
322
311
},
323
312
expVol : & csi.Volume {
@@ -327,12 +316,37 @@ func TestCreateVolumeArguments(t *testing.T) {
327
316
AccessibleTopology : stdTopology ,
328
317
},
329
318
},
319
+ {
320
+ name : "success with MULTI_NODE_READER_ONLY" ,
321
+ req : & csi.CreateVolumeRequest {
322
+ Name : "test-name" ,
323
+ CapacityRange : stdCapRange ,
324
+ VolumeCapabilities : createVolumeCapabilities (csi .VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY ),
325
+ Parameters : stdParams ,
326
+ },
327
+ expVol : & csi.Volume {
328
+ CapacityBytes : common .GbToBytes (20 ),
329
+ VolumeId : testVolumeId ,
330
+ VolumeContext : nil ,
331
+ AccessibleTopology : stdTopology ,
332
+ },
333
+ },
334
+ {
335
+ name : "fail with MULTI_NODE_MULTI_WRITER capability" ,
336
+ req : & csi.CreateVolumeRequest {
337
+ Name : "test-name" ,
338
+ CapacityRange : stdCapRange ,
339
+ VolumeCapabilities : createVolumeCapabilities (csi .VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER ),
340
+ Parameters : stdParams ,
341
+ },
342
+ expErrCode : codes .InvalidArgument ,
343
+ },
330
344
{
331
345
name : "fail no name" ,
332
346
req : & csi.CreateVolumeRequest {
333
347
Name : "" ,
334
348
CapacityRange : stdCapRange ,
335
- VolumeCapabilities : stdVolCap ,
349
+ VolumeCapabilities : stdVolCaps ,
336
350
Parameters : stdParams ,
337
351
},
338
352
expErrCode : codes .InvalidArgument ,
@@ -341,7 +355,7 @@ func TestCreateVolumeArguments(t *testing.T) {
341
355
name : "success no capacity range" ,
342
356
req : & csi.CreateVolumeRequest {
343
357
Name : "test-name" ,
344
- VolumeCapabilities : stdVolCap ,
358
+ VolumeCapabilities : stdVolCaps ,
345
359
Parameters : stdParams ,
346
360
},
347
361
expVol : & csi.Volume {
@@ -365,7 +379,7 @@ func TestCreateVolumeArguments(t *testing.T) {
365
379
req : & csi.CreateVolumeRequest {
366
380
Name : "test-name" ,
367
381
CapacityRange : stdCapRange ,
368
- VolumeCapabilities : stdVolCap ,
382
+ VolumeCapabilities : stdVolCaps ,
369
383
},
370
384
expVol : & csi.Volume {
371
385
CapacityBytes : common .GbToBytes (20 ),
@@ -379,7 +393,7 @@ func TestCreateVolumeArguments(t *testing.T) {
379
393
req : & csi.CreateVolumeRequest {
380
394
Name : "test-name" ,
381
395
CapacityRange : stdCapRange ,
382
- VolumeCapabilities : stdVolCap ,
396
+ VolumeCapabilities : stdVolCaps ,
383
397
Parameters : stdParams ,
384
398
Secrets : map [string ]string {"key1" : "this is a random" , "crypto" : "secret" },
385
399
},
@@ -395,7 +409,7 @@ func TestCreateVolumeArguments(t *testing.T) {
395
409
req : & csi.CreateVolumeRequest {
396
410
Name : "test-name" ,
397
411
CapacityRange : stdCapRange ,
398
- VolumeCapabilities : stdVolCap ,
412
+ VolumeCapabilities : stdVolCaps ,
399
413
Parameters : map [string ]string {"type" : "test-type" },
400
414
AccessibilityRequirements : & csi.TopologyRequirement {
401
415
Requisite : []* csi.Topology {
@@ -421,7 +435,7 @@ func TestCreateVolumeArguments(t *testing.T) {
421
435
req : & csi.CreateVolumeRequest {
422
436
Name : "test-name" ,
423
437
CapacityRange : stdCapRange ,
424
- VolumeCapabilities : stdVolCap ,
438
+ VolumeCapabilities : stdVolCaps ,
425
439
Parameters : map [string ]string {"type" : "test-type" },
426
440
AccessibilityRequirements : & csi.TopologyRequirement {
427
441
Requisite : []* csi.Topology {
@@ -464,7 +478,7 @@ func TestCreateVolumeArguments(t *testing.T) {
464
478
req : & csi.CreateVolumeRequest {
465
479
Name : "test-name" ,
466
480
CapacityRange : stdCapRange ,
467
- VolumeCapabilities : stdVolCap ,
481
+ VolumeCapabilities : stdVolCaps ,
468
482
Parameters : stdParams ,
469
483
AccessibilityRequirements : & csi.TopologyRequirement {
470
484
Requisite : []* csi.Topology {
@@ -481,7 +495,7 @@ func TestCreateVolumeArguments(t *testing.T) {
481
495
req : & csi.CreateVolumeRequest {
482
496
Name : "test-name" ,
483
497
CapacityRange : stdCapRange ,
484
- VolumeCapabilities : stdVolCap ,
498
+ VolumeCapabilities : stdVolCaps ,
485
499
Parameters : stdParams ,
486
500
AccessibilityRequirements : & csi.TopologyRequirement {
487
501
Requisite : []* csi.Topology {
@@ -499,7 +513,7 @@ func TestCreateVolumeArguments(t *testing.T) {
499
513
req : & csi.CreateVolumeRequest {
500
514
Name : name ,
501
515
CapacityRange : stdCapRange ,
502
- VolumeCapabilities : stdVolCap ,
516
+ VolumeCapabilities : stdVolCaps ,
503
517
Parameters : map [string ]string {common .ParameterKeyReplicationType : replicationTypeRegionalPD },
504
518
AccessibilityRequirements : & csi.TopologyRequirement {
505
519
Preferred : []* csi.Topology {
@@ -531,7 +545,7 @@ func TestCreateVolumeArguments(t *testing.T) {
531
545
req : & csi.CreateVolumeRequest {
532
546
Name : name ,
533
547
CapacityRange : stdCapRange ,
534
- VolumeCapabilities : stdVolCap ,
548
+ VolumeCapabilities : stdVolCaps ,
535
549
Parameters : map [string ]string {
536
550
common .ParameterKeyReplicationType : replicationTypeRegionalPD ,
537
551
},
@@ -555,7 +569,7 @@ func TestCreateVolumeArguments(t *testing.T) {
555
569
req : & csi.CreateVolumeRequest {
556
570
Name : name ,
557
571
CapacityRange : stdCapRange ,
558
- VolumeCapabilities : stdVolCap ,
572
+ VolumeCapabilities : stdVolCaps ,
559
573
Parameters : map [string ]string {
560
574
common .ParameterKeyReplicationType : replicationTypeRegionalPD ,
561
575
},
@@ -579,7 +593,7 @@ func TestCreateVolumeArguments(t *testing.T) {
579
593
req : & csi.CreateVolumeRequest {
580
594
Name : "test-name" ,
581
595
CapacityRange : stdCapRange ,
582
- VolumeCapabilities : stdVolCap ,
596
+ VolumeCapabilities : stdVolCaps ,
583
597
VolumeContentSource : & csi.VolumeContentSource {
584
598
Type : & csi.VolumeContentSource_Snapshot {
585
599
Snapshot : & csi.VolumeContentSource_SnapshotSource {
@@ -618,7 +632,7 @@ func TestCreateVolumeArguments(t *testing.T) {
618
632
},
619
633
},
620
634
},
621
- expErrCode : codes .Unimplemented ,
635
+ expErrCode : codes .InvalidArgument ,
622
636
},
623
637
{
624
638
name : "fail with both mount and block volume capability" ,
@@ -644,14 +658,14 @@ func TestCreateVolumeArguments(t *testing.T) {
644
658
},
645
659
},
646
660
},
647
- expErrCode : codes .Unimplemented , // once block support is implemented, this error should be InvalidArgument
661
+ expErrCode : codes .InvalidArgument ,
648
662
},
649
663
{
650
664
name : "success with disk encryption kms key" ,
651
665
req : & csi.CreateVolumeRequest {
652
666
Name : name ,
653
667
CapacityRange : stdCapRange ,
654
- VolumeCapabilities : stdVolCap ,
668
+ VolumeCapabilities : stdVolCaps ,
655
669
Parameters : map [string ]string {
656
670
common .ParameterKeyDiskEncryptionKmsKey : "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" ,
657
671
},
@@ -713,7 +727,7 @@ func TestCreateVolumeRandomRequisiteTopology(t *testing.T) {
713
727
req := & csi.CreateVolumeRequest {
714
728
Name : "test-name" ,
715
729
CapacityRange : stdCapRange ,
716
- VolumeCapabilities : stdVolCap ,
730
+ VolumeCapabilities : stdVolCaps ,
717
731
Parameters : map [string ]string {"type" : "test-type" },
718
732
AccessibilityRequirements : & csi.TopologyRequirement {
719
733
Requisite : []* csi.Topology {
0 commit comments