From ebeb645e33e25ca262806e29b00270b727f2c29b Mon Sep 17 00:00:00 2001 From: Shelly Kagan Date: Tue, 20 Jul 2021 17:29:51 +0300 Subject: [PATCH] change delete functions to wait until object deleted Signed-off-by: Shelly Kagan --- tests/storage/snapshot.go | 70 +++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/tests/storage/snapshot.go b/tests/storage/snapshot.go index 8e7a5829f1aa..4558d465b8e5 100644 --- a/tests/storage/snapshot.go +++ b/tests/storage/snapshot.go @@ -66,13 +66,36 @@ var _ = SIGDescribe("[Serial]VirtualMachineSnapshot Tests", func() { }, 180*time.Second, time.Second).Should(BeTrue()) } - deleteWebhook := func() { - err := virtClient.AdmissionregistrationV1().ValidatingWebhookConfigurations().Delete(context.Background(), webhook.Name, metav1.DeleteOptions{}) - if errors.IsNotFound(err) { - webhook = nil - } else { + waitDeleted := func(deleteFunc func() error) { + Eventually(func() bool { + err := deleteFunc() + if errors.IsNotFound(err) { + return true + } Expect(err).ToNot(HaveOccurred()) - } + return false + }, 180*time.Second, time.Second).Should(BeTrue()) + } + + deleteVM := func() { + waitDeleted(func() error { + return virtClient.VirtualMachine(vm.Namespace).Delete(vm.Name, &metav1.DeleteOptions{}) + }) + vm = nil + } + + deleteSnapshot := func() { + waitDeleted(func() error { + return virtClient.VirtualMachineSnapshot(snapshot.Namespace).Delete(context.Background(), snapshot.Name, metav1.DeleteOptions{}) + }) + snapshot = nil + } + + deleteWebhook := func() { + waitDeleted(func() error { + return virtClient.AdmissionregistrationV1().ValidatingWebhookConfigurations().Delete(context.Background(), webhook.Name, metav1.DeleteOptions{}) + }) + webhook = nil } createDenyVolumeSnapshotCreateWebhook := func() { @@ -115,38 +138,21 @@ var _ = SIGDescribe("[Serial]VirtualMachineSnapshot Tests", func() { webhook = wh } - deleteSnapshot := func() { - err := virtClient.VirtualMachineSnapshot(snapshot.Namespace).Delete(context.Background(), snapshot.Name, metav1.DeleteOptions{}) - if errors.IsNotFound(err) { - snapshot = nil - } else { - Expect(err).ToNot(HaveOccurred()) - } - } - BeforeEach(func() { virtClient, err = kubecli.GetKubevirtClient() util.PanicOnError(err) }) AfterEach(func() { - Eventually(func() bool { - if vm != nil { - err := virtClient.VirtualMachine(vm.Namespace).Delete(vm.Name, &metav1.DeleteOptions{}) - if errors.IsNotFound(err) { - vm = nil - } else { - Expect(err).ToNot(HaveOccurred()) - } - } - if snapshot != nil { - deleteSnapshot() - } - if webhook != nil { - deleteWebhook() - } - return vm == nil && snapshot == nil && webhook == nil - }, 90*time.Second, time.Second).Should(BeTrue()) + if vm != nil { + deleteVM() + } + if snapshot != nil { + deleteSnapshot() + } + if webhook != nil { + deleteWebhook() + } }) Context("With simple VM", func() {