1a7f9dcec44cadde21f928c545d447732406ec74
[so.git] / bpmn / MSOInfrastructureBPMN / src / main / java / org / openecomp / mso / bpmn / infrastructure / workflow / serviceTask / SdncUnderlayVpnOperationClient.java
1 package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask;
2
3 import org.apache.commons.lang3.StringUtils;
4 import org.onap.msb.sdk.httpclient.RestServiceCreater;
5 import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
6 import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.GenericResourceApi;
7 import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.builder.NetworkRpcInputEntityBuilder;
8 import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity.NetworkRpcInputEntity;
9 import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity.NetworkRpcOutputEntity;
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/21.
19  */
20 public class SdncUnderlayVpnOperationClient {
21
22     private static final String DEFAULT_MSB_IP = "127.0.0.1";
23     private static final int DEFAULT_MSB_Port = 10081;
24     private RequestsDatabase requestsDB = RequestsDatabase.getInstance();
25
26     private String serviceId;
27     private String operationId;
28     private String resourceTemplateUUID;
29
30
31     private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
32
33     public boolean excute(String msbIp,
34                        int msbPort,
35                        Map<String, String> inputs,
36                        String serviceId_i,
37                        String operationId_i,
38                        String resourceTemplateUUID_i){
39         serviceId = serviceId_i;
40         operationId = operationId_i;
41         resourceTemplateUUID = resourceTemplateUUID_i;
42         GenericResourceApi genericResourceApiClient = getGenericResourceApiClient(msbIp, msbPort);
43         updateProgress(RequestsDbConstant.Status.PROCESSING, null, "10", "execute begin!");
44         return sendRestrequestAndHandleResponse(inputs, genericResourceApiClient);
45     }
46
47     public boolean sendRestrequestAndHandleResponse(Map<String, String> inputs, GenericResourceApi genericResourceApiClient){
48         updateProgress(null, null, "40", "sendRestrequestAndHandleResponse begin!");
49         NetworkRpcInputEntityBuilder builder = new NetworkRpcInputEntityBuilder();
50         NetworkRpcInputEntity body = builder.build(inputs);
51         updateProgress(null, null, "50", "RequestBody build finished!");
52         NetworkRpcOutputEntity networkRpcOutputEntiy = null;
53         try {
54             networkRpcOutputEntiy = genericResourceApiClient.postNetworkTopologyPeration(body).execute().body();
55         } catch (Exception e) {
56             e.printStackTrace();
57             updateProgress(RequestsDbConstant.Status.ERROR, null, null, "sendRestrequestAndHandleResponse exception:" + e.getMessage());
58             return false;
59         }
60         updateProgress(null, null, "90", "sendRestrequestAndHandleResponse finished!");
61         saveOutput(networkRpcOutputEntiy);
62         updateProgress(RequestsDbConstant.Status.FINISHED, null, RequestsDbConstant.Progress.ONE_HUNDRED, "execute finished!");
63         return true;
64     }
65
66     private GenericResourceApi getGenericResourceApiClient(String msbIp, int msbPort) {
67         if (StringUtils.isBlank(msbIp)) {
68             msbIp = DEFAULT_MSB_IP;
69         }
70         if (msbPort <= 0) {
71             msbPort = DEFAULT_MSB_Port;
72         }
73         MSBServiceClient msbClient = new MSBServiceClient(msbIp, msbPort);
74         RestServiceCreater restServiceCreater = new RestServiceCreater(msbClient);
75         return restServiceCreater.createService(GenericResourceApi.class);
76     }
77
78     public void updateProgress(String status,
79                                String errorCode,
80                                String progress,
81                                String statusDescription) {
82         ResourceOperationStatus resourceOperationStatus = requestsDB.getResourceOperationStatus(serviceId, operationId, resourceTemplateUUID);
83         if (!StringUtils.isBlank(status)) {
84             resourceOperationStatus.setStatus(status);
85         }
86         if (!StringUtils.isBlank(errorCode)) {
87             resourceOperationStatus.setErrorCode(errorCode);
88         }
89         if (!StringUtils.isBlank(progress)) {
90             resourceOperationStatus.setProgress(progress);
91         }
92         if (!StringUtils.isBlank(statusDescription)) {
93             resourceOperationStatus.setStatusDescription(statusDescription);
94         }
95         requestsDB.updateResOperStatus(resourceOperationStatus);
96     }
97
98     private void saveOutput(NetworkRpcOutputEntity output) {
99
100     }
101 }