Pause Upon VF Module Failure
[vid.git] / vid-automation / src / main / java / org / onap / vid / api / AsyncInstantiationBase.java
index ee3982c..e5da62a 100644 (file)
@@ -17,13 +17,10 @@ import static vid.automation.test.utils.ExtendedHamcrestMatcher.hasItemsFromColl
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
-import com.google.common.util.concurrent.Uninterruptibles;
-import java.time.Instant;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
@@ -138,7 +135,8 @@ public class AsyncInstantiationBase extends BaseMsoApiTest {
     }
 
     protected boolean getExpectedRetryEnabled(JobStatus jobStatus) {
-        return Features.FLAG_1902_RETRY_JOB.isActive() && (jobStatus==JobStatus.FAILED || jobStatus==JobStatus.COMPLETED_WITH_ERRORS);
+        return Features.FLAG_1902_RETRY_JOB.isActive() && (jobStatus==JobStatus.FAILED || jobStatus==JobStatus.COMPLETED_WITH_ERRORS
+                || jobStatus==JobStatus.FAILED_AND_PAUSED);
     }
 
     public List<BasePreset> getPresets(List<PresetMSOBaseDelete> presetOnDeleteList, List<PresetMSOBaseCreateInstancePost> presetOnCreateList, List<PresetMSOOrchestrationRequestGet> presetInProgressList) {
@@ -199,27 +197,14 @@ public class AsyncInstantiationBase extends BaseMsoApiTest {
     }
 
     protected void assertAndRetryIfNeeded(Runnable asserter, long timeoutInSeconds) {
-        final Instant expiry = Instant.now().plusSeconds(timeoutInSeconds);
-        while (true) {
-            try {
-                asserter.run();
-                break; // we're cool, assertion passed
-            } catch (AssertionError fail) {
-                Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
-                if (Instant.now().isAfter(expiry)) {
-                    throw fail;
-                } else {
-                    System.out.println("retrying after: " + fail);
-                }
-            }
-        }
+        TestUtils.assertAndRetryIfNeeded(timeoutInSeconds, asserter);
     }
 
     protected ImmutableList<JobAuditStatus> vidAuditStatusesCompletedWithErrors(String jobId) {
         return ImmutableList.of(
                 vidAuditStatus(jobId, "PENDING", false),
                 vidAuditStatus(jobId, "IN_PROGRESS", false),
-                vidAuditStatus(jobId, "COMPLETED_WITH_ERRORS", true)
+                vidAuditStatus(jobId, "COMPLETED_WITH_ERROR", true)
         );
     }
 
@@ -230,7 +215,13 @@ public class AsyncInstantiationBase extends BaseMsoApiTest {
                 vidAuditStatus(jobId, "FAILED", true)
         );
     }
-
+    protected ImmutableList<JobAuditStatus> vidAuditStatusesFailedAndPaused(String jobId) {
+        return ImmutableList.of(
+                vidAuditStatus(jobId, "PENDING", false),
+                vidAuditStatus(jobId, "IN_PROGRESS", false),
+                vidAuditStatus(jobId, "FAILED_AND_PAUSED", true)
+        );
+    }
     protected JobAuditStatus vidAuditStatus(String jobId, String jobStatus, boolean isFinal) {
         return new JobAuditStatus(UUID.fromString(jobId), jobStatus, JobAuditStatus.SourceStatus.VID, null, null, isFinal);
     }
@@ -594,4 +585,8 @@ public class AsyncInstantiationBase extends BaseMsoApiTest {
             org.junit.Assert.assertEquals("MSO instanceType  #" + i + " is not as expected", expectedStatus.getInstanceType(), actualStatus.getInstanceType());
         });
     }
+    protected static JobStatus getErrorStatus() {
+            return Features.FLAG_2008_PAUSE_VFMODULE_INSTANTIATION_FAILURE.isActive() ?
+                            JobStatus.FAILED_AND_PAUSED : JobStatus.COMPLETED_WITH_ERRORS;
+   }
 }