From 9630dd840fac8977329d7ff2dacc96e6db31248d Mon Sep 17 00:00:00 2001 From: "Boslet, Cory" Date: Tue, 3 Nov 2020 12:01:12 -0500 Subject: Added to handle inventory failure errors in bpmn. Added to handle inventory failure errors in bpmn. Issue-ID: SO-3358 Signed-off-by: Benjamin, Max (mb388a) Change-Id: Ia578a4e629ac816c79338fbfff7717ad348e9bc4 --- .../org/onap/so/adapters/tasks/TaskServices.java | 10 +- .../tasks/inventory/CreateInventoryTask.java | 7 +- .../tasks/inventory/DeleteInventoryTask.java | 7 +- .../adapters/tasks/orchestration/PollService.java | 6 +- .../tasks/orchestration/RollbackService.java | 2 +- .../adapters/tasks/orchestration/StackService.java | 2 +- .../onap/so/client/exception/ExceptionBuilder.java | 14 ++ .../subprocess/BuildingBlock/CreateVfModuleBB.bpmn | 149 +++++++++++---------- .../subprocess/BuildingBlock/DeleteVfModuleBB.bpmn | 69 +++++----- .../onap/so/utils/ExternalTaskServiceUtils.java | 10 -- 10 files changed, 148 insertions(+), 128 deletions(-) diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/TaskServices.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/TaskServices.java index b176892192..4e0c4ad8a6 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/TaskServices.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/TaskServices.java @@ -62,13 +62,13 @@ public class TaskServices { public void createtAAIInventory() throws Exception { for (int i = 0; i < externalTaskServiceUtils.getMaxClients(); i++) { ExternalTaskClient client = externalTaskServiceUtils.createExternalTaskClient(); - client.subscribe("InventoryCreate").lockDuration(externalTaskServiceUtils.getLongLockDuration()) + client.subscribe("InventoryCreate").lockDuration(externalTaskServiceUtils.getLockDurationMedium()) .handler(createInventory::executeExternalTask).open(); } } @PostConstruct - public void auditAAIInventory() throws Exception { + public void deleteAAIInventory() throws Exception { for (int i = 0; i < externalTaskServiceUtils.getMaxClients(); i++) { externalTaskServiceUtils.createExternalTaskClient().subscribe("InventoryDelete") .lockDuration(externalTaskServiceUtils.getLockDurationMedium()) @@ -80,7 +80,7 @@ public class TaskServices { public void openstackInvoker() throws Exception { for (int i = 0; i < externalTaskServiceUtils.getMaxClients(); i++) { ExternalTaskClient client = externalTaskServiceUtils.createExternalTaskClient(); - client.subscribe("OpenstackAdapterInvoke").lockDuration(externalTaskServiceUtils.getLockDuration()) + client.subscribe("OpenstackAdapterInvoke").lockDuration(externalTaskServiceUtils.getLockDurationShort()) .handler(stackService::executeExternalTask).open(); } } @@ -89,7 +89,7 @@ public class TaskServices { public void openstackPoller() throws Exception { for (int i = 0; i < externalTaskServiceUtils.getMaxClients(); i++) { ExternalTaskClient client = externalTaskServiceUtils.createExternalTaskClient(); - client.subscribe("OpenstackAdapterPolling").lockDuration(externalTaskServiceUtils.getLockDuration()) + client.subscribe("OpenstackAdapterPolling").lockDuration(externalTaskServiceUtils.getLockDurationMedium()) .handler(pollService::executeExternalTask).open(); } } @@ -98,7 +98,7 @@ public class TaskServices { public void openstackRollback() throws Exception { for (int i = 0; i < externalTaskServiceUtils.getMaxClients(); i++) { ExternalTaskClient client = externalTaskServiceUtils.createExternalTaskClient(); - client.subscribe("OpenstackAdapterRollback").lockDuration(externalTaskServiceUtils.getLockDuration()) + client.subscribe("OpenstackAdapterRollback").lockDuration(externalTaskServiceUtils.getLockDurationShort()) .handler(rollbackService::executeExternalTask).open(); } } diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/CreateInventoryTask.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/CreateInventoryTask.java index 3c9a4833ae..711394a95d 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/CreateInventoryTask.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/CreateInventoryTask.java @@ -22,6 +22,8 @@ package org.onap.so.adapters.tasks.inventory; +import java.util.HashMap; +import java.util.Map; import org.camunda.bpm.client.task.ExternalTask; import org.camunda.bpm.client.task.ExternalTaskService; import org.onap.logging.ref.slf4j.ONAPLogConstants; @@ -57,6 +59,7 @@ public class CreateInventoryTask extends ExternalTaskUtils { public void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) { mdcSetup.setupMDC(externalTask); + Map variables = new HashMap<>(); String externalTaskId = externalTask.getId(); CloudInformation cloudInformation = externalTask.getVariable("cloudInformation"); boolean success = true; @@ -69,6 +72,7 @@ public class CreateInventoryTask extends ExternalTaskUtils { } catch (Exception e) { logger.error("Error during inventory of stack", e); success = false; + variables.put("inventoryErrorMessage", e.getMessage()); } mdcSetup.setElapsedTime(); if (success) { @@ -84,7 +88,8 @@ public class CreateInventoryTask extends ExternalTaskUtils { externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, getRetrySequence().length, 10000); } else if (retryCount != null && retryCount - 1 == 0) { - externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE); + externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE, AAI_INVENTORY_FAILURE, + variables); mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString()); logger.error("The External Task {} Failed, All Retries Exhausted", externalTaskId); logger.info(ONAPLogConstants.Markers.EXIT, "Exiting"); diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/DeleteInventoryTask.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/DeleteInventoryTask.java index 08361bdbbf..aad517129f 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/DeleteInventoryTask.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/DeleteInventoryTask.java @@ -22,6 +22,8 @@ package org.onap.so.adapters.tasks.inventory; +import java.util.HashMap; +import java.util.Map; import org.camunda.bpm.client.task.ExternalTask; import org.camunda.bpm.client.task.ExternalTaskService; import org.onap.logging.ref.slf4j.ONAPLogConstants; @@ -56,6 +58,7 @@ public class DeleteInventoryTask extends ExternalTaskUtils { public void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) { mdcSetup.setupMDC(externalTask); + Map variables = new HashMap<>(); String externalTaskId = externalTask.getId(); CloudInformation cloudInformation = externalTask.getVariable("cloudInformation"); boolean success = true; @@ -66,6 +69,7 @@ public class DeleteInventoryTask extends ExternalTaskUtils { } catch (Exception e) { logger.error("Error during inventory of stack", e); success = false; + variables.put("inventoryErrorMessage", e.getMessage()); } mdcSetup.setElapsedTime(); if (success) { @@ -81,7 +85,8 @@ public class DeleteInventoryTask extends ExternalTaskUtils { externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, getRetrySequence().length, 10000); } else if (retryCount != null && retryCount - 1 == 0) { - externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE); + externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE, AAI_INVENTORY_FAILURE, + variables); mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString()); logger.error("The External Task Id: {} Failed, All Retries Exhausted", externalTaskId); logger.info(ONAPLogConstants.Markers.EXIT, "Exiting"); diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/PollService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/PollService.java index 9ff50e8644..6a5381cf3e 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/PollService.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/PollService.java @@ -68,7 +68,7 @@ public class PollService extends ExternalTaskUtils { public void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) { mdcSetup.setupMDC(externalTask); - logger.trace("Executing External Task Poll Service"); + logger.debug("Starting External Task Poll Service"); Map variables = new HashMap<>(); MutableBoolean success = new MutableBoolean(); String errorMessage = null; @@ -103,11 +103,11 @@ public class PollService extends ExternalTaskUtils { } } catch (Exception e) { logger.error("Error during External Task Poll Service", e); - errorMessage = e.getMessage(); + errorMessage = e.toString(); + variables.put("openstackAdapterErrorMessage", errorMessage); } variables.put("OpenstackPollSuccess", success.booleanValue()); - variables.put("openstackAdapterErrorMessage", errorMessage); if (success.isTrue()) { externalTaskService.complete(externalTask, variables); logger.debug("The External Task Id: {} Successful", externalTask.getId()); diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/RollbackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/RollbackService.java index 15e6ff581d..c25d752cc4 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/RollbackService.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/RollbackService.java @@ -39,7 +39,7 @@ public class RollbackService extends ExternalTaskUtils { public void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) { mdcSetup.setupMDC(externalTask); - logger.trace("Executing External Task Rollback Service"); + logger.debug("Starting External Task Rollback Service"); Map variables = new HashMap<>(); boolean success = false; boolean pollRollbackStatus = false; diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/StackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/StackService.java index 5196ffffda..c9fa30d949 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/StackService.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/StackService.java @@ -91,7 +91,7 @@ public class StackService extends ExternalTaskUtils { Map variables = new HashMap<>(); mdcSetup.setupMDC(externalTask); String xmlRequest = externalTask.getVariable("openstackAdapterTaskRequest"); - logger.debug("Executing External Task Stack Service. {}", xmlRequest); + logger.debug("Starting External Task Stack Service. {}", xmlRequest); MutableBoolean success = new MutableBoolean(); MutableBoolean backout = new MutableBoolean(); String response = ""; diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java index 43db27917e..f40948fc49 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/exception/ExceptionBuilder.java @@ -376,4 +376,18 @@ public class ExceptionBuilder { } + public void processInventoryException(DelegateExecution execution) { + String errorMessage = ""; + logger.debug("Processing Inventory Exception"); + try { + errorMessage = (String) execution.getVariable("inventoryErrorMessage"); + } catch (Exception e) { + logger.debug("Error while Processing Inventory Exception", e); + } + buildWorkflowException(execution, 500, errorMessage, Components.OPENSTACK); + throw new BpmnError("MSOWorkflowException"); + + + } + } diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/CreateVfModuleBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/CreateVfModuleBB.bpmn index 7638f34a59..9e2c0db6ea 100644 --- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/CreateVfModuleBB.bpmn +++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/CreateVfModuleBB.bpmn @@ -1,5 +1,5 @@ - + SequenceFlow_1xr6chl @@ -43,17 +43,6 @@ SequenceFlow_15do1tu SequenceFlow_0rds4rj - - - SequenceFlow_0gcots6 - - - - SequenceFlow_0gcots6 - - - - @@ -61,7 +50,7 @@ SequenceFlow_0xqhep5 - + SequenceFlow_0xqhep5 SequenceFlow_1yo6mvv @@ -97,14 +86,30 @@ SequenceFlow_1mg8eym - + ${execution.getVariable("isHelm")} + + + Flow_03q6ty9 + + + Flow_1sqy91r + + + + Flow_1sqy91r + Flow_03q6ty9 + + + + + @@ -117,8 +122,8 @@ - - + + @@ -133,8 +138,8 @@ - - + + @@ -151,40 +156,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + + + + @@ -193,8 +176,8 @@ - - + + @@ -203,8 +186,8 @@ - - + + @@ -213,8 +196,8 @@ - - + + @@ -223,8 +206,8 @@ - - + + @@ -233,8 +216,8 @@ - - + + @@ -243,10 +226,10 @@ - - - - + + + + @@ -261,48 +244,68 @@ - - + + - - + + - - + + - - + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/DeleteVfModuleBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/DeleteVfModuleBB.bpmn index 9a33a3e4bf..fba1139117 100644 --- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/DeleteVfModuleBB.bpmn +++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/DeleteVfModuleBB.bpmn @@ -31,17 +31,6 @@ SequenceFlow_08tvhtf Flow_0hlvlw2 - - - SequenceFlow_0h607z0 - - - - SequenceFlow_0h607z0 - - - - SequenceFlow_0yuz21z SequenceFlow_01vfwtp @@ -89,9 +78,25 @@ + + + Flow_0yqo5xu + + + Flow_0qyhv7c + + + + Flow_0qyhv7c + Flow_0yqo5xu + + + + + @@ -122,28 +127,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -239,6 +222,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/main/java/org/onap/so/utils/ExternalTaskServiceUtils.java b/common/src/main/java/org/onap/so/utils/ExternalTaskServiceUtils.java index c601b88ae5..1a8307e8bc 100644 --- a/common/src/main/java/org/onap/so/utils/ExternalTaskServiceUtils.java +++ b/common/src/main/java/org/onap/so/utils/ExternalTaskServiceUtils.java @@ -64,16 +64,6 @@ public class ExternalTaskServiceUtils { return Integer.parseInt(env.getProperty("workflow.topics.maxClients", "10")); } - public Long getLockDuration() { - Long lockDuration = Long.parseLong(env.getProperty("mso.audit.lock-time", "60000")); - return lockDuration; - } - - public Long getLongLockDuration() { - Long lockDuration = Long.parseLong(env.getProperty("mso.long.lock-time", "600000")); - return lockDuration; - } - @ScheduledLogging @Scheduled(fixedDelay = 30000) public void checkAllClientsActive() { -- cgit 1.2.3-korg