From eeaf0330f835b237812bbbf26ca5bba3c44f4671 Mon Sep 17 00:00:00 2001 From: "Kalkere Ramesh, Sharan (sk720x)" Date: Wed, 21 Oct 2020 19:03:26 -0400 Subject: PNF service instantiation using building blocks fails End flow if ControllerExecutionBB is last in list Change-Id: Ia7020572a4418e7cbd5a9d167788f6476ff3554a Issue-ID: SO-3322 Signed-off-by: Kalkere Ramesh, Sharan --- .../workflow/tasks/WorkflowActionBBTasks.java | 7 ++++++- .../tasks/listeners/SkipCDSBuildingBlockListener.java | 19 ++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) (limited to 'bpmn/so-bpmn-tasks/src/main') 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 43a85051be..0cb8fb2ccd 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 @@ -103,7 +103,6 @@ public class WorkflowActionBBTasks { (List) execution.getVariable("flowsToExecute"); execution.setVariable("MacroRollback", false); - flowManipulatorListenerRunner.modifyFlows(flowsToExecute, new DelegateExecutionImpl(execution)); int currentSequence = (int) execution.getVariable(G_CURRENT_SEQUENCE); ExecuteBuildingBlock ebb = flowsToExecute.get(currentSequence); @@ -114,6 +113,12 @@ public class WorkflowActionBBTasks { execution.setVariable(G_CURRENT_SEQUENCE, currentSequence); } + public void runFlowManipulator(DelegateExecution execution) { + List flowsToExecute = + (List) execution.getVariable("flowsToExecute"); + flowManipulatorListenerRunner.modifyFlows(flowsToExecute, new DelegateExecutionImpl(execution)); + } + public void updateFlowStatistics(DelegateExecution execution) { try { int currentSequence = (int) execution.getVariable(G_CURRENT_SEQUENCE); diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListener.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListener.java index 2119ced951..42aab4c16e 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListener.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListener.java @@ -52,6 +52,8 @@ public class SkipCDSBuildingBlockListener implements FlowManipulator { private Set pnfActions = new HashSet<>(Arrays.asList("config-assign", "config-deploy", "PnfConfigAssign", "PnfConfigDeploy")); + private static final String COMPLETED = "completed"; + @Override public boolean shouldRunFor(String currentBBName, boolean isFirst, BuildingBlockExecution execution) { @@ -70,6 +72,7 @@ public class SkipCDSBuildingBlockListener implements FlowManipulator { public void run(List flowsToExecute, ExecuteBuildingBlock currentBB, BuildingBlockExecution execution) { String customizationUUID = currentBB.getBuildingBlock().getKey(); + int flowsToExecuteSize = flowsToExecute.size(); if (Strings.isEmpty(customizationUUID)) { return; @@ -85,7 +88,7 @@ public class SkipCDSBuildingBlockListener implements FlowManipulator { vnfResourceCustomizations); if (null != vrc) { boolean skipConfigVNF = vrc.isSkipPostInstConf(); - currentSequenceSkipCheck(execution, skipConfigVNF); + currentSequenceSkipCheck(execution, skipConfigVNF, flowsToExecuteSize); } } @@ -97,7 +100,7 @@ public class SkipCDSBuildingBlockListener implements FlowManipulator { if (null != vfc) { boolean skipVfModule = vfc.isSkipPostInstConf(); - currentSequenceSkipCheck(execution, skipVfModule); + currentSequenceSkipCheck(execution, skipVfModule, flowsToExecuteSize); } } else if (currentBB.getBuildingBlock().getBpmnScope().equalsIgnoreCase("PNF") @@ -107,7 +110,7 @@ public class SkipCDSBuildingBlockListener implements FlowManipulator { if (null != pnfResourceCustomization) { boolean skipConfigPNF = pnfResourceCustomization.isSkipPostInstConf(); - currentSequenceSkipCheck(execution, skipConfigPNF); + currentSequenceSkipCheck(execution, skipConfigPNF, flowsToExecuteSize); } } } @@ -118,10 +121,16 @@ public class SkipCDSBuildingBlockListener implements FlowManipulator { } - private void currentSequenceSkipCheck(BuildingBlockExecution execution, boolean skipModule) { + private void currentSequenceSkipCheck(BuildingBlockExecution execution, boolean skipModule, + int flowsToExecuteSize) { if (skipModule) { int currentSequence = execution.getVariable(BBConstants.G_CURRENT_SEQUENCE); - execution.setVariable(BBConstants.G_CURRENT_SEQUENCE, currentSequence + 1); + currentSequence++; + if (currentSequence >= flowsToExecuteSize) { + execution.setVariable(COMPLETED, true); + } else { + execution.setVariable(BBConstants.G_CURRENT_SEQUENCE, currentSequence); + } } } -- cgit 1.2.3-korg