db70a6b5cb2cffb5b12dc65a9a1715a79e81b0b7
[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.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;
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 Environment env;
25
26     @Autowired
27     public ApplicationControllerTaskImpl applicationControllerTaskImpl;
28
29     @Autowired
30     public ApplicationControllerSupport applicationControllerSupport;
31
32     @Autowired
33     private AuditMDCSetup mdcSetup;
34
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);
40         Status status = null;
41         ApplicationControllerCallback listener =
42                 new ApplicationControllerCallback(externalTask, externalTaskService, applicationControllerSupport);
43
44         try {
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(),
49                         status.getMessage());
50                 externalTaskService.handleBpmnError(externalTask, "MSOWorkflowException", status.getMessage());
51             }
52         } catch (Exception e) {
53             logger.error("The External Task Id: {} Failed while calling appc with exception", externalTask.getId(),
54                     e.getMessage());
55             externalTaskService.handleBpmnError(externalTask, "MSOWorkflowException", e.getMessage());
56         }
57     }
58
59 }