@@ -568,8 +568,6 @@ func TestCreateVolumeSpec_Invalid_Block_VolumeMounts(t *testing.T) {
568
568
}
569
569
570
570
func TestCheckVolumeFSResize (t * testing.T ) {
571
- mode := v1 .PersistentVolumeFilesystem
572
-
573
571
setCapacity := func (pv * v1.PersistentVolume , pvc * v1.PersistentVolumeClaim , capacity int ) {
574
572
pv .Spec .Capacity = volumeCapacity (capacity )
575
573
pvc .Spec .Resources .Requests = volumeCapacity (capacity )
@@ -580,6 +578,7 @@ func TestCheckVolumeFSResize(t *testing.T) {
580
578
verify func (* testing.T , []v1.UniqueVolumeName , v1.UniqueVolumeName )
581
579
enableResize bool
582
580
readOnlyVol bool
581
+ volumeMode v1.PersistentVolumeMode
583
582
}{
584
583
{
585
584
// No resize request for volume, volumes in ASW shouldn't be marked as fsResizeRequired
@@ -591,6 +590,7 @@ func TestCheckVolumeFSResize(t *testing.T) {
591
590
}
592
591
},
593
592
enableResize : true ,
593
+ volumeMode : v1 .PersistentVolumeFilesystem ,
594
594
},
595
595
{
596
596
// Disable the feature gate, so volume shouldn't be marked as fsResizeRequired
@@ -603,6 +603,7 @@ func TestCheckVolumeFSResize(t *testing.T) {
603
603
}
604
604
},
605
605
enableResize : false ,
606
+ volumeMode : v1 .PersistentVolumeFilesystem ,
606
607
},
607
608
{
608
609
// Make volume used as ReadOnly, so volume shouldn't be marked as fsResizeRequired
@@ -616,6 +617,7 @@ func TestCheckVolumeFSResize(t *testing.T) {
616
617
},
617
618
readOnlyVol : true ,
618
619
enableResize : true ,
620
+ volumeMode : v1 .PersistentVolumeFilesystem ,
619
621
},
620
622
{
621
623
// Clear ASW, so volume shouldn't be marked as fsResizeRequired because they are not mounted
@@ -629,6 +631,7 @@ func TestCheckVolumeFSResize(t *testing.T) {
629
631
}
630
632
},
631
633
enableResize : true ,
634
+ volumeMode : v1 .PersistentVolumeFilesystem ,
632
635
},
633
636
{
634
637
// volume in ASW should be marked as fsResizeRequired
@@ -647,6 +650,26 @@ func TestCheckVolumeFSResize(t *testing.T) {
647
650
}
648
651
},
649
652
enableResize : true ,
653
+ volumeMode : v1 .PersistentVolumeFilesystem ,
654
+ },
655
+ {
656
+ // volume in ASW should be marked as fsResizeRequired
657
+ resize : func (_ * testing.T , pv * v1.PersistentVolume , pvc * v1.PersistentVolumeClaim , _ * desiredStateOfWorldPopulator ) {
658
+ setCapacity (pv , pvc , 2 )
659
+ },
660
+ verify : func (t * testing.T , vols []v1.UniqueVolumeName , volName v1.UniqueVolumeName ) {
661
+ if len (vols ) == 0 {
662
+ t .Fatalf ("Request resize for volume, but volume in ASW hasn't been marked as fsResizeRequired" )
663
+ }
664
+ if len (vols ) != 1 {
665
+ t .Errorf ("Some unexpected volumes are marked as fsResizeRequired: %v" , vols )
666
+ }
667
+ if vols [0 ] != volName {
668
+ t .Fatalf ("Mark wrong volume as fsResizeRequired: %s" , vols [0 ])
669
+ }
670
+ },
671
+ enableResize : true ,
672
+ volumeMode : v1 .PersistentVolumeBlock ,
650
673
},
651
674
}
652
675
@@ -659,7 +682,7 @@ func TestCheckVolumeFSResize(t *testing.T) {
659
682
PersistentVolumeSource : v1.PersistentVolumeSource {RBD : & v1.RBDPersistentVolumeSource {}},
660
683
Capacity : volumeCapacity (1 ),
661
684
ClaimRef : & v1.ObjectReference {Namespace : "ns" , Name : "file-bound" },
662
- VolumeMode : & mode ,
685
+ VolumeMode : & tc . volumeMode ,
663
686
},
664
687
}
665
688
pvc := & v1.PersistentVolumeClaim {
@@ -677,20 +700,31 @@ func TestCheckVolumeFSResize(t *testing.T) {
677
700
678
701
dswp , fakePodManager , fakeDSW := createDswpWithVolume (t , pv , pvc )
679
702
fakeASW := dswp .actualStateOfWorld
703
+ containers := []v1.Container {}
680
704
681
- // create pod
682
- containers := []v1.Container {
683
- {
705
+ if tc .volumeMode == v1 .PersistentVolumeFilesystem {
706
+ containers = append (containers , v1.Container {
684
707
VolumeMounts : []v1.VolumeMount {
685
708
{
686
709
Name : pv .Name ,
687
710
MountPath : "/mnt" ,
688
711
ReadOnly : tc .readOnlyVol ,
689
712
},
690
713
},
691
- },
714
+ })
715
+ } else {
716
+ containers = append (containers , v1.Container {
717
+ VolumeDevices : []v1.VolumeDevice {
718
+ {
719
+ Name : pv .Name ,
720
+ DevicePath : "/mnt/foobar" ,
721
+ },
722
+ },
723
+ })
692
724
}
725
+
693
726
pod := createPodWithVolume ("dswp-test-pod" , "dswp-test-volume-name" , "file-bound" , containers )
727
+ pod .Spec .Volumes [0 ].VolumeSource .PersistentVolumeClaim .ReadOnly = tc .readOnlyVol
694
728
uniquePodName := types .UniquePodName (pod .UID )
695
729
uniqueVolumeName := v1 .UniqueVolumeName ("fake-plugin/" + pod .Spec .Volumes [0 ].Name )
696
730
0 commit comments