@@ -2963,6 +2963,7 @@ func TestProvisionFromSnapshot(t *testing.T) {
29632963 nilContentStatus bool
29642964 nilSnapshotHandle bool
29652965 allowVolumeModeChange bool
2966+ snapshotBeingDeleted bool // set DeletionTimestamp on snapshot
29662967 xnsEnabled bool // set to use CrossNamespaceVolumeDataSource feature, default false
29672968 snapNamespace string
29682969 withreferenceGrants bool // set to use ReferenceGrant, default false
@@ -4486,6 +4487,55 @@ func TestProvisionFromSnapshot(t *testing.T) {
44864487 referenceGrantFrom : []gatewayv1beta1.ReferenceGrantFrom {},
44874488 referenceGrantTo : []gatewayv1beta1.ReferenceGrantTo {},
44884489 },
4490+ "provision with snapshot being deleted should proceed for cleanup" : {
4491+ volOpts : controller.ProvisionOptions {
4492+ StorageClass : & storagev1.StorageClass {
4493+ ReclaimPolicy : & deletePolicy ,
4494+ Parameters : map [string ]string {},
4495+ Provisioner : "test-driver" ,
4496+ },
4497+ PVName : "test-name" ,
4498+ PVC : & v1.PersistentVolumeClaim {
4499+ ObjectMeta : metav1.ObjectMeta {
4500+ UID : "testid" ,
4501+ Annotations : driverNameAnnotation ,
4502+ },
4503+ Spec : v1.PersistentVolumeClaimSpec {
4504+ StorageClassName : & snapClassName ,
4505+ Resources : v1.VolumeResourceRequirements {
4506+ Requests : v1.ResourceList {
4507+ v1 .ResourceName (v1 .ResourceStorage ): resource .MustParse (strconv .FormatInt (requestedBytes , 10 )),
4508+ },
4509+ },
4510+ AccessModes : []v1.PersistentVolumeAccessMode {v1 .ReadWriteOnce },
4511+ DataSource : & v1.TypedLocalObjectReference {
4512+ Name : snapName ,
4513+ Kind : "VolumeSnapshot" ,
4514+ APIGroup : & apiGrp ,
4515+ },
4516+ },
4517+ },
4518+ },
4519+ snapshotStatusReady : true ,
4520+ snapshotBeingDeleted : true ,
4521+ expectedPVSpec : & pvSpec {
4522+ Name : "test-testi" ,
4523+ ReclaimPolicy : v1 .PersistentVolumeReclaimDelete ,
4524+ AccessModes : []v1.PersistentVolumeAccessMode {v1 .ReadWriteOnce },
4525+ Capacity : v1.ResourceList {
4526+ v1 .ResourceName (v1 .ResourceStorage ): bytesToQuantity (requestedBytes ),
4527+ },
4528+ CSIPVS : & v1.CSIPersistentVolumeSource {
4529+ Driver : "test-driver" ,
4530+ VolumeHandle : "test-volume-id" ,
4531+ FSType : "ext4" ,
4532+ VolumeAttributes : map [string ]string {
4533+ "storage.kubernetes.io/csiProvisionerIdentity" : "test-provisioner" ,
4534+ },
4535+ },
4536+ },
4537+ expectCSICall : true ,
4538+ },
44894539 }
44904540
44914541 tmpdir := tempDir (t )
@@ -4516,6 +4566,10 @@ func TestProvisionFromSnapshot(t *testing.T) {
45164566 if tc .nilReadyToUse {
45174567 snap .Status .ReadyToUse = nil
45184568 }
4569+ if tc .snapshotBeingDeleted {
4570+ deletionTime := metav1 .Now ()
4571+ snap .ObjectMeta .DeletionTimestamp = & deletionTime
4572+ }
45194573 return true , snap , nil
45204574 })
45214575
0 commit comments