package org.openecomp.mso.bpmn.common.scripts import java.util.HashMap; import org.camunda.bpm.engine.delegate.BpmnError import org.camunda.bpm.engine.delegate.DelegateExecution import org.hibernate.event.internal.AbstractLockUpgradeEventListener import org.openecomp.mso.bpmn.core.HealthCheckHandler import org.openecomp.mso.bpmn.core.json.JsonUtils import org.openecomp.mso.client.appc.ApplicationControllerOrchestrator import org.openecomp.mso.client.appc.ApplicationControllerOrchestratorException import org.onap.appc.client.lcm.model.Action import org.onap.appc.client.lcm.model.Status import org.openecomp.mso.bpmn.appc.payload.PayloadClient import org.openecomp.mso.bpmn.common.adapter.vnf.CreateVnfNotification.Outputs import org.openecomp.mso.client.appc.ApplicationControllerAction; import groovy.transform.TypeChecked; import java.util.UUID; /** * This groovy class supports the AppCClient.bpmn process. * * Inputs: * @param - msoRequestId * @param - mso-request-Id * @param - isDebugLogEnabled * @param - requestId * @param - vnfId * @param - action * @param - payload * * Outputs: * @param - errorcode * @param - errorText * @param - responsePayload * @param - healthCheckIndex * @param - workstep * @param - rollbackVnfStop * @param - rollbackVnfLock * @param - rollbackQuiesceTraffic */ public class AppCClient extends AbstractServiceTaskProcessor{ ExceptionUtil exceptionUtil = new ExceptionUtil() JsonUtils jsonUtils = new JsonUtils() def prefix = "UPDVnfI_" public void preProcessRequest(DelegateExecution execution){ } public void runAppcCommand(DelegateExecution execution) { String isDebugLogEnabled = execution.getVariable('isDebugLogEnabled') utils.log("DEBUG", "***** Start runCommand *****", isDebugLogEnabled) def method = getClass().getSimpleName() + '.runAppcCommand(' + 'execution=' + execution.getId() + ')' logDebug('Entered ' + method, isDebugLogEnabled) execution.setVariable("rollbackVnfStop", false) execution.setVariable("rollbackVnfLock", false) execution.setVariable("rollbackQuiesceTraffic", false) String appcCode = "1002" String responsePayload = "" String appcMessage = "" Action action = null try { action = (Action) execution.getVariable("action") String vnfId = execution.getVariable('vnfId') String msoRequestId = execution.getVariable('msoRequestId') String vnfName = execution.getVariable('vnfName') String aicIdentity = execution.getVariable('aicIdentity') String vnfHostIpAddress = execution.getVariable('vnfHostIpAddress') String vmIdList = execution.getVariable("vmIdList") String identityUrl = execution.getVariable("identityUrl") HashMap payloadInfo = new HashMap(); payloadInfo.put("vnfName", vnfName) payloadInfo.put("aicIdentity", aicIdentity) payloadInfo.put("vnfHostIpAddress", vnfHostIpAddress) payloadInfo.put("vmIdList", vmIdList) payloadInfo.put("identityUrl", identityUrl) Optional payload logDebug("Running APP-C action: " + action.toString(), isDebugLogEnabled) utils.log("DEBUG", "VNFID: " + vnfId, isDebugLogEnabled) execution.setVariable('msoRequestId', msoRequestId) execution.setVariable("failedActivity", "APP-C") execution.setVariable('workStep', action.toString()) if(execution.getVariable("payload") != null){ String pay = execution.getVariable("payload") payload = Optional.of(pay) } if(action.equals(Action.HealthCheck)){ String healthCheckIndex = execution.getVariable('healthCheckIndex') execution.setVariable('workStep', action.toString() + healthCheckIndex) execution.setVariable('healthCheckIndex', healthCheckIndex + 1) } ApplicationControllerAction client = new ApplicationControllerAction() utils.log("DEBUG", "Created Application Controller Action Object", isDebugLogEnabled) //PayloadInfo contains extra information that adds on to payload before making request to appc client.runAppCCommand(action, msoRequestId, vnfId, payload, payloadInfo) utils.log("DEBUG", "ran through the main method for Application Contoller", isDebugLogEnabled) appcCode = client.getErrorCode() appcMessage = client.getErrorMessage() } catch (BpmnError e) { logError('Caught exception in ' + method, e) appcMessage = e.getMessage() } execution.setVariable("errorCode", appcCode) if (appcCode == '0' && action != null) { if (action.equals(Action.Lock)) { execution.setVariable("rollbackVnfLock", true) } if (action.equals(Action.Unlock)) { execution.setVariable("rollbackVnfLock", false) } if (action.equals(Action.Start)) { execution.setVariable("rollbackVnfStop", true) } if (action.equals(Action.Stop)) { execution.setVariable("rollbackVnfStop", false) } if (action.equals(Action.QuiesceTraffic)) { execution.setVariable("rollbackQuiesceTraffic", true) } if (action.equals(Action.ResumeTraffic)) { execution.setVariable("rollbackQuiesceTraffic", false) } } execution.setVariable("errorText", appcMessage) execution.setVariable("responsePayload", responsePayload) utils.log("DEBUG", "Error Message: " + appcMessage, isDebugLogEnabled) utils.log("DEBUG","ERROR CODE: " + execution.getVariable("errorCode"), isDebugLogEnabled) utils.log("DEBUG", "***** End of runCommand *****", isDebugLogEnabled) } }