From 62c72edd91b2d5485683274298b8249670663519 Mon Sep 17 00:00:00 2001 From: "PATTANAYAK, SAUMYA SWARUP (sp931a)" Date: Thu, 13 Aug 2020 12:35:01 -0400 Subject: Pause Upon VF Module Failure Issue-ID: VID-862 Currently in VID, once a failure is received from SO on the instantiation of a VF Module, it is assumed that other VF Modules may continue with the execution without stopping. However, in most of the cases, it is a good idea to stop further requests to SO if one of the VF Module instantiation returns an error. This user story, makes sure this functionality is achieved. Change-Id: I07c51b81111f805b61c8b3714a65171d7cbaa254 Signed-off-by: PATTANAYAK, SAUMYA SWARUP (sp931a) --- .../java/org/onap/vid/api/AsyncInstantiationBase.java | 17 ++++++++++++++--- .../org/onap/vid/api/CreateServiceWithFailedVnf.java | 9 +++++++-- .../main/java/vid/automation/test/infra/Features.java | 1 + .../main/java/vid/automation/test/model/JobStatus.java | 3 ++- 4 files changed, 24 insertions(+), 6 deletions(-) (limited to 'vid-automation/src/main/java') diff --git a/vid-automation/src/main/java/org/onap/vid/api/AsyncInstantiationBase.java b/vid-automation/src/main/java/org/onap/vid/api/AsyncInstantiationBase.java index f4dd6780a..e5da62adb 100644 --- a/vid-automation/src/main/java/org/onap/vid/api/AsyncInstantiationBase.java +++ b/vid-automation/src/main/java/org/onap/vid/api/AsyncInstantiationBase.java @@ -135,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 getPresets(List presetOnDeleteList, List presetOnCreateList, List presetInProgressList) { @@ -203,7 +204,7 @@ public class AsyncInstantiationBase extends BaseMsoApiTest { return ImmutableList.of( vidAuditStatus(jobId, "PENDING", false), vidAuditStatus(jobId, "IN_PROGRESS", false), - vidAuditStatus(jobId, "COMPLETED_WITH_ERRORS", true) + vidAuditStatus(jobId, "COMPLETED_WITH_ERROR", true) ); } @@ -214,7 +215,13 @@ public class AsyncInstantiationBase extends BaseMsoApiTest { vidAuditStatus(jobId, "FAILED", true) ); } - + protected ImmutableList 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); } @@ -578,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; + } } diff --git a/vid-automation/src/main/java/org/onap/vid/api/CreateServiceWithFailedVnf.java b/vid-automation/src/main/java/org/onap/vid/api/CreateServiceWithFailedVnf.java index 30076a964..a8bcc9f75 100644 --- a/vid-automation/src/main/java/org/onap/vid/api/CreateServiceWithFailedVnf.java +++ b/vid-automation/src/main/java/org/onap/vid/api/CreateServiceWithFailedVnf.java @@ -13,6 +13,7 @@ import org.onap.simulator.presetGenerator.presets.sdc.PresetSDCGetServiceToscaMo import org.onap.vid.model.asyncInstantiation.ServiceInfo; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import vid.automation.test.infra.Features; import vid.automation.test.infra.ModelInfo; import vid.automation.test.model.JobStatus; import vid.automation.test.model.ServiceAction; @@ -105,9 +106,13 @@ Legit Preset || deploy 1 Service, 1 VNF which will fail public void firstTimeAssertion() { assertThat(uuids, hasSize(1)); originalJobId = uuids.get(0); + boolean isPauseOnFailureFlagOn = Features.FLAG_2008_PAUSE_VFMODULE_INSTANTIATION_FAILURE.isActive(); - asyncInstantiationBase.assertServiceInfoSpecific1(originalJobId, JobStatus.COMPLETED_WITH_ERRORS, names.get(SERVICE_NAME), "us16807000", firstIds.serviceId, ServiceAction.INSTANTIATE); - asyncInstantiationBase.assertAuditStatuses(originalJobId, asyncInstantiationBase.vidAuditStatusesCompletedWithErrors(originalJobId),null); + asyncInstantiationBase.assertServiceInfoSpecific1(originalJobId, isPauseOnFailureFlagOn ? + JobStatus.FAILED_AND_PAUSED : JobStatus.COMPLETED_WITH_ERRORS, names.get(SERVICE_NAME), "us16807000", firstIds.serviceId, ServiceAction.INSTANTIATE); + asyncInstantiationBase.assertAuditStatuses(originalJobId, isPauseOnFailureFlagOn ? + asyncInstantiationBase.vidAuditStatusesFailedAndPaused(originalJobId) : + asyncInstantiationBase.vidAuditStatusesCompletedWithErrors(originalJobId),null); assertThat(SimulatorApi.retrieveRecordedRequestsPathCounter(), allOf( hasOrLacksOfEntry(createPresets.get(0).getReqPath(), 1L), hasOrLacksOfEntry(createPresets.get(1).getReqPath(), 1L), diff --git a/vid-automation/src/main/java/vid/automation/test/infra/Features.java b/vid-automation/src/main/java/vid/automation/test/infra/Features.java index 3e499de2f..ba7ebdf0e 100644 --- a/vid-automation/src/main/java/vid/automation/test/infra/Features.java +++ b/vid-automation/src/main/java/vid/automation/test/infra/Features.java @@ -71,6 +71,7 @@ public enum Features implements Feature { FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER, FLAG_2008_PAUSE_INSTANTIATION_ON_VFMODULE_POPUP, FLAG_2008_REMOVE_PAUSE_INSTANTIATION, + FLAG_2008_PAUSE_VFMODULE_INSTANTIATION_FAILURE, ; public boolean isActive() { return FeatureContext.getFeatureManager().isActive(this); diff --git a/vid-automation/src/main/java/vid/automation/test/model/JobStatus.java b/vid-automation/src/main/java/vid/automation/test/model/JobStatus.java index bbe1e3e86..cfe32bc9a 100644 --- a/vid-automation/src/main/java/vid/automation/test/model/JobStatus.java +++ b/vid-automation/src/main/java/vid/automation/test/model/JobStatus.java @@ -9,5 +9,6 @@ public enum JobStatus { PENDING, STOPPED, COMPLETED_AND_PAUSED, - COMPLETED_WITH_ERRORS; + COMPLETED_WITH_ERRORS, + FAILED_AND_PAUSED; } -- cgit 1.2.3-korg