summaryrefslogtreecommitdiffstats
path: root/bpmn
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn')
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDay.java13
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java18
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java18
-rw-r--r--bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ActivateVfModuleBB.bpmn2
-rw-r--r--bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/DeleteVfModuleBB.bpmn75
-rw-r--r--bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ExecuteBuildingBlock.bpmn3
-rw-r--r--bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn1
-rw-r--r--bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/DeleteVfModuleBBTest.java1
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailure.java6
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java15
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailureTest.java20
11 files changed, 114 insertions, 58 deletions
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDay.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDay.java
index 0a7a75c89b..122e71851f 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDay.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildingBlockRainyDay.java
@@ -9,9 +9,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -81,14 +81,13 @@ public class ExecuteBuildingBlockRainyDay {
String serviceType = ASTERISK;
boolean aLaCarte = (boolean) execution.getVariable("aLaCarte");
boolean suppressRollback = (boolean) execution.getVariable("suppressRollback");
- String handlingCode = "";
WorkflowException workflowException = (WorkflowException) execution.getVariable("WorkflowException");
- try {
- // Extract error data to be returned to WorkflowAction
+ if (workflowException != null) {
execution.setVariable("WorkflowExceptionErrorMessage", workflowException.getErrorMessage());
- } catch (Exception e) {
- logger.error("No WorkflowException Found", e);
+ } else {
+ logger.debug("WorkflowException is null, unable to set WorkflowExceptionErrorMessage");
}
+ String handlingCode = "";
if (suppressRollback) {
handlingCode = "Abort";
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java
index b69ab151c4..dabfc81e1f 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java
@@ -152,7 +152,7 @@ public class ExceptionBuilder {
.getProcessDefinition(execution.getProcessDefinitionId()).getKey();
}
- public void processAuditException(DelegateExecutionImpl execution) {
+ public void processAuditException(DelegateExecutionImpl execution, boolean flowShouldContinue) {
logger.info("Building a WorkflowException for Subflow");
StringBuilder errorMessage = new StringBuilder();
@@ -203,11 +203,15 @@ public class ExceptionBuilder {
errorMessage.append(
"Recommendation - Wait for nightly RO Audit to run and fix the data issue and resume vf-module creation in VID. If problem persists then report problem to AIC/RO Ops.");
- WorkflowException exception = new WorkflowException(processKey, 400, errorMessage.toString());
- execution.setVariable("WorkflowException", exception);
- execution.setVariable("WorkflowExceptionErrorMessage", errorMessage);
- logger.info("Outgoing WorkflowException is {}", exception);
- logger.info("Throwing MSOWorkflowException");
- throw new BpmnError("AAIInventoryFailure");
+ if (flowShouldContinue) {
+ execution.setVariable("StatusMessage", errorMessage.toString());
+ } else {
+ WorkflowException exception = new WorkflowException(processKey, 400, errorMessage.toString());
+ execution.setVariable("WorkflowException", exception);
+ execution.setVariable("WorkflowExceptionErrorMessage", errorMessage.toString());
+ logger.info("Outgoing WorkflowException is {}", exception);
+ logger.info("Throwing MSOWorkflowException");
+ throw new BpmnError("AAIInventoryFailure");
+ }
}
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java
index 4ade9dbe32..549f16b6f6 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java
@@ -22,6 +22,7 @@ package org.onap.so.client.exception;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
import org.camunda.bpm.engine.delegate.BpmnError;
@@ -131,7 +132,7 @@ public class ExceptionBuilderTest extends BaseTest {
public void processAuditExceptionTest() {
try {
Mockito.doReturn(extractPojosForBB).when(exceptionBuilder).getExtractPojosForBB();
- exceptionBuilder.processAuditException((DelegateExecutionImpl) execution);
+ exceptionBuilder.processAuditException((DelegateExecutionImpl) execution, false);
} catch (BpmnError bpmnException) {
assertEquals("AAIInventoryFailure", bpmnException.getErrorCode());
WorkflowException we = execution.getVariable("WorkflowException");
@@ -142,4 +143,19 @@ public class ExceptionBuilderTest extends BaseTest {
}
}
+ @Test
+ public void processAuditExceptionContinueTest() {
+ try {
+ Mockito.doReturn(extractPojosForBB).when(exceptionBuilder).getExtractPojosForBB();
+ exceptionBuilder.processAuditException((DelegateExecutionImpl) execution, true);
+ String sm = execution.getVariable("StatusMessage");
+ assertNotNull(sm);
+ assertEquals(
+ "create VF-Module testVfModuleId1 failed due to incomplete A&AI vserver inventory population after stack testStackName was successfully created in cloud region testLcpCloudRegionId. MSO Audit indicates that AIC RO did not create vserver testVServerId in AAI. Recommendation - Wait for nightly RO Audit to run and fix the data issue and resume vf-module creation in VID. If problem persists then report problem to AIC/RO Ops.",
+ sm);
+ } catch (BpmnError bpmnException) {
+ fail();
+ }
+ }
+
}
diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ActivateVfModuleBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ActivateVfModuleBB.bpmn
index 435d85d032..ff37874978 100644
--- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ActivateVfModuleBB.bpmn
+++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ActivateVfModuleBB.bpmn
@@ -69,7 +69,7 @@
</bpmn:endEvent>
<bpmn:sequenceFlow id="SequenceFlow_19gbhlj" sourceRef="catchInventoryException" targetRef="processAuditException" />
<bpmn:sequenceFlow id="SequenceFlow_0l4jzc5" sourceRef="processAuditException" targetRef="EndEvent_067jv1n" />
- <bpmn:serviceTask id="processAuditException" name="Proccess Error" camunda:expression="${ExceptionBuilder.processAuditException(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)))}">
+ <bpmn:serviceTask id="processAuditException" name="Proccess Error" camunda:expression="${ExceptionBuilder.processAuditException(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)), false)}">
<bpmn:incoming>SequenceFlow_19gbhlj</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_0l4jzc5</bpmn:outgoing>
</bpmn:serviceTask>
diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/DeleteVfModuleBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/DeleteVfModuleBB.bpmn
index 41c3966626..b774c052cc 100644
--- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/DeleteVfModuleBB.bpmn
+++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/DeleteVfModuleBB.bpmn
@@ -109,19 +109,19 @@
<bpmn:outgoing>SequenceFlow_1ut7n32</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:subProcess id="SubProcess_0grvkj2" name="Audit Exception Sub Process" triggeredByEvent="true">
- <bpmn:startEvent id="StartEvent_1euiddy">
- <bpmn:outgoing>SequenceFlow_0xuodpy</bpmn:outgoing>
- <bpmn:errorEventDefinition errorRef="Error_0jjnve8" />
- </bpmn:startEvent>
<bpmn:endEvent id="EndEvent_1gzq57j">
<bpmn:incoming>SequenceFlow_1fhst92</bpmn:incoming>
</bpmn:endEvent>
- <bpmn:serviceTask id="ServiceTask_1isbxvo" name="Proccess Error" camunda:expression="${ExceptionBuilder.processAuditException(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)))}">
+ <bpmn:serviceTask id="ServiceTask_1isbxvo" name="Proccess Error" camunda:expression="${ExceptionBuilder.processAuditException(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)), true)}">
<bpmn:incoming>SequenceFlow_0xuodpy</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_1fhst92</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="SequenceFlow_0xuodpy" sourceRef="StartEvent_1euiddy" targetRef="ServiceTask_1isbxvo" />
<bpmn:sequenceFlow id="SequenceFlow_1fhst92" sourceRef="ServiceTask_1isbxvo" targetRef="EndEvent_1gzq57j" />
+ <bpmn:startEvent id="StartEvent_1euiddy" isInterrupting="false">
+ <bpmn:outgoing>SequenceFlow_0xuodpy</bpmn:outgoing>
+ <bpmn:escalationEventDefinition escalationRef="Escalation_130je8j" camunda:escalationCodeVariable="test" />
+ </bpmn:startEvent>
</bpmn:subProcess>
<bpmn:sequenceFlow id="SequenceFlow_179btn2" sourceRef="aaiCatch" targetRef="DeleteNetworkPolicies" />
<bpmn:intermediateThrowEvent id="aaiThrow" name="Update AAI">
@@ -132,26 +132,29 @@
<bpmn:outgoing>SequenceFlow_179btn2</bpmn:outgoing>
<bpmn:linkEventDefinition name="AAI" />
</bpmn:intermediateCatchEvent>
- <bpmn:exclusiveGateway id="auditSuccessfulCheck" name="Audit&#10; Successful?" default="SequenceFlow_17cd9e2">
- <bpmn:incoming>SequenceFlow_0qfmmgt</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_17cd9e2</bpmn:outgoing>
- <bpmn:outgoing>SequenceFlow_1gdyk9j</bpmn:outgoing>
- </bpmn:exclusiveGateway>
- <bpmn:sequenceFlow id="SequenceFlow_17cd9e2" name="Yes" sourceRef="auditSuccessfulCheck" targetRef="ExclusiveGateway_1pydilb" />
+ <bpmn:sequenceFlow id="SequenceFlow_17cd9e2" name="Yes/No" sourceRef="auditSuccessfulCheck" targetRef="ExclusiveGateway_1pydilb">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("auditIsSuccessful") == false || execution.getVariable("auditIsSuccessful") == true}]]></bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
<bpmn:sequenceFlow id="SequenceFlow_1gdyk9j" name="No" sourceRef="auditSuccessfulCheck" targetRef="EndEvent_0b0ocu0">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("auditIsSuccessful") == false}]]></bpmn:conditionExpression>
</bpmn:sequenceFlow>
- <bpmn:endEvent id="EndEvent_0b0ocu0">
- <bpmn:incoming>SequenceFlow_1gdyk9j</bpmn:incoming>
- <bpmn:errorEventDefinition errorRef="Error_0jjnve8" />
- </bpmn:endEvent>
<bpmn:inclusiveGateway id="ExclusiveGateway_1yvh16a">
<bpmn:incoming>SequenceFlow_02lpx87</bpmn:incoming>
<bpmn:incoming>SequenceFlow_1ut7n32</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_14bu4ys</bpmn:outgoing>
</bpmn:inclusiveGateway>
+ <bpmn:inclusiveGateway id="auditSuccessfulCheck" name="Audit&#10; Successful?">
+ <bpmn:incoming>SequenceFlow_0qfmmgt</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_17cd9e2</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_1gdyk9j</bpmn:outgoing>
+ </bpmn:inclusiveGateway>
+ <bpmn:endEvent id="EndEvent_0b0ocu0">
+ <bpmn:incoming>SequenceFlow_1gdyk9j</bpmn:incoming>
+ <bpmn:escalationEventDefinition escalationRef="Escalation_130je8j" />
+ </bpmn:endEvent>
</bpmn:process>
<bpmn:error id="Error_0jjnve8" name="Error_3k24na6" errorCode="AAIInventoryFailure" />
+ <bpmn:escalation id="Escalation_130je8j" name="audit" escalationCode="audit1" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DeleteVfModuleBB">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="DeleteVfModuleBB_Start">
@@ -375,12 +378,6 @@
<bpmndi:BPMNShape id="SubProcess_0grvkj2_di" bpmnElement="SubProcess_0grvkj2" isExpanded="true">
<dc:Bounds x="231" y="642" width="350" height="200" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="StartEvent_1euiddy_di" bpmnElement="StartEvent_1euiddy">
- <dc:Bounds x="262" y="725" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="189" y="765" width="90" height="12" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="EndEvent_1gzq57j_di" bpmnElement="EndEvent_1gzq57j">
<dc:Bounds x="510" y="725" width="36" height="36" />
<bpmndi:BPMNLabel>
@@ -394,7 +391,7 @@
<di:waypoint xsi:type="dc:Point" x="298" y="743" />
<di:waypoint xsi:type="dc:Point" x="353" y="743" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="237" y="722" width="90" height="12" />
+ <dc:Bounds x="280.5" y="722" width="90" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_1fhst92_di" bpmnElement="SequenceFlow_1fhst92">
@@ -423,39 +420,45 @@
<dc:Bounds x="150" y="530" width="55" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ExclusiveGateway_187bfld_di" bpmnElement="auditSuccessfulCheck" isMarkerVisible="true">
- <dc:Bounds x="779.6431784107947" y="108" width="50" height="50" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="775" y="162" width="60" height="24" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_17cd9e2_di" bpmnElement="SequenceFlow_17cd9e2">
<di:waypoint xsi:type="dc:Point" x="830" y="133" />
<di:waypoint xsi:type="dc:Point" x="868" y="133" />
<di:waypoint xsi:type="dc:Point" x="868" y="174" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="838" y="114" width="19" height="12" />
+ <dc:Bounds x="830" y="114" width="36" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_1gdyk9j_di" bpmnElement="SequenceFlow_1gdyk9j">
<di:waypoint xsi:type="dc:Point" x="805" y="108" />
<di:waypoint xsi:type="dc:Point" x="805" y="56" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="812" y="77.49056603773585" width="14" height="12" />
+ <dc:Bounds x="812" y="77" width="14" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="EndEvent_1wydovd_di" bpmnElement="EndEvent_0b0ocu0">
- <dc:Bounds x="787" y="20" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="805" y="59.13043478260869" width="0" height="12" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="InclusiveGateway_0cjvlht_di" bpmnElement="ExclusiveGateway_1yvh16a">
<dc:Bounds x="900" y="259" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="879" y="312" width="0" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="InclusiveGateway_0i6rdd1_di" bpmnElement="auditSuccessfulCheck">
+ <dc:Bounds x="780" y="108" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="775" y="162" width="60" height="24" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="StartEvent_04qhoba_di" bpmnElement="StartEvent_1euiddy">
+ <dc:Bounds x="262" y="725" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="189" y="765" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_1onxfk1_di" bpmnElement="EndEvent_0b0ocu0">
+ <dc:Bounds x="787" y="20" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="760" y="59" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ExecuteBuildingBlock.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ExecuteBuildingBlock.bpmn
index 83363d48ba..0a6a7731ce 100644
--- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ExecuteBuildingBlock.bpmn
+++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/ExecuteBuildingBlock.bpmn
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.7.2">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0">
<bpmn:process id="ExecuteBuildingBlock" name="ExecuteBuildingBlock" isExecutable="true">
<bpmn:startEvent id="Start_ExecuteBuildingBlock" name="start">
<bpmn:outgoing>SequenceFlow_0rq4c5r</bpmn:outgoing>
@@ -10,6 +10,7 @@
<camunda:out source="WorkflowException" target="WorkflowException" />
<camunda:in source="mso-request-id" target="mso-request-id" />
<camunda:out source="WorkflowExceptionErrorMessage" target="WorkflowExceptionErrorMessage" />
+ <camunda:out source="StatusMessage" target="StatusMessage" />
</bpmn:extensionElements>
<bpmn:incoming>SequenceFlow_19wuics</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_01h9qmz</bpmn:outgoing>
diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn
index 76ca2a89cc..35b77d9189 100644
--- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn
+++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn
@@ -22,6 +22,7 @@
<camunda:out source="orchestrationStatusValidationResult" target="orchestrationStatusValidationResult" />
<camunda:out source="RetryDuration" target="RetryDuration" />
<camunda:in source="suppressRollback" target="suppressRollback" />
+ <camunda:out source="StatusMessage" target="StatusMessage" />
</bpmn:extensionElements>
<bpmn:incoming>SequenceFlow_0mew9im</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_1hsqed1</bpmn:outgoing>
diff --git a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/DeleteVfModuleBBTest.java b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/DeleteVfModuleBBTest.java
index e88df73f39..d9166c9138 100644
--- a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/DeleteVfModuleBBTest.java
+++ b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/DeleteVfModuleBBTest.java
@@ -37,6 +37,7 @@ public class DeleteVfModuleBBTest extends BaseBPMNTest {
@Before
public void before() {
variables.put("auditInventoryNeeded", true);
+ variables.put("auditIsSuccessful", true);
}
@Test
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailure.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailure.java
index 4fc4d85b97..5f357f5478 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailure.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailure.java
@@ -20,6 +20,7 @@
package org.onap.so.bpmn.infrastructure.workflow.tasks;
+import java.sql.Timestamp;
import java.util.Optional;
import org.camunda.bpm.engine.delegate.BpmnError;
import org.camunda.bpm.engine.delegate.DelegateExecution;
@@ -53,6 +54,10 @@ public class WorkflowActionBBFailure {
errorMsg = "Failed to determine error message";
}
request.setStatusMessage(errorMsg);
+ request.setProgress(Long.valueOf(100));
+ request.setRequestStatus("FAILED");
+ request.setLastModifiedBy("CamundaBPMN");
+ request.setEndTime(new Timestamp(System.currentTimeMillis()));
requestDbclient.updateInfraActiveRequests(request);
} catch (Exception e) {
logger.error(
@@ -113,6 +118,7 @@ public class WorkflowActionBBFailure {
request.setProgress(Long.valueOf(100));
request.setRequestStatus("FAILED");
request.setLastModifiedBy("CamundaBPMN");
+ request.setEndTime(new Timestamp(System.currentTimeMillis()));
requestDbclient.updateInfraActiveRequests(request);
} catch (Exception e) {
workflowAction.buildAndThrowException(execution, "Error Updating Request Database", e);
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
index f0a102dfeb..753a050c03 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -227,11 +227,16 @@ public class WorkflowActionBBTasks {
final String action = (String) execution.getVariable(G_ACTION);
final boolean aLaCarte = (boolean) execution.getVariable(G_ALACARTE);
final String resourceName = (String) execution.getVariable("resourceName");
+ String statusMessage = (String) execution.getVariable("StatusMessage");
String macroAction = "";
- if (aLaCarte) {
- macroAction = "ALaCarte-" + resourceName + "-" + action + " request was executed correctly.";
+ if (statusMessage == null) {
+ if (aLaCarte) {
+ macroAction = "ALaCarte-" + resourceName + "-" + action + " request was executed correctly.";
+ } else {
+ macroAction = "Macro-" + resourceName + "-" + action + " request was executed correctly.";
+ }
} else {
- macroAction = "Macro-" + resourceName + "-" + action + " request was executed correctly.";
+ macroAction = statusMessage;
}
execution.setVariable("finalStatusMessage", macroAction);
Timestamp endTime = new Timestamp(System.currentTimeMillis());
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailureTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailureTest.java
index a6ce88f164..52a2cf7223 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailureTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBFailureTest.java
@@ -23,11 +23,14 @@ package org.onap.so.bpmn.infrastructure.workflow.tasks;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.isA;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;
+import java.sql.Timestamp;
import org.camunda.bpm.engine.delegate.DelegateExecution;
import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
+import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -84,6 +87,7 @@ public class WorkflowActionBBFailureTest extends BaseTaskTest {
Mockito.verify(reqMock, Mockito.times(1)).setRequestStatus("FAILED");
Mockito.verify(reqMock, Mockito.times(1)).setProgress(Long.valueOf(100));
Mockito.verify(reqMock, Mockito.times(1)).setLastModifiedBy("CamundaBPMN");
+ Mockito.verify(reqMock, Mockito.times(1)).setEndTime(any(Timestamp.class));
}
@Test
@@ -142,4 +146,20 @@ public class WorkflowActionBBFailureTest extends BaseTaskTest {
String errorMsg = (String) execution.getVariable("ErrorMessage");
assertEquals("error in test case", errorMsg);
}
+
+ @Test
+ public void updateRequestErrorStatusMessageTest() {
+ String reqId = "reqId123";
+ execution.setVariable("mso-request-id", reqId);
+ WorkflowException we = new WorkflowException("WorkflowAction", 1231, "Error Case");
+ execution.setVariable("WorkflowException", we);
+
+ doReturn(reqMock).when(requestsDbClient).getInfraActiveRequestbyRequestId(reqId);
+ workflowActionBBFailure.updateRequestErrorStatusMessage(execution);
+ Mockito.verify(reqMock, Mockito.times(1)).setStatusMessage("Error Case");
+ Mockito.verify(reqMock, Mockito.times(1)).setRequestStatus("FAILED");
+ Mockito.verify(reqMock, Mockito.times(1)).setProgress(Long.valueOf(100));
+ Mockito.verify(reqMock, Mockito.times(1)).setLastModifiedBy("CamundaBPMN");
+ Mockito.verify(reqMock, Mockito.times(1)).setEndTime(any(Timestamp.class));
+ }
}