Merge "do not error out when there is no config"
authorSteve Smokowski <ss835w@att.com>
Wed, 3 Apr 2019 09:09:16 +0000 (09:09 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 3 Apr 2019 09:09:16 +0000 (09:09 +0000)
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java

index a0b48fd..a327f06 100644 (file)
@@ -25,6 +25,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
+import javax.persistence.EntityNotFoundException;
+
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.onap.aai.domain.yang.Vnfc;
 import org.onap.so.bpmn.common.workflow.context.WorkflowCallbackResponse;
@@ -290,14 +292,15 @@ public class WorkflowActionBBTasks {
                                }
                        }
                        
-                       int flowSize = rollbackFlows.size();
                        String handlingCode = (String) execution.getVariable("handlingCode");
+                       List<ExecuteBuildingBlock> rollbackFlowsFiltered = new ArrayList<>();
+                       rollbackFlowsFiltered.addAll(rollbackFlows);
                        if(handlingCode.equals("RollbackToAssigned") || handlingCode.equals("RollbackToCreated")){
-                               for(int i = 0; i<flowSize; i++){
+                               for(int i = 0; i<rollbackFlows.size(); i++){
                                        if(rollbackFlows.get(i).getBuildingBlock().getBpmnFlowName().contains("Unassign")){
-                                               rollbackFlows.remove(i);
+                                               rollbackFlowsFiltered.remove(rollbackFlows.get(i));
                                        } else if(rollbackFlows.get(i).getBuildingBlock().getBpmnFlowName().contains("Delete") && handlingCode.equals("RollbackToCreated")) {
-                                               rollbackFlows.remove(i);
+                                               rollbackFlowsFiltered.remove(rollbackFlows.get(i));
                                        }
                                }
                        }
@@ -308,7 +311,7 @@ public class WorkflowActionBBTasks {
                                execution.setVariable("isRollbackNeeded", false);
                        else
                                execution.setVariable("isRollbackNeeded", true);
-                       execution.setVariable("flowsToExecute", rollbackFlows);
+                       execution.setVariable("flowsToExecute", rollbackFlowsFiltered);
                        execution.setVariable("handlingCode", "PreformingRollback");
                        execution.setVariable("isRollback", true);
                        execution.setVariable("gCurrentSequence", 0);
@@ -396,6 +399,8 @@ public class WorkflowActionBBTasks {
                                        logger.debug("No cvnfcCustomization found for customizationId: " + modelCustomizationId);
                                }
                        }
+               } catch (EntityNotFoundException e) {
+                       logger.debug(e.getMessage() + " Will not be running Fabric Config Building Blocks");
                } catch (Exception e) {
                        String errorMessage = "Error occurred in post processing of Vf Module create";
                        execution.setVariable("handlingCode", "RollbackToCreated");
index c2bca34..c5b4a48 100644 (file)
@@ -271,6 +271,37 @@ public class WorkflowActionBBTasksTest extends BaseTaskTest {
                assertEquals(1,ebbs.size());
        }
        
+       @Test
+       public void rollbackExecutionRollbackToCreatedTest(){
+               execution.setVariable("isRollback", false);
+               execution.setVariable("handlingCode", "RollbackToCreated");
+               List<ExecuteBuildingBlock> flowsToExecute = new ArrayList();
+               ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock();
+               BuildingBlock bb1 = new BuildingBlock();
+               bb1.setBpmnFlowName("AssignVfModuleBB");
+               ebb1.setBuildingBlock(bb1);
+               flowsToExecute.add(ebb1);
+               ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
+               BuildingBlock bb2 = new BuildingBlock();
+               bb2.setBpmnFlowName("CreateVfModuleBB");
+               ebb2.setBuildingBlock(bb2);
+               flowsToExecute.add(ebb2);
+               ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock();
+               BuildingBlock bb3 = new BuildingBlock();
+               bb3.setBpmnFlowName("ActivateVfModuleBB");
+               ebb3.setBuildingBlock(bb3);
+               flowsToExecute.add(ebb3);
+               
+               execution.setVariable("flowsToExecute", flowsToExecute);
+               execution.setVariable("gCurrentSequence", 3);
+               
+               workflowActionBBTasks.rollbackExecutionPath(execution);
+               List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
+               assertEquals("DeactivateVfModuleBB",ebbs.get(0).getBuildingBlock().getBpmnFlowName());
+               assertEquals(0,execution.getVariable("gCurrentSequence"));
+               assertEquals(1,ebbs.size());
+       }
+       
        @Test
        public void checkRetryStatusTest(){
                String reqId = "reqId123";