Merge "[WIP] WorkflowAction refactoring"
[so.git] / bpmn / so-bpmn-tasks / src / main / java / org / onap / so / bpmn / infrastructure / workflow / tasks / WorkflowAction.java
index 95f10c3..71e1abd 100644 (file)
@@ -176,25 +176,32 @@ public class WorkflowAction {
             final String bpmnRequest = (String) execution.getVariable(BBConstants.G_BPMN_REQUEST);
             ServiceInstancesRequest sIRequest =
                     new ObjectMapper().readValue(bpmnRequest, ServiceInstancesRequest.class);
-            RequestDetails requestDetails = sIRequest.getRequestDetails();
-            String uri = (String) execution.getVariable(BBConstants.G_URI);
+
             final String requestId = (String) execution.getVariable(BBConstants.G_REQUEST_ID);
-            final boolean aLaCarte = (boolean) execution.getVariable(BBConstants.G_ALACARTE);
+
+            String uri = (String) execution.getVariable(BBConstants.G_URI);
             boolean isResume = isUriResume(uri);
-            String requestAction = (String) execution.getVariable(BBConstants.G_ACTION);
+
+            final boolean isALaCarte = (boolean) execution.getVariable(BBConstants.G_ALACARTE);
+            Resource resource = getResource(bbInputSetupUtils, isResume, isALaCarte, uri, requestId);
+
             WorkflowResourceIds workflowResourceIds = populateResourceIdsFromApiHandler(execution);
-            Resource resource = getResource(bbInputSetupUtils, isResume, aLaCarte, uri, requestId);
+            RequestDetails requestDetails = sIRequest.getRequestDetails();
+            String requestAction = (String) execution.getVariable(BBConstants.G_ACTION);
             String resourceId = getResourceId(resource, requestAction, requestDetails, workflowResourceIds);
             WorkflowType resourceType = resource.getResourceType();
+
             String serviceInstanceId = getServiceInstanceId(execution, resourceId, resourceType);
+
             fillExecution(execution, requestDetails.getRequestInfo().getSuppressRollback(), resourceId, resourceType);
             List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
-            if (isRequestMacroServiceResume(aLaCarte, resourceType, requestAction, serviceInstanceId)) {
+
+            if (isRequestMacroServiceResume(isALaCarte, resourceType, requestAction, serviceInstanceId)) {
                 flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
                 if (flowsToExecute == null) {
                     buildAndThrowException(execution, "Could not resume Macro flow. Error loading execution path.");
                 }
-            } else if (aLaCarte && isResume) {
+            } else if (isALaCarte && isResume) {
                 flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
                 if (flowsToExecute == null) {
                     buildAndThrowException(execution,
@@ -208,20 +215,30 @@ public class WorkflowAction {
                 final String apiVersion = (String) execution.getVariable(BBConstants.G_APIVERSION);
                 final String serviceType =
                         Optional.ofNullable((String) execution.getVariable(BBConstants.G_SERVICE_TYPE)).orElse("");
-                if (aLaCarte) {
+                if (isALaCarte) {
                     if (orchFlows == null || orchFlows.isEmpty()) {
                         orchFlows = queryNorthBoundRequestCatalogDb(execution, requestAction, resourceType, true,
                                 cloudOwner, serviceType);
                     }
                     Resource resourceKey = getResourceKey(sIRequest, resourceType);
-                    boolean isConfiguration = isConfiguration(orchFlows);
-                    if (isConfiguration && !requestAction.equalsIgnoreCase(CREATEINSTANCE)) {
-                        List<ExecuteBuildingBlock> configBuildingBlocks = getConfigBuildingBlocks(
-                                new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest).setOrchFlows(orchFlows)
-                                        .setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
-                                        .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(true)
-                                        .setVnfType(vnfType).setWorkflowResourceIds(workflowResourceIds)
-                                        .setRequestDetails(requestDetails).setExecution(execution));
+                    if (isConfiguration(orchFlows) && !requestAction.equalsIgnoreCase(CREATEINSTANCE)) {
+                        ConfigBuildingBlocksDataObject configBuildingBlocksDataObject =
+                                new ConfigBuildingBlocksDataObject();
+                        configBuildingBlocksDataObject.setsIRequest(sIRequest);
+                        configBuildingBlocksDataObject.setOrchFlows(orchFlows);
+                        configBuildingBlocksDataObject.setRequestId(requestId);
+                        configBuildingBlocksDataObject.setResourceKey(resourceKey);
+                        configBuildingBlocksDataObject.setApiVersion(apiVersion);
+                        configBuildingBlocksDataObject.setResourceId(resourceId);
+                        configBuildingBlocksDataObject.setRequestAction(requestAction);
+                        configBuildingBlocksDataObject.setaLaCarte(true);
+                        configBuildingBlocksDataObject.setVnfType(vnfType);
+                        configBuildingBlocksDataObject.setWorkflowResourceIds(workflowResourceIds);
+                        configBuildingBlocksDataObject.setRequestDetails(requestDetails);
+                        configBuildingBlocksDataObject.setExecution(execution);
+
+                        List<ExecuteBuildingBlock> configBuildingBlocks =
+                                getConfigBuildingBlocks(configBuildingBlocksDataObject);
 
                         flowsToExecute.addAll(configBuildingBlocks);
                     }
@@ -232,12 +249,23 @@ public class WorkflowAction {
                             || requestAction.equalsIgnoreCase(REPLACEINSTANCERETAINASSIGNMENTS))
                             && resourceType.equals(WorkflowType.VFMODULE)) {
                         logger.debug("Build a BB list for replacing BB modules");
-                        orchFlows = getVfModuleReplaceBuildingBlocks(
-                                new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest).setOrchFlows(orchFlows)
-                                        .setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion)
-                                        .setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(true)
-                                        .setVnfType(vnfType).setWorkflowResourceIds(workflowResourceIds)
-                                        .setRequestDetails(requestDetails).setExecution(execution));
+
+                        ConfigBuildingBlocksDataObject configBuildingBlocksDataObject =
+                                new ConfigBuildingBlocksDataObject();
+                        configBuildingBlocksDataObject.setsIRequest(sIRequest);
+                        configBuildingBlocksDataObject.setOrchFlows(orchFlows);
+                        configBuildingBlocksDataObject.setRequestId(requestId);
+                        configBuildingBlocksDataObject.setResourceKey(resourceKey);
+                        configBuildingBlocksDataObject.setApiVersion(apiVersion);
+                        configBuildingBlocksDataObject.setResourceId(resourceId);
+                        configBuildingBlocksDataObject.setRequestAction(requestAction);
+                        configBuildingBlocksDataObject.setaLaCarte(true);
+                        configBuildingBlocksDataObject.setVnfType(vnfType);
+                        configBuildingBlocksDataObject.setWorkflowResourceIds(workflowResourceIds);
+                        configBuildingBlocksDataObject.setRequestDetails(requestDetails);
+                        configBuildingBlocksDataObject.setExecution(execution);
+
+                        orchFlows = getVfModuleReplaceBuildingBlocks(configBuildingBlocksDataObject);
                     }
                     for (OrchestrationFlow orchFlow : orchFlows) {
                         ExecuteBuildingBlock ebb = buildExecuteBuildingBlock(orchFlow, requestId, resourceKey,
@@ -319,7 +347,7 @@ public class WorkflowAction {
                     logger.info("Found {}", foundObjects);
 
                     if (orchFlows == null || orchFlows.isEmpty()) {
-                        orchFlows = queryNorthBoundRequestCatalogDb(execution, requestAction, resourceType, aLaCarte,
+                        orchFlows = queryNorthBoundRequestCatalogDb(execution, requestAction, resourceType, isALaCarte,
                                 cloudOwner, serviceType);
                     }
                     boolean vnfReplace = false;
@@ -1436,10 +1464,16 @@ public class WorkflowAction {
             resourceId = workflowResourceIds.getVolumeGroupId();
         }
 
-        ExecuteBuildingBlock executeBuildingBlock = new ExecuteBuildingBlock().setApiVersion(apiVersion)
-                .setaLaCarte(aLaCarte).setRequestAction(requestAction).setResourceId(resourceId).setVnfType(vnfType)
-                .setWorkflowResourceIds(workflowResourceIds).setRequestId(requestId).setBuildingBlock(buildingBlock)
-                .setRequestDetails(requestDetails);
+        ExecuteBuildingBlock executeBuildingBlock = new ExecuteBuildingBlock();
+        executeBuildingBlock.setApiVersion(apiVersion);
+        executeBuildingBlock.setaLaCarte(aLaCarte);
+        executeBuildingBlock.setRequestAction(requestAction);
+        executeBuildingBlock.setResourceId(resourceId);
+        executeBuildingBlock.setVnfType(vnfType);
+        executeBuildingBlock.setWorkflowResourceIds(workflowResourceIds);
+        executeBuildingBlock.setRequestId(requestId);
+        executeBuildingBlock.setBuildingBlock(buildingBlock);
+        executeBuildingBlock.setRequestDetails(requestDetails);
 
         if (resource != null && (isConfiguration || resource.getResourceType().equals(WorkflowType.CONFIGURATION))) {
             ConfigurationResourceKeys configurationResourceKeys = new ConfigurationResourceKeys();