e2e: validate omap objects per rbd test case

validate omap count in every testcase right after
validateRBDImageCount()

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
This commit is contained in:
Prasanna Kumar Kalever 2022-04-25 17:19:04 +05:30 committed by mergify[bot]
parent 53f96a8b2a
commit dcf51a10b1

View File

@ -212,7 +212,7 @@ func checkGetKeyError(err error, stdErr string) bool {
} }
var _ = Describe("RBD", func() { var _ = Describe("RBD", func() {
f := framework.NewDefaultFramework("rbd") f := framework.NewDefaultFramework(rbdType)
var c clientset.Interface var c clientset.Interface
var kernelRelease string var kernelRelease string
// deploy RBD CSI // deploy RBD CSI
@ -373,6 +373,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// Deleting the storageclass and secret created by helm // Deleting the storageclass and secret created by helm
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
@ -403,6 +404,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
imageList, err := listRBDImages(f, defaultRBDPool) imageList, err := listRBDImages(f, defaultRBDPool)
if err != nil { if err != nil {
@ -456,6 +458,7 @@ var _ = Describe("RBD", func() {
e2elog.Failf("failed to delete pvc: %v", err) e2elog.Failf("failed to delete pvc: %v", err)
} }
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("reattach the old PV to a new PVC and check if PVC metadata is updated on RBD image", func() { By("reattach the old PV to a new PVC and check if PVC metadata is updated on RBD image", func() {
@ -471,6 +474,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
imageList, err := listRBDImages(f, defaultRBDPool) imageList, err := listRBDImages(f, defaultRBDPool)
if err != nil { if err != nil {
@ -537,6 +541,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
pvcObj.Name = "rbd-pvc-new" pvcObj.Name = "rbd-pvc-new"
// unset the resource version as should not be set on objects to be created // unset the resource version as should not be set on objects to be created
@ -548,6 +553,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
pvcName, stdErr, err = execCommandInToolBoxPod(f, pvcName, stdErr, err = execCommandInToolBoxPod(f,
fmt.Sprintf("rbd image-meta get %s --image=%s %s", fmt.Sprintf("rbd image-meta get %s --image=%s %s",
@ -577,6 +583,7 @@ var _ = Describe("RBD", func() {
e2elog.Failf("failed to delete pvc: %v", err) e2elog.Failf("failed to delete pvc: %v", err)
} }
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("create a snapshot and check metadata on RBD snapshot image", func() { By("create a snapshot and check metadata on RBD snapshot image", func() {
@ -597,6 +604,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
// delete pod as we should not create snapshot for in-use pvc // delete pod as we should not create snapshot for in-use pvc
err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout) err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout)
if err != nil { if err != nil {
@ -615,6 +623,8 @@ var _ = Describe("RBD", func() {
// parent PVC + snapshot // parent PVC + snapshot
totalImages := 2 totalImages := 2
validateRBDImageCount(f, totalImages, defaultRBDPool) validateRBDImageCount(f, totalImages, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
imageList, err := listRBDImages(f, defaultRBDPool) imageList, err := listRBDImages(f, defaultRBDPool)
if err != nil { if err != nil {
@ -701,6 +711,7 @@ var _ = Describe("RBD", func() {
e2elog.Failf("failed to delete pvc: %v", err) e2elog.Failf("failed to delete pvc: %v", err)
} }
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("verify generic ephemeral volume support", func() { By("verify generic ephemeral volume support", func() {
@ -718,12 +729,14 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout) err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout)
if err != nil { if err != nil {
e2elog.Failf("failed to delete application: %v", err) e2elog.Failf("failed to delete application: %v", err)
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// validate images in trash // validate images in trash
err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout) err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout)
if err != nil { if err != nil {
@ -743,6 +756,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// Block PVC resize // Block PVC resize
err = resizePVCAndValidateSize(rawPvcPath, rawAppPath, f) err = resizePVCAndValidateSize(rawPvcPath, rawAppPath, f)
@ -781,6 +795,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = tearDownMigrationSetup(f) err = tearDownMigrationSetup(f)
if err != nil { if err != nil {
e2elog.Failf("failed to tear down migration setup: %v", err) e2elog.Failf("failed to tear down migration setup: %v", err)
@ -798,6 +813,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("create a PVC and bind it to an app", func() { By("create a PVC and bind it to an app", func() {
@ -807,6 +823,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("create a PVC and bind it to an app with normal user", func() { By("create a PVC and bind it to an app with normal user", func() {
@ -816,6 +833,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("create a Block mode RWOP PVC and bind it to more than one app", func() { By("create a Block mode RWOP PVC and bind it to more than one app", func() {
@ -843,6 +861,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
err = createApp(f.ClientSet, app, deployTimeout) err = createApp(f.ClientSet, app, deployTimeout)
if err != nil { if err != nil {
@ -854,6 +873,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
} }
}) })
@ -882,6 +902,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
err = createApp(f.ClientSet, app, deployTimeout) err = createApp(f.ClientSet, app, deployTimeout)
if err != nil { if err != nil {
@ -893,6 +914,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
} }
}) })
@ -928,6 +950,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("create an erasure coded PVC and validate snapshot restore", func() { By("create an erasure coded PVC and validate snapshot restore", func() {
@ -987,6 +1010,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -1022,6 +1046,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -1060,6 +1085,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// FileSystem PVC resize // FileSystem PVC resize
err = resizePVCAndValidateSize(pvcPath, appPath, f) err = resizePVCAndValidateSize(pvcPath, appPath, f)
@ -1068,6 +1094,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -1104,6 +1131,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -1145,6 +1173,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
if util.CheckKernelSupport(kernelRelease, deepFlattenSupport) { if util.CheckKernelSupport(kernelRelease, deepFlattenSupport) {
app, aErr := loadApp(appPath) app, aErr := loadApp(appPath)
@ -1170,6 +1199,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("create PVC with layering,deep-flatten image-features and bind it to an app", By("create PVC with layering,deep-flatten image-features and bind it to an app",
@ -1202,6 +1232,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
// checking the minimal kernel version for fast-diff as its // checking the minimal kernel version for fast-diff as its
// higher kernel version than other default image features. // higher kernel version than other default image features.
@ -1229,6 +1260,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("create PVC with journaling,fast-diff image-features and bind it to an app using rbd-nbd mounter", By("create PVC with journaling,fast-diff image-features and bind it to an app using rbd-nbd mounter",
@ -1258,6 +1290,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -1340,6 +1373,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// validate images in trash // validate images in trash
err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout) err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout)
if err != nil { if err != nil {
@ -1393,6 +1427,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout) err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout)
if err != nil { if err != nil {
e2elog.Failf("failed to delete application: %v", err) e2elog.Failf("failed to delete application: %v", err)
@ -1425,6 +1460,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 3, defaultRBDPool) validateRBDImageCount(f, 3, defaultRBDPool)
validateOmapCount(f, 2, rbdType, defaultRBDPool, volumesType)
filePath := appClone.Spec.Template.Spec.Containers[0].VolumeMounts[0].MountPath + "/test" filePath := appClone.Spec.Template.Spec.Containers[0].VolumeMounts[0].MountPath + "/test"
cmd := fmt.Sprintf("echo 'Hello World' > %s", filePath) cmd := fmt.Sprintf("echo 'Hello World' > %s", filePath)
@ -1462,6 +1498,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// validate images in trash // validate images in trash
err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout) err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout)
if err != nil { if err != nil {
@ -1515,6 +1552,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout) err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout)
if err != nil { if err != nil {
e2elog.Failf("failed to delete application: %v", err) e2elog.Failf("failed to delete application: %v", err)
@ -1549,6 +1587,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 3, defaultRBDPool) validateRBDImageCount(f, 3, defaultRBDPool)
validateOmapCount(f, 2, rbdType, defaultRBDPool, volumesType)
devPath := appClone.Spec.Template.Spec.Containers[0].VolumeDevices[0].DevicePath devPath := appClone.Spec.Template.Spec.Containers[0].VolumeDevices[0].DevicePath
cmd := fmt.Sprintf("dd if=/dev/zero of=%s bs=1M count=10", devPath) cmd := fmt.Sprintf("dd if=/dev/zero of=%s bs=1M count=10", devPath)
@ -1585,6 +1624,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// validate images in trash // validate images in trash
err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout) err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout)
if err != nil { if err != nil {
@ -1659,6 +1699,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
selector, err := getDaemonSetLabelSelector(f, cephCSINamespace, rbdDaemonsetName) selector, err := getDaemonSetLabelSelector(f, cephCSINamespace, rbdDaemonsetName)
if err != nil { if err != nil {
@ -1752,6 +1793,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -1789,6 +1831,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -1820,6 +1863,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -1853,6 +1897,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// Block PVC resize // Block PVC resize
err = resizePVCAndValidateSize(rawPvcPath, rawAppPath, f) err = resizePVCAndValidateSize(rawPvcPath, rawAppPath, f)
@ -1861,6 +1906,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
@ -1891,6 +1937,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -1934,6 +1981,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// delete the Secret of the Tenant // delete the Secret of the Tenant
err = c.CoreV1().Secrets(tenant).Delete(context.TODO(), token.Name, metav1.DeleteOptions{}) err = c.CoreV1().Secrets(tenant).Delete(context.TODO(), token.Name, metav1.DeleteOptions{})
@ -1977,6 +2025,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -2006,6 +2055,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -2045,6 +2095,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// delete user secret // delete user secret
err = retryKubectlFile(namespace, err = retryKubectlFile(namespace,
@ -2097,6 +2148,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// delete user secret // delete user secret
err = retryKubectlFile( err = retryKubectlFile(
@ -2261,6 +2313,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = createRBDStorageClass(f.ClientSet, f, defaultSCName, nil, nil, deletePolicy) err = createRBDStorageClass(f.ClientSet, f, defaultSCName, nil, nil, deletePolicy)
if err != nil { if err != nil {
@ -2445,6 +2498,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, totalCount, defaultRBDPool) validateRBDImageCount(f, totalCount, defaultRBDPool)
validateOmapCount(f, totalCount, rbdType, defaultRBDPool, volumesType)
// delete PVC and app // delete PVC and app
for i := 0; i < totalCount; i++ { for i := 0; i < totalCount; i++ {
name := fmt.Sprintf("%s%d", f.UniqueName, i) name := fmt.Sprintf("%s%d", f.UniqueName, i)
@ -2457,6 +2511,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("check data persist after recreating pod", func() { By("check data persist after recreating pod", func() {
@ -2466,6 +2521,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("Resize Filesystem PVC and check application directory size", func() { By("Resize Filesystem PVC and check application directory size", func() {
@ -2494,6 +2550,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("Resize Block PVC and check Device size", func() { By("Resize Block PVC and check Device size", func() {
@ -2503,6 +2560,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("Test unmount after nodeplugin restart", func() { By("Test unmount after nodeplugin restart", func() {
@ -2524,6 +2582,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
// delete rbd nodeplugin pods // delete rbd nodeplugin pods
err = deletePodWithLabel("app=csi-rbdplugin", cephCSINamespace, false) err = deletePodWithLabel("app=csi-rbdplugin", cephCSINamespace, false)
if err != nil { if err != nil {
@ -2541,6 +2600,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("create PVC in storageClass with volumeNamePrefix", func() { By("create PVC in storageClass with volumeNamePrefix", func() {
@ -2572,6 +2632,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
// list RBD images and check if one of them has the same prefix // list RBD images and check if one of them has the same prefix
foundIt := false foundIt := false
images, err := listRBDImages(f, defaultRBDPool) images, err := listRBDImages(f, defaultRBDPool)
@ -2594,6 +2655,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
@ -2615,6 +2677,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("validate RBD static Block PVC", func() { By("validate RBD static Block PVC", func() {
@ -2624,6 +2687,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("validate failure of RBD static PVC without imageFeatures parameter", func() { By("validate failure of RBD static PVC without imageFeatures parameter", func() {
@ -2633,6 +2697,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("validate mount options in app pod", func() { By("validate mount options in app pod", func() {
@ -2643,6 +2708,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("creating an app with a PVC, using a topology constrained StorageClass", func() { By("creating an app with a PVC, using a topology constrained StorageClass", func() {
@ -2677,6 +2743,7 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
e2elog.Failf("failed to create PVC and application: %v", err) e2elog.Failf("failed to create PVC and application: %v", err)
} }
By("ensuring created PV has required node selector values populated") By("ensuring created PV has required node selector values populated")
err = checkPVSelectorValuesForPVC(f, pvc) err = checkPVSelectorValuesForPVC(f, pvc)
if err != nil { if err != nil {
@ -2704,6 +2771,8 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
e2elog.Failf("failed to delete PVC and application: %v", err) e2elog.Failf("failed to delete PVC and application: %v", err)
} }
validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
By("checking if data pool parameter is honored", func() { By("checking if data pool parameter is honored", func() {
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
@ -2743,6 +2812,8 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
e2elog.Failf("failed to delete PVC and application: %v", err) e2elog.Failf("failed to delete PVC and application: %v", err)
} }
validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
// cleanup and undo changes made by the test // cleanup and undo changes made by the test
@ -2754,6 +2825,8 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
e2elog.Failf("failed to create storageclass: %v", err) e2elog.Failf("failed to create storageclass: %v", err)
} }
validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
// Mount pvc to pod with invalid mount option,expected that // Mount pvc to pod with invalid mount option,expected that
@ -2790,6 +2863,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
// create an app and wait for 1 min for it to go to running state // create an app and wait for 1 min for it to go to running state
err = createApp(f.ClientSet, app, 1) err = createApp(f.ClientSet, app, 1)
@ -2803,6 +2877,7 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = deleteResource(rbdExamplePath + "storageclass.yaml") err = deleteResource(rbdExamplePath + "storageclass.yaml")
if err != nil { if err != nil {
e2elog.Failf("failed to delete storageclass: %v", err) e2elog.Failf("failed to delete storageclass: %v", err)
@ -2899,6 +2974,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
// delete pod as we should not create snapshot for in-use pvc // delete pod as we should not create snapshot for in-use pvc
err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout) err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout)
if err != nil { if err != nil {
@ -2917,6 +2993,8 @@ var _ = Describe("RBD", func() {
// parent PVC + snapshot // parent PVC + snapshot
totalImages := 2 totalImages := 2
validateRBDImageCount(f, totalImages, defaultRBDPool) validateRBDImageCount(f, totalImages, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
pvcClone, err := loadPVC(pvcClonePath) pvcClone, err := loadPVC(pvcClonePath)
if err != nil { if err != nil {
e2elog.Failf("failed to load PVC: %v", err) e2elog.Failf("failed to load PVC: %v", err)
@ -2933,6 +3011,8 @@ var _ = Describe("RBD", func() {
// parent pvc+ snapshot + clone // parent pvc+ snapshot + clone
totalImages = 3 totalImages = 3
validateRBDImageCount(f, totalImages, defaultRBDPool) validateRBDImageCount(f, totalImages, defaultRBDPool)
validateOmapCount(f, 2, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
appClone, err := loadApp(appClonePath) appClone, err := loadApp(appClonePath)
if err != nil { if err != nil {
@ -3001,6 +3081,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("validate PVC mounting if snapshot and parent PVC are deleted", func() { By("validate PVC mounting if snapshot and parent PVC are deleted", func() {
@ -3033,6 +3114,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
snap := getSnapshot(snapshotPath) snap := getSnapshot(snapshotPath)
snap.Namespace = f.UniqueName snap.Namespace = f.UniqueName
@ -3046,6 +3128,8 @@ var _ = Describe("RBD", func() {
// parent PVC + snapshot // parent PVC + snapshot
totalImages := 2 totalImages := 2
validateRBDImageCount(f, totalImages, defaultRBDPool) validateRBDImageCount(f, totalImages, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
pvcClone, err := loadPVC(pvcClonePath) pvcClone, err := loadPVC(pvcClonePath)
if err != nil { if err != nil {
e2elog.Failf("failed to load PVC: %v", err) e2elog.Failf("failed to load PVC: %v", err)
@ -3058,6 +3142,8 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
// create clone PVC // create clone PVC
pvcClone.Namespace = f.UniqueName pvcClone.Namespace = f.UniqueName
@ -3068,6 +3154,8 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images = snapshot + clone // validate created backend rbd images = snapshot + clone
totalImages = 2 totalImages = 2
validateRBDImageCount(f, totalImages, defaultRBDPool) validateRBDImageCount(f, totalImages, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
// delete snapshot // delete snapshot
err = deleteSnapshot(&snap, deployTimeout) err = deleteSnapshot(&snap, deployTimeout)
@ -3078,6 +3166,8 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images = clone // validate created backend rbd images = clone
totalImages = 1 totalImages = 1
validateRBDImageCount(f, totalImages, defaultRBDPool) validateRBDImageCount(f, totalImages, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 0, rbdType, defaultRBDPool, snapsType)
appClone, err := loadApp(appClonePath) appClone, err := loadApp(appClonePath)
if err != nil { if err != nil {
@ -3103,6 +3193,8 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 0, rbdType, defaultRBDPool, snapsType)
}) })
By( By(
@ -3167,6 +3259,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
for i := 0; i < snapChainDepth; i++ { for i := 0; i < snapChainDepth; i++ {
var pvcClone *v1.PersistentVolumeClaim var pvcClone *v1.PersistentVolumeClaim
snap := getSnapshot(snapshotPath) snap := getSnapshot(snapshotPath)
@ -3182,6 +3275,8 @@ var _ = Describe("RBD", func() {
// parent PVC + snapshot // parent PVC + snapshot
totalImages := 2 totalImages := 2
validateRBDImageCount(f, totalImages, defaultRBDPool) validateRBDImageCount(f, totalImages, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
pvcClone, err = loadPVC(pvcClonePath) pvcClone, err = loadPVC(pvcClonePath)
if err != nil { if err != nil {
e2elog.Failf("failed to load PVC: %v", err) e2elog.Failf("failed to load PVC: %v", err)
@ -3194,6 +3289,8 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
// create clone PVC // create clone PVC
pvcClone.Name = fmt.Sprintf("%s-%d", pvcClone.Name, i) pvcClone.Name = fmt.Sprintf("%s-%d", pvcClone.Name, i)
@ -3206,6 +3303,8 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images = snapshot + clone // validate created backend rbd images = snapshot + clone
totalImages = 2 totalImages = 2
validateRBDImageCount(f, totalImages, defaultRBDPool) validateRBDImageCount(f, totalImages, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
// delete snapshot // delete snapshot
err = deleteSnapshot(&snap, deployTimeout) err = deleteSnapshot(&snap, deployTimeout)
@ -3216,6 +3315,8 @@ var _ = Describe("RBD", func() {
// validate created backend rbd images = clone // validate created backend rbd images = clone
totalImages = 1 totalImages = 1
validateRBDImageCount(f, totalImages, defaultRBDPool) validateRBDImageCount(f, totalImages, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 0, rbdType, defaultRBDPool, snapsType)
app.Spec.Volumes[0].PersistentVolumeClaim.ClaimName = pvcClone.Name app.Spec.Volumes[0].PersistentVolumeClaim.ClaimName = pvcClone.Name
// create application // create application
@ -3238,6 +3339,8 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 0, rbdType, defaultRBDPool, snapsType)
}) })
By("validate PVC Clone chained with depth 2", func() { By("validate PVC Clone chained with depth 2", func() {
@ -3290,6 +3393,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
for i := 0; i < cloneChainDepth; i++ { for i := 0; i < cloneChainDepth; i++ {
var pvcClone *v1.PersistentVolumeClaim var pvcClone *v1.PersistentVolumeClaim
@ -3334,6 +3438,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("ensuring all operations will work within a rados namespace", func() { By("ensuring all operations will work within a rados namespace", func() {
@ -3419,6 +3524,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
// Create a PVC and bind it to an app within the namesapce // Create a PVC and bind it to an app within the namesapce
err = validatePVCAndAppBinding(pvcPath, appPath, f) err = validatePVCAndAppBinding(pvcPath, appPath, f)
@ -3462,6 +3568,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
snap := getSnapshot(snapshotPath) snap := getSnapshot(snapshotPath)
snap.Namespace = f.UniqueName snap.Namespace = f.UniqueName
@ -3471,6 +3578,8 @@ var _ = Describe("RBD", func() {
e2elog.Failf("failed to create snapshot: %v", err) e2elog.Failf("failed to create snapshot: %v", err)
} }
validateRBDImageCount(f, 2, defaultRBDPool) validateRBDImageCount(f, 2, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 1, rbdType, defaultRBDPool, snapsType)
err = validatePVCAndAppBinding(pvcClonePath, appClonePath, f) err = validatePVCAndAppBinding(pvcClonePath, appClonePath, f)
if err != nil { if err != nil {
@ -3482,12 +3591,16 @@ var _ = Describe("RBD", func() {
} }
// as snapshot is deleted the image count should be one // as snapshot is deleted the image count should be one
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 0, rbdType, defaultRBDPool, snapsType)
err = deletePVCAndValidatePV(f.ClientSet, pvc, deployTimeout) err = deletePVCAndValidatePV(f.ClientSet, pvc, deployTimeout)
if err != nil { if err != nil {
e2elog.Failf("failed to delete PVC: %v", err) e2elog.Failf("failed to delete PVC: %v", err)
} }
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
validateOmapCount(f, 0, rbdType, defaultRBDPool, snapsType)
err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout) err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout)
if err != nil { if err != nil {
@ -3554,6 +3667,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 1, defaultRBDPool) validateRBDImageCount(f, 1, defaultRBDPool)
validateOmapCount(f, 1, rbdType, defaultRBDPool, volumesType)
opt := metav1.ListOptions{ opt := metav1.ListOptions{
LabelSelector: fmt.Sprintf("app=%s", app.Name), LabelSelector: fmt.Sprintf("app=%s", app.Name),
@ -3577,6 +3691,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
}) })
By("create a PVC and Bind it to an app for mapped rbd image with options", func() { By("create a PVC and Bind it to an app for mapped rbd image with options", func() {
@ -3622,6 +3737,7 @@ var _ = Describe("RBD", func() {
} }
// validate created backend rbd images // validate created backend rbd images
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = createRBDStorageClass(f.ClientSet, f, defaultSCName, nil, nil, deletePolicy) err = createRBDStorageClass(f.ClientSet, f, defaultSCName, nil, nil, deletePolicy)
if err != nil { if err != nil {
e2elog.Failf("failed to create storageclass : %v", err) e2elog.Failf("failed to create storageclass : %v", err)
@ -3631,6 +3747,7 @@ var _ = Describe("RBD", func() {
By("validate image deletion when it is moved to trash", func() { By("validate image deletion when it is moved to trash", func() {
// make sure pool is empty // make sure pool is empty
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err := createRBDSnapshotClass(f) err := createRBDSnapshotClass(f)
if err != nil { if err != nil {
@ -3724,6 +3841,7 @@ var _ = Describe("RBD", func() {
} }
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout) err = waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout)
if err != nil { if err != nil {
@ -3835,6 +3953,7 @@ var _ = Describe("RBD", func() {
By("validate image deletion", func() { By("validate image deletion", func() {
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err := waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout) err := waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout)
if err != nil { if err != nil {
e2elog.Failf("failed to validate rbd images in pool %s trash: %v", defaultRBDPool, err) e2elog.Failf("failed to validate rbd images in pool %s trash: %v", defaultRBDPool, err)
@ -3906,6 +4025,7 @@ var _ = Describe("RBD", func() {
By("validate image deletion", func() { By("validate image deletion", func() {
validateRBDImageCount(f, 0, defaultRBDPool) validateRBDImageCount(f, 0, defaultRBDPool)
validateOmapCount(f, 0, rbdType, defaultRBDPool, volumesType)
err := waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout) err := waitToRemoveImagesFromTrash(f, defaultRBDPool, deployTimeout)
if err != nil { if err != nil {
e2elog.Failf("failed to validate rbd images in pool %s trash: %v", defaultRBDPool, err) e2elog.Failf("failed to validate rbd images in pool %s trash: %v", defaultRBDPool, err)