From 5bf5f898b99199faac187598dba9e1652a387d1f Mon Sep 17 00:00:00 2001 From: Rakshith R Date: Fri, 22 Nov 2024 15:31:18 +0530 Subject: [PATCH] e2e: test creation of additional groupSnaps to test minSnapLimit Signed-off-by: Rakshith R (cherry picked from commit afc08c531c03024669172461d52ca6f8662ee56b) --- e2e/cephfs.go | 2 +- e2e/rbd.go | 2 +- e2e/volumegroupsnapshot.go | 10 ++++--- e2e/volumegroupsnapshot_base.go | 52 ++++++++++++++++++++++----------- 4 files changed, 43 insertions(+), 23 deletions(-) diff --git a/e2e/cephfs.go b/e2e/cephfs.go index a239b600a..d36873cfe 100644 --- a/e2e/cephfs.go +++ b/e2e/cephfs.go @@ -2480,7 +2480,7 @@ var _ = Describe(cephfsType, func() { By("test volumeGroupSnapshot", func() { scName := "csi-cephfs-sc" - snapshotter, err := newCephFSVolumeGroupSnapshot(f, f.UniqueName, scName, false, deployTimeout, 3) + snapshotter, err := newCephFSVolumeGroupSnapshot(f, f.UniqueName, scName, false, deployTimeout, 3, 0) if err != nil { framework.Failf("failed to create volumeGroupSnapshot Base: %v", err) } diff --git a/e2e/rbd.go b/e2e/rbd.go index d47469a8b..55bfab877 100644 --- a/e2e/rbd.go +++ b/e2e/rbd.go @@ -4881,7 +4881,7 @@ var _ = Describe("RBD", func() { } scName := "csi-rbd-sc" - snapshotter, err := newRBDVolumeGroupSnapshot(f, f.UniqueName, scName, false, deployTimeout, 3) + snapshotter, err := newRBDVolumeGroupSnapshot(f, f.UniqueName, scName, false, deployTimeout, 3, 5) if err != nil { framework.Failf("failed to create RBDVolumeGroupSnapshot: %v", err) } diff --git a/e2e/volumegroupsnapshot.go b/e2e/volumegroupsnapshot.go index 513f6d607..afcbe3535 100644 --- a/e2e/volumegroupsnapshot.go +++ b/e2e/volumegroupsnapshot.go @@ -35,9 +35,10 @@ var _ VolumeGroupSnapshotter = &cephFSVolumeGroupSnapshot{} func newCephFSVolumeGroupSnapshot(f *framework.Framework, namespace, storageClass string, blockPVC bool, - timeout, totalPVCCount int, + timeout, totalPVCCount, additionalVGSnapshotCount int, ) (VolumeGroupSnapshotter, error) { - base, err := newVolumeGroupSnapshotBase(f, namespace, storageClass, blockPVC, timeout, totalPVCCount) + base, err := newVolumeGroupSnapshotBase(f, namespace, storageClass, blockPVC, + timeout, totalPVCCount, additionalVGSnapshotCount) if err != nil { return nil, fmt.Errorf("failed to create volumeGroupSnapshotterBase: %w", err) } @@ -144,9 +145,10 @@ var _ VolumeGroupSnapshotter = &rbdVolumeGroupSnapshot{} func newRBDVolumeGroupSnapshot(f *framework.Framework, namespace, storageClass string, blockPVC bool, - timeout, totalPVCCount int, + timeout, totalPVCCount, additionalVGSnapshotCount int, ) (VolumeGroupSnapshotter, error) { - base, err := newVolumeGroupSnapshotBase(f, namespace, storageClass, blockPVC, timeout, totalPVCCount) + base, err := newVolumeGroupSnapshotBase(f, namespace, storageClass, blockPVC, + timeout, totalPVCCount, additionalVGSnapshotCount) if err != nil { return nil, fmt.Errorf("failed to create volumeGroupSnapshotterBase: %w", err) } diff --git a/e2e/volumegroupsnapshot_base.go b/e2e/volumegroupsnapshot_base.go index 45aa6bbc1..8740d0c1e 100644 --- a/e2e/volumegroupsnapshot_base.go +++ b/e2e/volumegroupsnapshot_base.go @@ -75,20 +75,21 @@ type VolumeGroupSnapshotter interface { } type volumeGroupSnapshotterBase struct { - timeout int - framework *framework.Framework - groupclient *groupsnapclient.GroupsnapshotV1beta1Client - snapClient *snapclient.SnapshotV1Client - storageClassName string - blockPVC bool - totalPVCCount int - namespace string + timeout int + framework *framework.Framework + groupclient *groupsnapclient.GroupsnapshotV1beta1Client + snapClient *snapclient.SnapshotV1Client + storageClassName string + blockPVC bool + totalPVCCount int + additionalVGSnapshotCount int + namespace string } func newVolumeGroupSnapshotBase(f *framework.Framework, namespace, storageClass string, blockPVC bool, - timeout, totalPVCCount int, + timeout, totalPVCCount, additionalVGSnapshotCount int, ) (*volumeGroupSnapshotterBase, error) { config, err := framework.LoadConfig() if err != nil { @@ -105,14 +106,15 @@ func newVolumeGroupSnapshotBase(f *framework.Framework, namespace, } return &volumeGroupSnapshotterBase{ - framework: f, - groupclient: c, - snapClient: s, - namespace: namespace, - storageClassName: storageClass, - blockPVC: blockPVC, - timeout: timeout, - totalPVCCount: totalPVCCount, + framework: f, + groupclient: c, + snapClient: s, + namespace: namespace, + storageClassName: storageClass, + blockPVC: blockPVC, + timeout: timeout, + totalPVCCount: totalPVCCount, + additionalVGSnapshotCount: additionalVGSnapshotCount, }, err } @@ -478,6 +480,22 @@ func (v *volumeGroupSnapshotterBase) testVolumeGroupSnapshot(vol VolumeGroupSnap return fmt.Errorf("failed to create volume group snapshot: %w", err) } + // Create and delete additional group snapshots. + for i := range v.additionalVGSnapshotCount { + newVGSName := fmt.Sprintf("%s-%d", vgsName, i) + _, err = v.CreateVolumeGroupSnapshot(newVGSName, vgscName, pvcLabels) + if err != nil { + return fmt.Errorf("failed to create volume group snapshot %q: %w", newVGSName, err) + } + } + for i := range v.additionalVGSnapshotCount { + newVGSName := fmt.Sprintf("%s-%d", vgsName, i) + err = v.DeleteVolumeGroupSnapshot(newVGSName) + if err != nil { + return fmt.Errorf("failed to delete volume group snapshot %q: %w", newVGSName, err) + } + } + clonePVCs, err := v.CreatePVCClones(volumeGroupSnapshot) if err != nil { return fmt.Errorf("failed to create clones: %w", err)