Skip to content

Commit 5064448

Browse files
authored
Merge pull request kubernetes#89445 from oomichi/WaitForPersistentVolumeDeleted
Move WaitForPersistentVolumeDeleted() to e2epv
2 parents 91766b8 + 2158989 commit 5064448

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)