diff options
Diffstat (limited to 'bpmn/so-bpmn-tasks')
3 files changed, 45 insertions, 24 deletions
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 a436f7b5c2..9340609ffc 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 @@ -59,9 +59,18 @@ public class ExecuteActivity implements JavaDelegate { private static final String VNF_ID = "vnfId"; private static final String SERVICE_INSTANCE_ID = "serviceInstanceId"; private static final String WORKFLOW_SYNC_ACK_SENT = "workflowSyncAckSent"; + private static final String BUILDING_BLOCK = "buildingBlock"; + private static final String EXECUTE_BUILDING_BLOCK = "ExecuteBuildingBlock"; + private static final String RETRY_COUNT = "retryCount"; + private static final String A_LA_CARTE = "aLaCarte"; + private static final String SUPPRESS_ROLLBACK = "suppressRollback"; + private static final String WORKFLOW_EXCEPTION = "WorkflowException"; + private static final String HANDLING_CODE = "handlingCode"; + private static final String ABORT_HANDLING_CODE = "Abort"; private static final String SERVICE_TASK_IMPLEMENTATION_ATTRIBUTE = "implementation"; private static final String ACTIVITY_PREFIX = "activity:"; + private static final String EXECUTE_ACTIVITY_ERROR_MESSAGE = "ExecuteActivityErrorMessage"; private ObjectMapper mapper = new ObjectMapper(); @@ -75,7 +84,8 @@ public class ExecuteActivity implements JavaDelegate { @Override public void execute(DelegateExecution execution) throws Exception { final String requestId = (String) execution.getVariable(G_REQUEST_ID); - + WorkflowException workflowException = null; + String handlingCode = null; try { Boolean workflowSyncAckSent = (Boolean) execution.getVariable(WORKFLOW_SYNC_ACK_SENT); if (workflowSyncAckSent == null || workflowSyncAckSent == false) { @@ -95,31 +105,44 @@ public class ExecuteActivity implements JavaDelegate { ExecuteBuildingBlock executeBuildingBlock = buildExecuteBuildingBlock(execution, requestId, buildingBlock); Map<String, Object> variables = new HashMap<>(); - variables.put("buildingBlock", executeBuildingBlock); - variables.put(G_REQUEST_ID, requestId); - variables.put("retryCount", 1); - variables.put("aLaCarte", true); - variables.put("suppressRollback", true); - execution.getVariables().forEach((key, value) -> { - if (value instanceof Serializable) { - variables.put(key, (Serializable) value); - } - }); + if (execution.getVariables() != null) { + execution.getVariables().forEach((key, value) -> { + if (value instanceof Serializable) { + variables.put(key, (Serializable) value); + } + }); + } + + variables.put(BUILDING_BLOCK, executeBuildingBlock); + variables.put(G_REQUEST_ID, requestId); + variables.put(RETRY_COUNT, 1); + variables.put(A_LA_CARTE, true); + variables.put(SUPPRESS_ROLLBACK, true); ProcessInstanceWithVariables buildingBlockResult = - runtimeService.createProcessInstanceByKey("ExecuteBuildingBlock").setVariables(variables) + runtimeService.createProcessInstanceByKey(EXECUTE_BUILDING_BLOCK).setVariables(variables) .executeWithVariablesInReturn(); VariableMap variableMap = buildingBlockResult.getVariables(); - WorkflowException workflowException = (WorkflowException) variableMap.get("WorklfowException"); + workflowException = (WorkflowException) variableMap.get(WORKFLOW_EXCEPTION); if (workflowException != null) { logger.error("Workflow exception is: {}", workflowException.getErrorMessage()); } - execution.setVariable("WorkflowException", workflowException); + + handlingCode = (String) variableMap.get(HANDLING_CODE); + logger.debug("Handling code: " + handlingCode); + + execution.setVariable(WORKFLOW_EXCEPTION, workflowException); } catch (Exception e) { buildAndThrowException(execution, e.getMessage()); } + + if (workflowException != null && handlingCode != null && handlingCode.equals(ABORT_HANDLING_CODE)) { + logger.debug("Aborting execution of the custom workflow"); + buildAndThrowException(execution, workflowException.getErrorMessage()); + } + } protected BuildingBlock buildBuildingBlock(String activityName) { @@ -161,7 +184,7 @@ public class ExecuteActivity implements JavaDelegate { protected void buildAndThrowException(DelegateExecution execution, String msg) { logger.error(msg); - execution.setVariable("ExecuteActuvityErrorMessage", msg); + execution.setVariable(EXECUTE_ACTIVITY_ERROR_MESSAGE, msg); exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, msg); } } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/UnassignNetworkBB.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/UnassignNetworkBB.java index 7466df53b2..c9a937b824 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/UnassignNetworkBB.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/UnassignNetworkBB.java @@ -30,8 +30,6 @@ import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB; import org.onap.so.client.aai.entities.AAIResultWrapper; import org.onap.so.client.exception.ExceptionBuilder; import org.onap.so.client.orchestration.AAINetworkResources; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -61,10 +59,10 @@ public class UnassignNetworkBB { * @param execution - BuildingBlockExecution * @param relatedToValue - String, ex: vf-module * @return void - nothing - * @throws Exception + * */ - public void checkRelationshipRelatedTo(BuildingBlockExecution execution, String relatedToValue) throws Exception { + public void checkRelationshipRelatedTo(BuildingBlockExecution execution, String relatedToValue) { try { L3Network l3network = extractPojosForBB.extractByKey(execution, ResourceKey.NETWORK_ID); AAIResultWrapper aaiResultWrapper = aaiNetworkResources.queryNetworkWrapperById(l3network); @@ -85,10 +83,10 @@ public class UnassignNetworkBB { * * @param execution - BuildingBlockExecution * @return void - nothing - * @throws Exception + * */ - public void getCloudSdncRegion(BuildingBlockExecution execution) throws Exception { + public void getCloudSdncRegion(BuildingBlockExecution execution) { try { String cloudRegionSdnc = networkBBUtils.getCloudRegion(execution, SourceSystem.SDNC); execution.setVariable("cloudRegionSdnc", cloudRegionSdnc); @@ -107,7 +105,7 @@ public class UnassignNetworkBB { String msg; boolean isRollbackNeeded = execution.getVariable("isRollbackNeeded") != null ? execution.getVariable("isRollbackNeeded") : false; - if (isRollbackNeeded == true) { + if (isRollbackNeeded) { msg = execution.getVariable("ErrorUnassignNetworkBB") + messageErrorRollback; } else { msg = execution.getVariable("ErrorUnassignNetworkBB"); diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sniro/SniroClient.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sniro/SniroClient.java index 21c0b971b8..d07574a1ad 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sniro/SniroClient.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sniro/SniroClient.java @@ -57,10 +57,10 @@ public class SniroClient { * * @param homingRequest * @return - * @throws JsonProcessingException + * @throws BadResponseException * @throws BpmnError */ - public void postDemands(SniroManagerRequest homingRequest) throws BadResponseException, JsonProcessingException { + public void postDemands(SniroManagerRequest homingRequest) throws BadResponseException { logger.trace("Started Sniro Client Post Demands"); String url = managerProperties.getHost() + managerProperties.getUri().get("v2"); logger.debug("Post demands url: {}", url); |