e2e: add backend validation for pvc restore and clone

added backend subvolume validation for cephfs
snapshot restore and pvc to pvc clone.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
Madhu Rajanna 2020-08-10 11:02:10 +05:30 committed by mergify[bot]
parent 2307687dc2
commit b5320d9273

View File

@ -26,6 +26,7 @@ var (
cephfsDirPath = "../deploy/cephfs/kubernetes/" cephfsDirPath = "../deploy/cephfs/kubernetes/"
cephfsExamplePath = "../examples/cephfs/" cephfsExamplePath = "../examples/cephfs/"
subvolumegroup = "e2e" subvolumegroup = "e2e"
fileSystemName = "myfs"
) )
func deployCephfsPlugin() { func deployCephfsPlugin() {
@ -232,7 +233,7 @@ var _ = Describe("cephfs", func() {
} }
} }
subVol := listCephFSSubVolumes(f, "myfs", subvolumegroup) subVol := listCephFSSubVolumes(f, fileSystemName, subvolumegroup)
if len(subVol) != totalCount { if len(subVol) != totalCount {
msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), totalCount) msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), totalCount)
e2elog.Logf(msg) e2elog.Logf(msg)
@ -247,7 +248,7 @@ var _ = Describe("cephfs", func() {
} }
} }
subVol = listCephFSSubVolumes(f, "myfs", subvolumegroup) subVol = listCephFSSubVolumes(f, fileSystemName, subvolumegroup)
if len(subVol) != 0 { if len(subVol) != 0 {
msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), 0) msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), 0)
e2elog.Logf(msg) e2elog.Logf(msg)
@ -389,6 +390,9 @@ var _ = Describe("cephfs", func() {
if v.Major > "1" || (v.Major == "1" && v.Minor >= "17") { if v.Major > "1" || (v.Major == "1" && v.Minor >= "17") {
var wg sync.WaitGroup var wg sync.WaitGroup
totalCount := 3 totalCount := 3
// totalSubvolumes represents the subvolumes in backend
// always totalCount+parentPVC
totalSubvolumes := totalCount + 1
wg.Add(totalCount) wg.Add(totalCount)
createCephFSSnapshotClass(f) createCephFSSnapshotClass(f)
pvc, err := loadPVC(pvcPath) pvc, err := loadPVC(pvcPath)
@ -460,6 +464,12 @@ var _ = Describe("cephfs", func() {
} }
wg.Wait() wg.Wait()
subVol := listCephFSSubVolumes(f, fileSystemName, subvolumegroup)
if len(subVol) != totalSubvolumes {
msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), totalSubvolumes)
e2elog.Logf(msg)
Fail(msg)
}
wg.Add(totalCount) wg.Add(totalCount)
// delete clone and app // delete clone and app
for i := 0; i < totalCount; i++ { for i := 0; i < totalCount; i++ {
@ -476,6 +486,13 @@ var _ = Describe("cephfs", func() {
} }
wg.Wait() wg.Wait()
parentPVCCount := totalSubvolumes - totalCount
subVol = listCephFSSubVolumes(f, fileSystemName, subvolumegroup)
if len(subVol) != parentPVCCount {
msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), parentPVCCount)
e2elog.Logf(msg)
Fail(msg)
}
// create clones from different snapshosts and bind it to an // create clones from different snapshosts and bind it to an
// app // app
wg.Add(totalCount) wg.Add(totalCount)
@ -493,6 +510,13 @@ var _ = Describe("cephfs", func() {
} }
wg.Wait() wg.Wait()
subVol = listCephFSSubVolumes(f, fileSystemName, subvolumegroup)
if len(subVol) != totalSubvolumes {
msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), totalSubvolumes)
e2elog.Logf(msg)
Fail(msg)
}
wg.Add(totalCount) wg.Add(totalCount)
// delete snapshot // delete snapshot
for i := 0; i < totalCount; i++ { for i := 0; i < totalCount; i++ {
@ -524,11 +548,24 @@ var _ = Describe("cephfs", func() {
} }
wg.Wait() wg.Wait()
subVol = listCephFSSubVolumes(f, fileSystemName, subvolumegroup)
if len(subVol) != parentPVCCount {
msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), parentPVCCount)
e2elog.Logf(msg)
Fail(msg)
}
// delete parent pvc // delete parent pvc
err = deletePVCAndApp("", f, pvc, app) err = deletePVCAndApp("", f, pvc, app)
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
subVol = listCephFSSubVolumes(f, fileSystemName, subvolumegroup)
if len(subVol) != 0 {
msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), 0)
e2elog.Logf(msg)
Fail(msg)
}
} }
}) })
@ -542,6 +579,9 @@ var _ = Describe("cephfs", func() {
if v.Major > "1" || (v.Major == "1" && v.Minor >= "16") { if v.Major > "1" || (v.Major == "1" && v.Minor >= "16") {
var wg sync.WaitGroup var wg sync.WaitGroup
totalCount := 3 totalCount := 3
// totalSubvolumes represents the subvolumes in backend
// always totalCount+parentPVC
totalSubvolumes := totalCount + 1
pvc, err := loadPVC(pvcPath) pvc, err := loadPVC(pvcPath)
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
@ -587,6 +627,13 @@ var _ = Describe("cephfs", func() {
}(&wg, i, *pvcClone, *appClone) }(&wg, i, *pvcClone, *appClone)
} }
wg.Wait() wg.Wait()
subVol := listCephFSSubVolumes(f, fileSystemName, subvolumegroup)
if len(subVol) != totalSubvolumes {
msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), totalSubvolumes)
e2elog.Logf(msg)
Fail(msg)
}
// delete parent pvc // delete parent pvc
err = deletePVCAndApp("", f, pvc, app) err = deletePVCAndApp("", f, pvc, app)
if err != nil { if err != nil {
@ -607,6 +654,13 @@ var _ = Describe("cephfs", func() {
}(&wg, i, *pvcClone, *appClone) }(&wg, i, *pvcClone, *appClone)
} }
wg.Wait() wg.Wait()
subVol = listCephFSSubVolumes(f, fileSystemName, subvolumegroup)
if len(subVol) != 0 {
msg := fmt.Sprintf("subvolumes %v. subvolume count %d not matching expected count %v", subVol, len(subVol), 0)
e2elog.Logf(msg)
Fail(msg)
}
} }
}) })