X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=bpmn%2Fso-bpmn-tasks%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fso%2Fbpmn%2Finfrastructure%2Fflowspecific%2Ftasks%2FConfigurationScaleOut.java;h=1925d8b69f1ed79ffe08ade84c3b263de3c8eb83;hb=f47919f1fe367b612fa9c96d34c59f01a541e882;hp=4cd0321578c2aa450b618d7585c3a75947c35fce;hpb=54452b80a1cf4d22ef750bc1377f8c1b05431d57;p=so.git diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigurationScaleOut.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigurationScaleOut.java index 4cd0321578..1925d8b69f 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigurationScaleOut.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ConfigurationScaleOut.java @@ -25,7 +25,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; - import org.onap.appc.client.lcm.model.Action; import org.onap.so.bpmn.appc.payload.beans.ConfigScaleOutPayload; import org.onap.so.bpmn.appc.payload.beans.RequestParametersConfigScaleOut; @@ -45,124 +44,124 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; - import com.fasterxml.jackson.databind.ObjectMapper; import com.jayway.jsonpath.JsonPath; @Component public class ConfigurationScaleOut { - private static final Logger logger = LoggerFactory.getLogger(ConfigurationScaleOut.class); - @Autowired - private ExceptionBuilder exceptionUtil; - @Autowired - private ExtractPojosForBB extractPojosForBB; - @Autowired - private CatalogDbClient catalogDbClient; - @Autowired - private ApplicationControllerAction appCClient; - private static final String ACTION = "action"; - private static final String MSO_REQUEST_ID = "msoRequestId"; - private static final String VNF_ID = "vnfId"; - private static final String VNF_NAME = "vnfName"; - private static final String VFMODULE_ID = "vfModuleId"; - private static final String CONTROLLER_TYPE = "controllerType"; - private static final String PAYLOAD = "payload"; - - public void setParamsForConfigurationScaleOut(BuildingBlockExecution execution) { - - GeneralBuildingBlock gBBInput = execution.getGeneralBuildingBlock(); - - try { - List> jsonPathForCfgParams = gBBInput.getRequestContext().getConfigurationParameters(); - String key = null; - String paramValue = null; - ObjectMapper mapper = new ObjectMapper(); - String configScaleOutPayloadString = null; - ControllerSelectionReference controllerSelectionReference; - ConfigScaleOutPayload configPayload = new ConfigScaleOutPayload(); - GenericVnf vnf = extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID); - String vnfId = vnf.getVnfId(); - String vnfName = vnf.getVnfName(); - String vnfType = vnf.getVnfType(); - String actionCategory = Action.ConfigScaleOut.toString(); - controllerSelectionReference = catalogDbClient.getControllerSelectionReferenceByVnfTypeAndActionCategory(vnfType, actionCategory); - String controllerName = controllerSelectionReference.getControllerName(); - - VfModule vfModule = extractPojosForBB.extractByKey(execution, ResourceKey.VF_MODULE_ID); - String sdncVfModuleQueryResponse = execution.getVariable("SDNCQueryResponse_" + vfModule.getVfModuleId()); - - Map paramsMap = new HashMap<>(); - RequestParametersConfigScaleOut requestParameters = new RequestParametersConfigScaleOut(); - String configScaleOutParam = null; - if (jsonPathForCfgParams != null) { - for (Map param : jsonPathForCfgParams) { - for (Map.Entry entry : param.entrySet()) { - key = entry.getKey(); - paramValue = entry.getValue(); - try{ - configScaleOutParam = JsonPath.parse(sdncVfModuleQueryResponse).read(paramValue); - }catch(ClassCastException e){ - configScaleOutParam = null; - logger.warn("Incorrect JSON path. Path points to object rather than value causing: ", e); - } - paramsMap.put(key, configScaleOutParam); - } - } - } - requestParameters.setVfModuleId(vfModule.getVfModuleId()); - requestParameters.setVnfHostIpAddress(vnf.getIpv4OamAddress()); - configPayload.setConfigurationParameters(paramsMap); - configPayload.setRequestParameters(requestParameters); - configScaleOutPayloadString = mapper.writeValueAsString(configPayload); - - execution.setVariable(ACTION, actionCategory); - execution.setVariable(MSO_REQUEST_ID, gBBInput.getRequestContext().getMsoRequestId()); - execution.setVariable(VNF_ID, vnfId); - execution.setVariable(VNF_NAME, vnfName); - execution.setVariable(VFMODULE_ID, vfModule.getVfModuleId()); - execution.setVariable(CONTROLLER_TYPE, controllerName); - execution.setVariable(PAYLOAD, configScaleOutPayloadString); - } catch (Exception ex) { - exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex); - } - } - - public void callAppcClient(BuildingBlockExecution execution) { - logger.trace("Start runAppcCommand "); - String appcCode = "1002"; - String appcMessage = ""; - try{ - Action commandAction = Action.valueOf(execution.getVariable(ACTION)); - String msoRequestId = execution.getVariable(MSO_REQUEST_ID); - String vnfId = execution.getVariable(VNF_ID); - Optional payloadString = null; - if(execution.getVariable(PAYLOAD) != null){ - String pay = execution.getVariable(PAYLOAD); - payloadString = Optional.of(pay); - } - String controllerType = execution.getVariable(CONTROLLER_TYPE); - HashMap payloadInfo = new HashMap<>(); - payloadInfo.put(VNF_NAME, execution.getVariable(VNF_NAME)); - payloadInfo.put(VFMODULE_ID,execution.getVariable(VFMODULE_ID)); - logger.debug("Running APP-C action: {}", commandAction.toString()); - logger.debug("VNFID: {}", vnfId); - //PayloadInfo contains extra information that adds on to payload before making request to appc - appCClient.runAppCCommand(commandAction, msoRequestId, vnfId, payloadString, payloadInfo, controllerType); - appcCode = appCClient.getErrorCode(); - appcMessage = appCClient.getErrorMessage(); - - } catch (Exception e) { - logger.error("{} {} {} {} {}", MessageEnum.BPMN_GENERAL_EXCEPTION.toString(), - "Caught exception in runAppcCommand in ConfigurationScaleOut", "BPMN", - ErrorCode.UnknownError.getValue(), "APPC Error", e); - appcMessage = e.getMessage(); - } - logger.error("Error Message: " + appcMessage); - logger.error("ERROR CODE: " + appcCode); - logger.trace("End of runAppCommand "); - if (appcCode != null && !appcCode.equals("0")) { - exceptionUtil.buildAndThrowWorkflowException(execution, Integer.parseInt(appcCode), appcMessage); - } - } + private static final Logger logger = LoggerFactory.getLogger(ConfigurationScaleOut.class); + @Autowired + private ExceptionBuilder exceptionUtil; + @Autowired + private ExtractPojosForBB extractPojosForBB; + @Autowired + private CatalogDbClient catalogDbClient; + @Autowired + private ApplicationControllerAction appCClient; + private static final String ACTION = "action"; + private static final String MSO_REQUEST_ID = "msoRequestId"; + private static final String VNF_ID = "vnfId"; + private static final String VNF_NAME = "vnfName"; + private static final String VFMODULE_ID = "vfModuleId"; + private static final String CONTROLLER_TYPE = "controllerType"; + private static final String PAYLOAD = "payload"; + + public void setParamsForConfigurationScaleOut(BuildingBlockExecution execution) { + + GeneralBuildingBlock gBBInput = execution.getGeneralBuildingBlock(); + + try { + List> jsonPathForCfgParams = gBBInput.getRequestContext().getConfigurationParameters(); + String key = null; + String paramValue = null; + ObjectMapper mapper = new ObjectMapper(); + String configScaleOutPayloadString = null; + ControllerSelectionReference controllerSelectionReference; + ConfigScaleOutPayload configPayload = new ConfigScaleOutPayload(); + GenericVnf vnf = extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID); + String vnfId = vnf.getVnfId(); + String vnfName = vnf.getVnfName(); + String vnfType = vnf.getVnfType(); + String actionCategory = Action.ConfigScaleOut.toString(); + controllerSelectionReference = + catalogDbClient.getControllerSelectionReferenceByVnfTypeAndActionCategory(vnfType, actionCategory); + String controllerName = controllerSelectionReference.getControllerName(); + + VfModule vfModule = extractPojosForBB.extractByKey(execution, ResourceKey.VF_MODULE_ID); + String sdncVfModuleQueryResponse = execution.getVariable("SDNCQueryResponse_" + vfModule.getVfModuleId()); + + Map paramsMap = new HashMap<>(); + RequestParametersConfigScaleOut requestParameters = new RequestParametersConfigScaleOut(); + String configScaleOutParam = null; + if (jsonPathForCfgParams != null) { + for (Map param : jsonPathForCfgParams) { + for (Map.Entry entry : param.entrySet()) { + key = entry.getKey(); + paramValue = entry.getValue(); + try { + configScaleOutParam = JsonPath.parse(sdncVfModuleQueryResponse).read(paramValue); + } catch (ClassCastException e) { + configScaleOutParam = null; + logger.warn("Incorrect JSON path. Path points to object rather than value causing: ", e); + } + paramsMap.put(key, configScaleOutParam); + } + } + } + requestParameters.setVfModuleId(vfModule.getVfModuleId()); + requestParameters.setVnfHostIpAddress(vnf.getIpv4OamAddress()); + configPayload.setConfigurationParameters(paramsMap); + configPayload.setRequestParameters(requestParameters); + configScaleOutPayloadString = mapper.writeValueAsString(configPayload); + + execution.setVariable(ACTION, actionCategory); + execution.setVariable(MSO_REQUEST_ID, gBBInput.getRequestContext().getMsoRequestId()); + execution.setVariable(VNF_ID, vnfId); + execution.setVariable(VNF_NAME, vnfName); + execution.setVariable(VFMODULE_ID, vfModule.getVfModuleId()); + execution.setVariable(CONTROLLER_TYPE, controllerName); + execution.setVariable(PAYLOAD, configScaleOutPayloadString); + } catch (Exception ex) { + exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex); + } + } + + public void callAppcClient(BuildingBlockExecution execution) { + logger.trace("Start runAppcCommand "); + String appcCode = "1002"; + String appcMessage = ""; + try { + Action commandAction = Action.valueOf(execution.getVariable(ACTION)); + String msoRequestId = execution.getVariable(MSO_REQUEST_ID); + String vnfId = execution.getVariable(VNF_ID); + Optional payloadString = null; + if (execution.getVariable(PAYLOAD) != null) { + String pay = execution.getVariable(PAYLOAD); + payloadString = Optional.of(pay); + } + String controllerType = execution.getVariable(CONTROLLER_TYPE); + HashMap payloadInfo = new HashMap<>(); + payloadInfo.put(VNF_NAME, execution.getVariable(VNF_NAME)); + payloadInfo.put(VFMODULE_ID, execution.getVariable(VFMODULE_ID)); + logger.debug("Running APP-C action: {}", commandAction.toString()); + logger.debug("VNFID: {}", vnfId); + // PayloadInfo contains extra information that adds on to payload before making request to appc + appCClient.runAppCCommand(commandAction, msoRequestId, vnfId, payloadString, payloadInfo, controllerType); + appcCode = appCClient.getErrorCode(); + appcMessage = appCClient.getErrorMessage(); + + } catch (Exception e) { + logger.error("{} {} {} {} {}", MessageEnum.BPMN_GENERAL_EXCEPTION.toString(), + "Caught exception in runAppcCommand in ConfigurationScaleOut", "BPMN", + ErrorCode.UnknownError.getValue(), "APPC Error", e); + appcMessage = e.getMessage(); + } + logger.error("Error Message: " + appcMessage); + logger.error("ERROR CODE: " + appcCode); + logger.trace("End of runAppCommand "); + if (appcCode != null && !appcCode.equals("0")) { + exceptionUtil.buildAndThrowWorkflowException(execution, Integer.parseInt(appcCode), appcMessage); + } + } }