a27a82c39f2665939f2ec6ed359f8e5947e67cda
[so.git] /
1 package org.onap.so.adapters.appc.orchestrator.service;
2
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;
17
18 @Component
19 public class ApplicationControllerTask extends ExternalTaskUtils {
20
21     private static final Logger logger = LoggerFactory.getLogger(ApplicationControllerTask.class);
22
23     @Autowired
24     public ApplicationControllerTaskImpl applicationControllerTaskImpl;
25
26     @Autowired
27     public ApplicationControllerSupport applicationControllerSupport;
28
29     @Autowired
30     private AuditMDCSetup mdcSetup;
31
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);
37         Status status = null;
38         ApplicationControllerCallback listener =
39                 new ApplicationControllerCallback(externalTask, externalTaskService, applicationControllerSupport);
40
41         try {
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(),
46                         status.getMessage());
47                 externalTaskService.handleBpmnError(externalTask, "MSOWorkflowException", status.getMessage());
48             }
49         } catch (Exception e) {
50             logger.error("The External Task Id: {} Failed while calling appc with exception", externalTask.getId(),
51                     e.getMessage());
52             externalTaskService.handleBpmnError(externalTask, "MSOWorkflowException", e.getMessage());
53         }
54     }
55
56 }