1 package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask;
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;
18 * Created by 10112215 on 2017/9/21.
20 public class SdncUnderlayVpnOperationClient {
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();
26 private String serviceId;
27 private String operationId;
28 private String resourceTemplateUUID;
31 private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
33 public boolean excute(String msbIp,
35 Map<String, String> inputs,
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);
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;
54 networkRpcOutputEntiy = genericResourceApiClient.postNetworkTopologyPeration(body).execute().body();
55 } catch (Exception e) {
57 updateProgress(RequestsDbConstant.Status.ERROR, null, null, "sendRestrequestAndHandleResponse exception:" + e.getMessage());
60 updateProgress(null, null, "90", "sendRestrequestAndHandleResponse finished!");
61 saveOutput(networkRpcOutputEntiy);
62 updateProgress(RequestsDbConstant.Status.FINISHED, null, RequestsDbConstant.Progress.ONE_HUNDRED, "execute finished!");
66 private GenericResourceApi getGenericResourceApiClient(String msbIp, int msbPort) {
67 if (StringUtils.isBlank(msbIp)) {
68 msbIp = DEFAULT_MSB_IP;
71 msbPort = DEFAULT_MSB_Port;
73 MSBServiceClient msbClient = new MSBServiceClient(msbIp, msbPort);
74 RestServiceCreater restServiceCreater = new RestServiceCreater(msbClient);
75 return restServiceCreater.createService(GenericResourceApi.class);
78 public void updateProgress(String status,
81 String statusDescription) {
82 ResourceOperationStatus resourceOperationStatus = requestsDB.getResourceOperationStatus(serviceId, operationId, resourceTemplateUUID);
83 if (!StringUtils.isBlank(status)) {
84 resourceOperationStatus.setStatus(status);
86 if (!StringUtils.isBlank(errorCode)) {
87 resourceOperationStatus.setErrorCode(errorCode);
89 if (!StringUtils.isBlank(progress)) {
90 resourceOperationStatus.setProgress(progress);
92 if (!StringUtils.isBlank(statusDescription)) {
93 resourceOperationStatus.setStatusDescription(statusDescription);
95 requestsDB.updateResOperStatus(resourceOperationStatus);
98 private void saveOutput(NetworkRpcOutputEntity output) {