From c4c9f922fa9ae3549f307677d307948bda22602f Mon Sep 17 00:00:00 2001 From: Mateusz Gołuchowski Date: Tue, 16 Jun 2020 14:02:28 +0200 Subject: [WIP] WorkflowAction refactoring Extracted superclass for ExecuteBuildingBlock and ConfigBuildingBlocksDataObject Changed setters to return void instead of 'this'. Adjusted all code which was using setters chaining Issue-ID: SO-2634 Change-Id: I375db2004687f1f634adac31d4d1af3635f5981c Signed-off-by: Mateusz Goluchowski --- .../infrastructure/activity/ExecuteActivity.java | 14 ++- .../tasks/ConfigBuildingBlocksDataObject.java | 106 ++------------------- .../workflow/tasks/WorkflowAction.java | 88 +++++++++++------ .../workflow/tasks/WorkflowActionBBTasks.java | 15 ++- 4 files changed, 90 insertions(+), 133 deletions(-) (limited to 'bpmn/so-bpmn-tasks/src/main/java/org') diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/activity/ExecuteActivity.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/activity/ExecuteActivity.java index 415d4614da..a4ffb45370 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/activity/ExecuteActivity.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/activity/ExecuteActivity.java @@ -166,10 +166,16 @@ public class ExecuteActivity implements JavaDelegate { String bpmnRequest = (String) execution.getVariable(G_BPMN_REQUEST); ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class); RequestDetails requestDetails = sIRequest.getRequestDetails(); - return new ExecuteBuildingBlock().setaLaCarte(true).setRequestAction((String) execution.getVariable(G_ACTION)) - .setResourceId((String) execution.getVariable(VNF_ID)) - .setVnfType((String) execution.getVariable(VNF_TYPE)).setWorkflowResourceIds(workflowResourceIds) - .setRequestId(requestId).setBuildingBlock(buildingBlock).setRequestDetails(requestDetails); + ExecuteBuildingBlock executeBuildingBlock = new ExecuteBuildingBlock(); + executeBuildingBlock.setaLaCarte(true); + executeBuildingBlock.setRequestAction((String) execution.getVariable(G_ACTION)); + executeBuildingBlock.setResourceId((String) execution.getVariable(VNF_ID)); + executeBuildingBlock.setVnfType((String) execution.getVariable(VNF_TYPE)); + executeBuildingBlock.setWorkflowResourceIds(workflowResourceIds); + executeBuildingBlock.setRequestId(requestId); + executeBuildingBlock.setBuildingBlock(buildingBlock); + executeBuildingBlock.setRequestDetails(requestDetails); + return executeBuildingBlock; } protected void buildAndThrowException(DelegateExecution execution, String msg, Exception ex) { diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ConfigBuildingBlocksDataObject.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ConfigBuildingBlocksDataObject.java index 1852485083..d22435c495 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ConfigBuildingBlocksDataObject.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ConfigBuildingBlocksDataObject.java @@ -20,136 +20,48 @@ package org.onap.so.bpmn.infrastructure.workflow.tasks; -import java.util.List; import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds; +import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlockBase; import org.onap.so.db.catalog.beans.macro.OrchestrationFlow; -import org.onap.so.serviceinstancebeans.RequestDetails; import org.onap.so.serviceinstancebeans.ServiceInstancesRequest; +import java.util.List; -public class ConfigBuildingBlocksDataObject { +public class ConfigBuildingBlocksDataObject extends BuildingBlockBase { - private ServiceInstancesRequest sIRequest; + private DelegateExecution execution; private List orchFlows; - private String requestId; private Resource resourceKey; - private String apiVersion; - private String resourceId; - private String requestAction; - private boolean aLaCarte; - private String vnfType; - private WorkflowResourceIds workflowResourceIds; - private RequestDetails requestDetails; - private DelegateExecution execution; + private ServiceInstancesRequest sIRequest; public ServiceInstancesRequest getsIRequest() { return sIRequest; } - public ConfigBuildingBlocksDataObject setsIRequest(ServiceInstancesRequest sIRequest) { + public void setsIRequest(ServiceInstancesRequest sIRequest) { this.sIRequest = sIRequest; - return this; } public List getOrchFlows() { return orchFlows; } - public ConfigBuildingBlocksDataObject setOrchFlows(List orchFlows) { + public void setOrchFlows(List orchFlows) { this.orchFlows = orchFlows; - return this; - } - - public String getRequestId() { - return requestId; - } - - public ConfigBuildingBlocksDataObject setRequestId(String requestId) { - this.requestId = requestId; - return this; } public Resource getResourceKey() { return resourceKey; } - public ConfigBuildingBlocksDataObject setResourceKey(Resource resourceKey) { + public void setResourceKey(Resource resourceKey) { this.resourceKey = resourceKey; - return this; - } - - public String getApiVersion() { - return apiVersion; - } - - public ConfigBuildingBlocksDataObject setApiVersion(String apiVersion) { - this.apiVersion = apiVersion; - return this; - } - - public String getResourceId() { - return resourceId; - } - - public ConfigBuildingBlocksDataObject setResourceId(String resourceId) { - this.resourceId = resourceId; - return this; - } - - public String getRequestAction() { - return requestAction; - } - - public ConfigBuildingBlocksDataObject setRequestAction(String requestAction) { - this.requestAction = requestAction; - return this; - } - - public boolean isaLaCarte() { - return aLaCarte; - } - - public ConfigBuildingBlocksDataObject setaLaCarte(boolean aLaCarte) { - this.aLaCarte = aLaCarte; - return this; - } - - public String getVnfType() { - return vnfType; - } - - public ConfigBuildingBlocksDataObject setVnfType(String vnfType) { - this.vnfType = vnfType; - return this; - } - - public WorkflowResourceIds getWorkflowResourceIds() { - return workflowResourceIds; - } - - public ConfigBuildingBlocksDataObject setWorkflowResourceIds(WorkflowResourceIds workflowResourceIds) { - this.workflowResourceIds = workflowResourceIds; - return this; - } - - public RequestDetails getRequestDetails() { - return requestDetails; - } - - public ConfigBuildingBlocksDataObject setRequestDetails(RequestDetails requestDetails) { - this.requestDetails = requestDetails; - return this; } public DelegateExecution getExecution() { return execution; } - public ConfigBuildingBlocksDataObject setExecution(DelegateExecution execution) { + public void setExecution(DelegateExecution execution) { this.execution = execution; - return this; } - - - } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java index 58f7f4af2a..c75473b7ca 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java @@ -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 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 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 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; @@ -1419,10 +1447,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(); 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 9d68b5a3f0..31df5bbdc3 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 @@ -493,11 +493,16 @@ public class WorkflowActionBBTasks { WorkflowResourceIds workflowResourceIds = ebb.getWorkflowResourceIds(); workflowResourceIds.setConfigurationId(configurationId); - ExecuteBuildingBlock configBB = new ExecuteBuildingBlock().setaLaCarte(ebb.isaLaCarte()) - .setApiVersion(ebb.getApiVersion()).setRequestAction(ebb.getRequestAction()) - .setVnfType(ebb.getVnfType()).setRequestId(ebb.getRequestId()) - .setRequestDetails(ebb.getRequestDetails()).setBuildingBlock(buildingBlock) - .setWorkflowResourceIds(workflowResourceIds).setConfigurationResourceKeys(configurationResourceKeys); + ExecuteBuildingBlock configBB = new ExecuteBuildingBlock(); + configBB.setaLaCarte(ebb.isaLaCarte()); + configBB.setApiVersion(ebb.getApiVersion()); + configBB.setRequestAction(ebb.getRequestAction()); + configBB.setVnfType(ebb.getVnfType()); + configBB.setRequestId(ebb.getRequestId()); + configBB.setRequestDetails(ebb.getRequestDetails()); + configBB.setBuildingBlock(buildingBlock); + configBB.setWorkflowResourceIds(workflowResourceIds); + configBB.setConfigurationResourceKeys(configurationResourceKeys); return configBB; } -- cgit 1.2.3-korg