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.logging.tasks.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 ApplicationControllerTaskImpl applicationControllerTaskImpl;
27 public ApplicationControllerSupport applicationControllerSupport;
30 private AuditMDCSetup mdcSetup;
32 protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
33 mdcSetup.setupMDC(externalTask);
34 ApplicationControllerTaskRequest request = externalTask.getVariable("appcOrchestratorRequest");
35 String msoRequestId = externalTask.getVariable("mso-request-id");
36 logger.debug("Starting External Task for RequestId: {} ", msoRequestId);
38 ApplicationControllerCallback listener =
39 new ApplicationControllerCallback(externalTask, externalTaskService, applicationControllerSupport);
42 status = applicationControllerTaskImpl.execute(msoRequestId, request, listener);
43 if (status != null && status.getCode() != 0
44 && !applicationControllerSupport.getCategoryOf(status).equals(StatusCategory.NORMAL)) {
45 logger.error("The External Task Id: {} Failed locally with status {}", externalTask.getId(),
47 externalTaskService.handleBpmnError(externalTask, "MSOWorkflowException", status.getMessage());
49 } catch (Exception e) {
50 logger.error("The External Task Id: {} Failed while calling appc with exception", externalTask.getId(),
52 externalTaskService.handleBpmnError(externalTask, "MSOWorkflowException", e.getMessage());