1 package org.onap.so.adapters.appc.orchestrator.service;
3 import org.camunda.bpm.client.task.ExternalTask;
4 import org.camunda.bpm.client.task.ExternalTaskService;
5 import org.onap.so.adapters.appc.orchestrator.client.ApplicationControllerCallback;
6 import org.onap.so.adapters.appc.orchestrator.client.ApplicationControllerSupport;
7 import org.onap.so.adapters.appc.orchestrator.client.StatusCategory;
8 import org.onap.so.appc.orchestrator.service.beans.ApplicationControllerTaskRequest;
9 import org.onap.so.externaltasks.logging.AuditMDCSetup;
10 import org.onap.so.utils.ExternalTaskUtils;
11 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory;
13 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.core.env.Environment;
15 import org.springframework.stereotype.Component;
16 import org.onap.appc.client.lcm.model.Status;
19 public class ApplicationControllerTask extends ExternalTaskUtils {
21 private static final Logger logger = LoggerFactory.getLogger(ApplicationControllerTask.class);
24 public Environment env;
27 public ApplicationControllerTaskImpl applicationControllerTaskImpl;
30 public ApplicationControllerSupport applicationControllerSupport;
33 private AuditMDCSetup mdcSetup;
35 protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
36 mdcSetup.setupMDC(externalTask);
37 ApplicationControllerTaskRequest request = externalTask.getVariable("appcOrchestratorRequest");
38 String msoRequestId = externalTask.getVariable("mso-request-id");
39 logger.debug("Starting External Task for RequestId: {} ", msoRequestId);
41 ApplicationControllerCallback listener =
42 new ApplicationControllerCallback(externalTask, externalTaskService, applicationControllerSupport);
45 status = applicationControllerTaskImpl.execute(msoRequestId, request, listener);
46 if (status != null && status.getCode() != 0
47 && !applicationControllerSupport.getCategoryOf(status).equals(StatusCategory.NORMAL)) {
48 logger.error("The External Task Id: {} Failed locally with status {}", externalTask.getId(),
50 externalTaskService.handleBpmnError(externalTask, "MSOWorkflowException", status.getMessage());
52 } catch (Exception e) {
53 logger.error("The External Task Id: {} Failed while calling appc with exception", externalTask.getId(),
55 externalTaskService.handleBpmnError(externalTask, "MSOWorkflowException", e.getMessage());