From cb353142e5a691e6402fe9e8291b9afc04c1015c Mon Sep 17 00:00:00 2001 From: Yaroslav Borbat Date: Fri, 25 Apr 2025 11:36:12 +0300 Subject: [PATCH] fix Signed-off-by: Yaroslav Borbat --- tests/e2e/vm_migration_cancel_test.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tests/e2e/vm_migration_cancel_test.go b/tests/e2e/vm_migration_cancel_test.go index 71409b3f5a..5ec8cd5da4 100644 --- a/tests/e2e/vm_migration_cancel_test.go +++ b/tests/e2e/vm_migration_cancel_test.go @@ -18,6 +18,7 @@ package e2e import ( "fmt" + "slices" "time" . "github.com/onsi/ginkgo/v2" @@ -161,6 +162,13 @@ var _ = Describe("Virtual machine migration cancel", SIGMigration(), ginkgoutil. Expect(someCompleted).Should(BeFalse()) By("Abort status should be exists in Kubevirt VMIs") + + validAbortStatuses := []virtv1.MigrationAbortStatus{ + virtv1.MigrationAbortInProgress, + virtv1.MigrationAbortSucceeded, + virtv1.MigrationAbortFailed, + } + Eventually(func() error { kvvmis := &virtv1.VirtualMachineInstanceList{} err = GetObjects(kc.ResourceKubevirtVMI, kvvmis, kc.GetOptions{Labels: testCaseLabel, Namespace: conf.Namespace}) @@ -169,18 +177,23 @@ var _ = Describe("Virtual machine migration cancel", SIGMigration(), ginkgoutil. } for _, kvvmi := range kvvmis.Items { migrationState := kvvmi.Status.MigrationState + if migrationState == nil { return fmt.Errorf("retry because migration state is nil") } if !migrationState.AbortRequested { return fmt.Errorf("retry because migration abort requested is false") } - validAbortStatus := migrationState.AbortStatus == virtv1.MigrationAbortFailed || migrationState.AbortStatus == virtv1.MigrationAbortSucceeded - if !validAbortStatus { + + if !slices.Contains(validAbortStatuses, migrationState.AbortStatus) { return fmt.Errorf("retry because migration abort status is %s", migrationState.AbortStatus) } + + if migrationState.EndTimestamp.IsZero() { + return fmt.Errorf("retry because migration is not finished yet") + } } return nil - }).WithTimeout(MaxWaitTimeout).WithPolling(time.Second).ShouldNot(HaveOccurred()) + }).WithTimeout(LongWaitDuration).WithPolling(time.Second).ShouldNot(HaveOccurred()) }) })