Skip to content

Commit 2158989

Browse files
author
Kenichi Omichi
committed
Move WaitForPersistentVolumeDeleted() to e2epv
The function is for persistent volumes and it doesn't have any reason why it stays in core test framework. So this moves the function into e2epv package for reducing e2e/framework/util.go code.
1 parent 91766b8 commit 2158989

File tree

13 files changed

+32
-32
lines changed

13 files changed

+32
-32
lines changed

test/e2e/framework/pv/pv.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -821,3 +821,21 @@ func SkipIfNoDefaultStorageClass(c clientset.Interface) {
821821
e2eskipper.Skipf("error finding default storageClass : %v", err)
822822
}
823823
}
824+
825+
// WaitForPersistentVolumeDeleted waits for a PersistentVolume to get deleted or until timeout occurs, whichever comes first.
826+
func WaitForPersistentVolumeDeleted(c clientset.Interface, pvName string, Poll, timeout time.Duration) error {
827+
framework.Logf("Waiting up to %v for PersistentVolume %s to get deleted", timeout, pvName)
828+
for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) {
829+
pv, err := c.CoreV1().PersistentVolumes().Get(context.TODO(), pvName, metav1.GetOptions{})
830+
if err == nil {
831+
framework.Logf("PersistentVolume %s found and phase=%s (%v)", pvName, pv.Status.Phase, time.Since(start))
832+
continue
833+
}
834+
if apierrors.IsNotFound(err) {
835+
framework.Logf("PersistentVolume %s was removed", pvName)
836+
return nil
837+
}
838+
framework.Logf("Get persistent volume %s in failed, ignoring for %v: %v", pvName, Poll, err)
839+
}
840+
return fmt.Errorf("PersistentVolume %s still exists within %v", pvName, timeout)
841+
}

test/e2e/framework/util.go

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -304,24 +304,6 @@ func WaitForDefaultServiceAccountInNamespace(c clientset.Interface, namespace st
304304
return waitForServiceAccountInNamespace(c, namespace, "default", ServiceAccountProvisionTimeout)
305305
}
306306

307-
// WaitForPersistentVolumeDeleted waits for a PersistentVolume to get deleted or until timeout occurs, whichever comes first.
308-
func WaitForPersistentVolumeDeleted(c clientset.Interface, pvName string, Poll, timeout time.Duration) error {
309-
Logf("Waiting up to %v for PersistentVolume %s to get deleted", timeout, pvName)
310-
for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) {
311-
pv, err := c.CoreV1().PersistentVolumes().Get(context.TODO(), pvName, metav1.GetOptions{})
312-
if err == nil {
313-
Logf("PersistentVolume %s found and phase=%s (%v)", pvName, pv.Status.Phase, time.Since(start))
314-
continue
315-
}
316-
if apierrors.IsNotFound(err) {
317-
Logf("PersistentVolume %s was removed", pvName)
318-
return nil
319-
}
320-
Logf("Get persistent volume %s in failed, ignoring for %v: %v", pvName, Poll, err)
321-
}
322-
return fmt.Errorf("PersistentVolume %s still exists within %v", pvName, timeout)
323-
}
324-
325307
// findAvailableNamespaceName random namespace name starting with baseName.
326308
func findAvailableNamespaceName(baseName string, c clientset.Interface) (string, error) {
327309
var name string

test/e2e/storage/csi_mock_volume.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ var _ = utils.SIGDescribe("CSI mock volume", func() {
188188
claim, err := cs.CoreV1().PersistentVolumeClaims(claim.Namespace).Get(context.TODO(), claim.Name, metav1.GetOptions{})
189189
if err == nil {
190190
cs.CoreV1().PersistentVolumeClaims(claim.Namespace).Delete(context.TODO(), claim.Name, metav1.DeleteOptions{})
191-
framework.WaitForPersistentVolumeDeleted(cs, claim.Spec.VolumeName, framework.Poll, 2*time.Minute)
191+
e2epv.WaitForPersistentVolumeDeleted(cs, claim.Spec.VolumeName, framework.Poll, 2*time.Minute)
192192
}
193193

194194
}

test/e2e/storage/nfs_persistent_volume-disruptive.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,6 @@ func tearDownTestCase(c clientset.Interface, f *framework.Framework, ns string,
332332
e2epv.DeletePersistentVolume(c, pv.Name)
333333
return
334334
}
335-
err := framework.WaitForPersistentVolumeDeleted(c, pv.Name, 5*time.Second, 5*time.Minute)
335+
err := e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 5*time.Second, 5*time.Minute)
336336
framework.ExpectNoError(err, "Persistent Volume %v not deleted by dynamic provisioner", pv.Name)
337337
}

test/e2e/storage/pv_protection.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ var _ = utils.SIGDescribe("PV Protection", func() {
100100
ginkgo.By("Deleting the PV")
101101
err = client.CoreV1().PersistentVolumes().Delete(context.TODO(), pv.Name, *metav1.NewDeleteOptions(0))
102102
framework.ExpectNoError(err, "Error deleting PV")
103-
framework.WaitForPersistentVolumeDeleted(client, pv.Name, framework.Poll, e2epv.PVDeletingTimeout)
103+
e2epv.WaitForPersistentVolumeDeleted(client, pv.Name, framework.Poll, e2epv.PVDeletingTimeout)
104104
})
105105

106106
ginkgo.It("Verify that PV bound to a PVC is not removed immediately", func() {
@@ -127,6 +127,6 @@ var _ = utils.SIGDescribe("PV Protection", func() {
127127
framework.ExpectNoError(err, "Error deleting PVC")
128128

129129
ginkgo.By("Checking that the PV is automatically removed from the system because it's no longer bound to a PVC")
130-
framework.WaitForPersistentVolumeDeleted(client, pv.Name, framework.Poll, e2epv.PVDeletingTimeout)
130+
e2epv.WaitForPersistentVolumeDeleted(client, pv.Name, framework.Poll, e2epv.PVDeletingTimeout)
131131
})
132132
})

test/e2e/storage/regional_pd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ func testZonalFailover(c clientset.Interface, ns string) {
210210
framework.ExpectNoError(c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Delete(context.TODO(), pvc.Name, metav1.DeleteOptions{}),
211211
"Error deleting claim %s.", pvc.Name)
212212
if pvc.Spec.VolumeName != "" {
213-
err = framework.WaitForPersistentVolumeDeleted(c, pvc.Spec.VolumeName, framework.Poll, pvDeletionTimeout)
213+
err = e2epv.WaitForPersistentVolumeDeleted(c, pvc.Spec.VolumeName, framework.Poll, pvDeletionTimeout)
214214
if err != nil {
215215
framework.Logf("WARNING: PV %s is not yet deleted, and subsequent tests may be affected.", pvc.Spec.VolumeName)
216216
}

test/e2e/storage/testsuites/base.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ func (r *VolumeResource) CleanupResource() error {
292292
cleanUpErrs = append(cleanUpErrs, errors.Wrapf(err, "Failed to delete PVC %v", r.Pvc.Name))
293293
}
294294
if r.Pv != nil {
295-
err = framework.WaitForPersistentVolumeDeleted(f.ClientSet, r.Pv.Name, 5*time.Second, 5*time.Minute)
295+
err = e2epv.WaitForPersistentVolumeDeleted(f.ClientSet, r.Pv.Name, 5*time.Second, 5*time.Minute)
296296
if err != nil {
297297
cleanUpErrs = append(cleanUpErrs, errors.Wrapf(err,
298298
"Persistent Volume %v not deleted by dynamic provisioner", r.Pv.Name))

test/e2e/storage/testsuites/provisioning.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ func (t StorageClassTest) TestDynamicProvisioning() *v1.PersistentVolume {
369369
// hiccups.
370370
if pv != nil && pv.Spec.PersistentVolumeReclaimPolicy == v1.PersistentVolumeReclaimDelete {
371371
ginkgo.By(fmt.Sprintf("deleting the claim's PV %q", pv.Name))
372-
framework.ExpectNoError(framework.WaitForPersistentVolumeDeleted(client, pv.Name, 5*time.Second, 20*time.Minute))
372+
framework.ExpectNoError(e2epv.WaitForPersistentVolumeDeleted(client, pv.Name, 5*time.Second, 20*time.Minute))
373373
}
374374

375375
return pv

test/e2e/storage/volume_metrics.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ var _ = utils.SIGDescribe("[Serial] Volume metrics", func() {
8686
} else {
8787
e2epv.DeletePersistentVolumeClaim(c, newPvc.Name, newPvc.Namespace)
8888
if newPvc.Spec.VolumeName != "" {
89-
err = framework.WaitForPersistentVolumeDeleted(c, newPvc.Spec.VolumeName, 5*time.Second, 5*time.Minute)
89+
err = e2epv.WaitForPersistentVolumeDeleted(c, newPvc.Spec.VolumeName, 5*time.Second, 5*time.Minute)
9090
framework.ExpectNoError(err, "Persistent Volume %v not deleted by dynamic provisioner", newPvc.Spec.VolumeName)
9191
}
9292
}

test/e2e/storage/volume_provisioning.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
415415

416416
ginkgo.By(fmt.Sprintf("deleting the PV %q", pv.Name))
417417
framework.ExpectNoError(e2epv.DeletePersistentVolume(c, pv.Name), "Failed to delete PV ", pv.Name)
418-
framework.ExpectNoError(framework.WaitForPersistentVolumeDeleted(c, pv.Name, 1*time.Second, 30*time.Second))
418+
framework.ExpectNoError(e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 1*time.Second, 30*time.Second))
419419
})
420420

421421
ginkgo.It("should not provision a volume in an unmanaged GCE zone.", func() {
@@ -587,7 +587,7 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
587587
framework.ExpectNoError(err)
588588

589589
ginkgo.By("waiting for the PV to get deleted")
590-
err = framework.WaitForPersistentVolumeDeleted(c, pv.Name, 5*time.Second, e2epv.PVDeletingTimeout)
590+
err = e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 5*time.Second, e2epv.PVDeletingTimeout)
591591
framework.ExpectNoError(err)
592592
})
593593
})

0 commit comments

Comments
 (0)