Deleted redundant code
[so.git] / bpmn / MSOInfrastructureBPMN / src / main / java / org / openecomp / mso / bpmn / infrastructure / workflow / serviceTask / AbstractSdncVlOperationTask.java
1 package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask;
2
3 import org.apache.commons.lang3.StringUtils;
4 import org.camunda.bpm.engine.delegate.DelegateExecution;
5 import org.onap.msb.sdk.httpclient.RestServiceCreater;
6 import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
7 import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.GenericResourceApi;
8 import org.openecomp.mso.bpmn.core.BaseTask;
9 import org.openecomp.mso.logger.MessageEnum;
10 import org.openecomp.mso.logger.MsoLogger;
11 import org.openecomp.mso.requestsdb.RequestsDatabase;
12 import org.openecomp.mso.requestsdb.RequestsDbConstant;
13 import org.openecomp.mso.requestsdb.ResourceOperationStatus;
14
15 import java.util.Map;
16
17 /**
18  * Created by 10112215 on 2017/9/16.
19  */
20 public abstract class AbstractSdncVlOperationTask extends BaseTask {
21
22     private static final String DEFAULT_MSB_IP = "127.0.0.1";
23     private static final int DEFAULT_MSB_Port = 10081;
24     private static final String SDCADAPTOR_INPUTS = "SDCADAPTOR_INPUTS";
25     private RequestsDatabase requestsDB = RequestsDatabase.getInstance();
26
27
28     private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
29
30     @Override
31     public void execute(DelegateExecution execution) {
32         GenericResourceApi genericResourceApiClient = getGenericResourceApiClient(execution);
33         updateProgress(execution, RequestsDbConstant.Status.PROCESSING, null, "10", "execute begin!");
34         Map<String, String> inputs = (Map<String, String>) execution.getVariable(SDCADAPTOR_INPUTS);
35         updateProgress(execution, null, null, "30", "getGenericResourceApiClient finished!");
36         try {
37             sendRestrequestAndHandleResponse(execution, inputs, genericResourceApiClient);
38             execution.setVariable("SDNCA_SuccessIndicator", true);
39             updateProgress(execution, RequestsDbConstant.Status.FINISHED, null, RequestsDbConstant.Progress.ONE_HUNDRED, "execute finished!");
40         } catch (Exception e) {
41             e.printStackTrace();
42             execution.setVariable("SDNCA_SuccessIndicator", false);
43         }
44     }
45
46     public abstract void sendRestrequestAndHandleResponse(DelegateExecution execution,
47                                                           Map<String, String> inputs,
48                                                           GenericResourceApi genericResourceApiClient) throws Exception;
49
50     public void updateProgress(DelegateExecution execution,
51                                String status,
52                                String errorCode,
53                                String progress,
54                                String statusDescription) {
55         String serviceId = (String) execution.getVariable("serviceId");
56         String operationId = (String) execution.getVariable("operationId");
57         String resourceTemplateUUID = (String) execution.getVariable("resourceTemplateUUID");
58         ResourceOperationStatus resourceOperationStatus = requestsDB.getResourceOperationStatus(serviceId, operationId, resourceTemplateUUID);
59         if (!StringUtils.isBlank(status)) {
60             resourceOperationStatus.setStatus(status);
61         }
62         if (!StringUtils.isBlank(errorCode)) {
63             resourceOperationStatus.setErrorCode(errorCode);
64         }
65         if (!StringUtils.isBlank(progress)) {
66             resourceOperationStatus.setProgress(progress);
67         }
68         if (!StringUtils.isBlank(statusDescription)) {
69             resourceOperationStatus.setStatusDescription(statusDescription);
70         }
71         requestsDB.updateResOperStatus(resourceOperationStatus);
72     }
73
74     private GenericResourceApi getGenericResourceApiClient(DelegateExecution execution) {
75         updateProgress(execution, null, null, "20", "getGenericResourceApiClient begin!");
76         String msbIp = getString(execution, "MSB_IP", DEFAULT_MSB_IP);
77         int msbPort = getInteger(execution, "MSB_Port", DEFAULT_MSB_Port);
78         MSBServiceClient msbClient = new MSBServiceClient(msbIp, msbPort);
79         RestServiceCreater restServiceCreater = new RestServiceCreater(msbClient);
80         return restServiceCreater.createService(GenericResourceApi.class);
81     }
82
83     private String getString(DelegateExecution execution, String name, String defaultValue) {
84         String vlaue = (String) execution.getVariable(name);
85         try {
86             if (!StringUtils.isBlank(vlaue)) {
87                 return vlaue;
88             }
89         } catch (Exception e) {
90             System.out.println(e);
91             logger.error(MessageEnum.GENERAL_EXCEPTION, " getMsbIp catch exception: ", "", this.getTaskName(), MsoLogger.ErrorCode.UnknownError, e.getClass().toString());
92         }
93         return defaultValue;
94     }
95
96     private Integer getInteger(DelegateExecution execution, String name, Integer defaultValue) {
97         Integer vlaue = (Integer) execution.getVariable(name);
98         try {
99             if (vlaue != null) {
100                 return vlaue;
101             }
102         } catch (Exception e) {
103             System.out.println(e);
104             logger.error(MessageEnum.GENERAL_EXCEPTION, " getMsbIp catch exception: ", "", this.getTaskName(), MsoLogger.ErrorCode.UnknownError, e.getClass().toString());
105         }
106         return defaultValue;
107     }
108
109     public String getProcessKey(DelegateExecution execution) {
110         return execution.getProcessEngineServices().getRepositoryService().getProcessDefinition(execution.getProcessDefinitionId()).getKey();
111     }
112 }