summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhuoyao Huang <huang.zhuoyao@zte.com.cn>2017-09-22 19:22:42 +0800
committerZhuoyao Huang <10112215@zte.com.cn>2017-09-22 20:13:20 +0800
commit07245589c9d12cb50e6660c38a69226868d3ca5c (patch)
tree687a21c180e33b1992ae9204b0d560c2a2d39a95
parentb543c1cd7eb6f0e879ba15e73fbe6a2d6d45d052 (diff)
underlay vpn
Change-Id: I3eafc44ca701f02921dfe14a2714948cd1c21c2d Issue-ID: SO-88 Signed-off-by: Zhuoyao Huang <10112215@zte.com.cn>
-rw-r--r--bpmn/MSOInfrastructureBPMN/pom.xml19
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/AbstractSdncVlOperationTask.java114
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnOperationClient.java101
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/SdncVlOperationTaskEntityImpl.java43
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/GenericResourceApi.java25
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/builder/AbstractBuilder.java8
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/builder/NetworkRpcInputEntityBuilder.java95
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/EcompModelInformationEntity.java63
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/InputEntity.java63
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkInformationEntity.java41
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkInputPaarametersEntity.java21
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRequestInputEntity.java63
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkResponseInformationEntity.java30
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRpcInputEntity.java19
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRpcOutputEntity.java19
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/OutputEntity.java74
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ParamEntity.java30
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/RequestInformationEntity.java74
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/SdncRequestHeaderEntity.java42
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ServiceInformationEntity.java74
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ServiceResponseInformationEntity.java30
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUnderVpnOperation_java.bpmn90
22 files changed, 1138 insertions, 0 deletions
diff --git a/bpmn/MSOInfrastructureBPMN/pom.xml b/bpmn/MSOInfrastructureBPMN/pom.xml
index 24c8546b8d..d57b1cfd7c 100644
--- a/bpmn/MSOInfrastructureBPMN/pom.xml
+++ b/bpmn/MSOInfrastructureBPMN/pom.xml
@@ -406,5 +406,24 @@
<artifactId>resteasy-jackson2-provider</artifactId>
<version>3.0.11.Final</version>
</dependency>
+
+ <dependency>
+ <groupId>org.onap.msb.java-sdk</groupId>
+ <artifactId>msb-java-sdk</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
+
+ <!--for yang tools-->
+<!-- <dependency>
+ <groupId>org.openecomp.so</groupId>
+ <artifactId>common</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>-->
+
+ <dependency>
+ <groupId>org.onap.sdnc.northbound</groupId>
+ <artifactId>generic-resource-api.model</artifactId>
+ <version>1.2.0</version>
+ </dependency>
</dependencies>
</project>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/AbstractSdncVlOperationTask.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/AbstractSdncVlOperationTask.java
new file mode 100644
index 0000000000..8b26d01432
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/AbstractSdncVlOperationTask.java
@@ -0,0 +1,114 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask;
+
+import org.apache.commons.lang3.StringUtils;
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.onap.msb.sdk.httpclient.RestServiceCreater;
+import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.GenericResourceApi;
+import org.openecomp.mso.bpmn.core.BaseTask;
+import org.openecomp.mso.logger.MessageEnum;
+import org.openecomp.mso.logger.MsoLogger;
+import org.openecomp.mso.requestsdb.RequestsDatabase;
+import org.openecomp.mso.requestsdb.RequestsDbConstant;
+import org.openecomp.mso.requestsdb.ResourceOperationStatus;
+
+import java.util.Map;
+
+/**
+ * Created by 10112215 on 2017/9/16.
+ */
+public abstract class AbstractSdncVlOperationTask extends BaseTask {
+
+ private static final String DEFAULT_MSB_IP = "127.0.0.1";
+ private static final int DEFAULT_MSB_Port = 10081;
+ private static final String SDCADAPTOR_INPUTS = "SDCADAPTOR_INPUTS";
+ private RequestsDatabase requestsDB = RequestsDatabase.getInstance();
+
+
+ private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
+
+ @Override
+ public void execute(DelegateExecution execution) {
+ GenericResourceApi genericResourceApiClient = getGenericResourceApiClient(execution);
+ updateProgress(execution, RequestsDbConstant.Status.PROCESSING, null, "10", "execute begin!");
+ Map<String, String> inputs = (Map<String, String>) execution.getVariable(SDCADAPTOR_INPUTS);
+ updateProgress(execution, null, null, "30", "getGenericResourceApiClient finished!");
+ try {
+ sendRestrequestAndHandleResponse(execution, inputs, genericResourceApiClient);
+ execution.setVariable("SDNCA_SuccessIndicator", true);
+ updateProgress(execution, RequestsDbConstant.Status.FINISHED, null, RequestsDbConstant.Progress.ONE_HUNDRED, "execute finished!");
+ } catch (Exception e) {
+ e.printStackTrace();
+ execution.setVariable("SDNCA_SuccessIndicator", false);
+ }
+ }
+
+ public abstract void sendRestrequestAndHandleResponse(DelegateExecution execution,
+ Map<String, String> inputs,
+ GenericResourceApi genericResourceApiClient) throws Exception;
+
+ public void updateProgress(DelegateExecution execution,
+ String status,
+ String errorCode,
+ String progress,
+ String statusDescription) {
+ String serviceId = (String) execution.getVariable("serviceId");
+ String operationId = (String) execution.getVariable("operationId");
+ String resourceTemplateUUID = (String) execution.getVariable("resourceTemplateUUID");
+ ResourceOperationStatus resourceOperationStatus = requestsDB.getResourceOperationStatus(serviceId, operationId, resourceTemplateUUID);
+ if (!StringUtils.isBlank(status)) {
+ resourceOperationStatus.setStatus(status);
+ }
+ if (!StringUtils.isBlank(errorCode)) {
+ resourceOperationStatus.setErrorCode(errorCode);
+ }
+ if (!StringUtils.isBlank(progress)) {
+ resourceOperationStatus.setProgress(progress);
+ }
+ if (!StringUtils.isBlank(statusDescription)) {
+ resourceOperationStatus.setStatusDescription(statusDescription);
+ }
+ requestsDB.updateResOperStatus(resourceOperationStatus);
+ }
+
+ private GenericResourceApi getGenericResourceApiClient(DelegateExecution execution) {
+ updateProgress(execution, null, null, "20", "getGenericResourceApiClient begin!");
+ String msbIp = getString(execution, "MSB_IP", DEFAULT_MSB_IP);
+ int msbPort = getInteger(execution, "MSB_Port", DEFAULT_MSB_Port);
+ MSBServiceClient msbClient = new MSBServiceClient(msbIp, msbPort);
+ RestServiceCreater restServiceCreater = new RestServiceCreater(msbClient);
+ return restServiceCreater.createService(GenericResourceApi.class);
+ }
+
+ private String getString(DelegateExecution execution, String name, String defaultValue) {
+ String vlaue = (String) execution.getVariable(name);
+ try {
+ if (!StringUtils.isBlank(vlaue)) {
+ return vlaue;
+ }
+ } catch (Exception e) {
+ System.out.println(e);
+ logger.error(MessageEnum.GENERAL_EXCEPTION, " getMsbIp catch exception: ", "", this.getTaskName(), MsoLogger.ErrorCode.UnknownError, e.getClass().toString());
+ } finally {
+ return defaultValue;
+ }
+ }
+
+ private Integer getInteger(DelegateExecution execution, String name, Integer defaultValue) {
+ Integer vlaue = (Integer) execution.getVariable(name);
+ try {
+ if (vlaue != null && vlaue instanceof Integer) {
+ return vlaue;
+ }
+ } catch (Exception e) {
+ System.out.println(e);
+ logger.error(MessageEnum.GENERAL_EXCEPTION, " getMsbIp catch exception: ", "", this.getTaskName(), MsoLogger.ErrorCode.UnknownError, e.getClass().toString());
+ } finally {
+ return defaultValue;
+ }
+ }
+
+ public String getProcessKey(DelegateExecution execution) {
+ return execution.getProcessEngineServices().getRepositoryService().getProcessDefinition(execution.getProcessDefinitionId()).getKey();
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnOperationClient.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnOperationClient.java
new file mode 100644
index 0000000000..1a7f9dcec4
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnOperationClient.java
@@ -0,0 +1,101 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask;
+
+import org.apache.commons.lang3.StringUtils;
+import org.onap.msb.sdk.httpclient.RestServiceCreater;
+import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.GenericResourceApi;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.builder.NetworkRpcInputEntityBuilder;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity.NetworkRpcInputEntity;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity.NetworkRpcOutputEntity;
+import org.openecomp.mso.logger.MsoLogger;
+import org.openecomp.mso.requestsdb.RequestsDatabase;
+import org.openecomp.mso.requestsdb.RequestsDbConstant;
+import org.openecomp.mso.requestsdb.ResourceOperationStatus;
+
+import java.util.Map;
+
+/**
+ * Created by 10112215 on 2017/9/21.
+ */
+public class SdncUnderlayVpnOperationClient {
+
+ private static final String DEFAULT_MSB_IP = "127.0.0.1";
+ private static final int DEFAULT_MSB_Port = 10081;
+ private RequestsDatabase requestsDB = RequestsDatabase.getInstance();
+
+ private String serviceId;
+ private String operationId;
+ private String resourceTemplateUUID;
+
+
+ private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
+
+ public boolean excute(String msbIp,
+ int msbPort,
+ Map<String, String> inputs,
+ String serviceId_i,
+ String operationId_i,
+ String resourceTemplateUUID_i){
+ serviceId = serviceId_i;
+ operationId = operationId_i;
+ resourceTemplateUUID = resourceTemplateUUID_i;
+ GenericResourceApi genericResourceApiClient = getGenericResourceApiClient(msbIp, msbPort);
+ updateProgress(RequestsDbConstant.Status.PROCESSING, null, "10", "execute begin!");
+ return sendRestrequestAndHandleResponse(inputs, genericResourceApiClient);
+ }
+
+ public boolean sendRestrequestAndHandleResponse(Map<String, String> inputs, GenericResourceApi genericResourceApiClient){
+ updateProgress(null, null, "40", "sendRestrequestAndHandleResponse begin!");
+ NetworkRpcInputEntityBuilder builder = new NetworkRpcInputEntityBuilder();
+ NetworkRpcInputEntity body = builder.build(inputs);
+ updateProgress(null, null, "50", "RequestBody build finished!");
+ NetworkRpcOutputEntity networkRpcOutputEntiy = null;
+ try {
+ networkRpcOutputEntiy = genericResourceApiClient.postNetworkTopologyPeration(body).execute().body();
+ } catch (Exception e) {
+ e.printStackTrace();
+ updateProgress(RequestsDbConstant.Status.ERROR, null, null, "sendRestrequestAndHandleResponse exception:" + e.getMessage());
+ return false;
+ }
+ updateProgress(null, null, "90", "sendRestrequestAndHandleResponse finished!");
+ saveOutput(networkRpcOutputEntiy);
+ updateProgress(RequestsDbConstant.Status.FINISHED, null, RequestsDbConstant.Progress.ONE_HUNDRED, "execute finished!");
+ return true;
+ }
+
+ private GenericResourceApi getGenericResourceApiClient(String msbIp, int msbPort) {
+ if (StringUtils.isBlank(msbIp)) {
+ msbIp = DEFAULT_MSB_IP;
+ }
+ if (msbPort <= 0) {
+ msbPort = DEFAULT_MSB_Port;
+ }
+ MSBServiceClient msbClient = new MSBServiceClient(msbIp, msbPort);
+ RestServiceCreater restServiceCreater = new RestServiceCreater(msbClient);
+ return restServiceCreater.createService(GenericResourceApi.class);
+ }
+
+ public void updateProgress(String status,
+ String errorCode,
+ String progress,
+ String statusDescription) {
+ ResourceOperationStatus resourceOperationStatus = requestsDB.getResourceOperationStatus(serviceId, operationId, resourceTemplateUUID);
+ if (!StringUtils.isBlank(status)) {
+ resourceOperationStatus.setStatus(status);
+ }
+ if (!StringUtils.isBlank(errorCode)) {
+ resourceOperationStatus.setErrorCode(errorCode);
+ }
+ if (!StringUtils.isBlank(progress)) {
+ resourceOperationStatus.setProgress(progress);
+ }
+ if (!StringUtils.isBlank(statusDescription)) {
+ resourceOperationStatus.setStatusDescription(statusDescription);
+ }
+ requestsDB.updateResOperStatus(resourceOperationStatus);
+ }
+
+ private void saveOutput(NetworkRpcOutputEntity output) {
+
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/SdncVlOperationTaskEntityImpl.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/SdncVlOperationTaskEntityImpl.java
new file mode 100644
index 0000000000..a387756d7c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/SdncVlOperationTaskEntityImpl.java
@@ -0,0 +1,43 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask;
+
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.openecomp.mso.bpmn.core.WorkflowException;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.GenericResourceApi;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.builder.NetworkRpcInputEntityBuilder;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity.NetworkRpcInputEntity;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity.NetworkRpcOutputEntity;
+import org.openecomp.mso.requestsdb.RequestsDbConstant;
+
+import java.util.Map;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class SdncVlOperationTaskEntityImpl extends AbstractSdncVlOperationTask {
+ @Override
+ public void sendRestrequestAndHandleResponse(DelegateExecution execution,
+ Map<String, String> inputs,
+ GenericResourceApi genericResourceApiClient) throws Exception {
+ updateProgress(execution, null, null, "40", "sendRestrequestAndHandleResponse begin!");
+ NetworkRpcInputEntityBuilder builder = new NetworkRpcInputEntityBuilder();
+ NetworkRpcInputEntity body = builder.build(inputs);
+ updateProgress(execution, null, null, "50", "RequestBody build finished!");
+ NetworkRpcOutputEntity networkRpcOutputEntiy = genericResourceApiClient.postNetworkTopologyPeration(body).execute().body();
+ updateProgress(execution, null, null, "90", "sendRestrequestAndHandleResponse finished!");
+ saveOutput(execution, networkRpcOutputEntiy);
+ }
+
+ private void saveOutput(DelegateExecution execution, NetworkRpcOutputEntity output) throws Exception {
+ String responseCode = output.getOutput().getResponseCode();
+ if (!responseCode.equals("200")) {
+ String processKey = getProcessKey(execution);
+ int errorCode = Integer.valueOf(responseCode);
+ String errorMessage = output.getOutput().getEsponseMessage();
+ WorkflowException workflowException = new WorkflowException(processKey, errorCode, errorMessage);
+ execution.setVariable("SDNCA_SuccessIndicator", workflowException);
+ updateProgress(execution, RequestsDbConstant.Status.ERROR, String.valueOf(errorCode), null, errorMessage);
+ throw new Exception("");
+ }
+ }
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/GenericResourceApi.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/GenericResourceApi.java
new file mode 100644
index 0000000000..91142a041e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/GenericResourceApi.java
@@ -0,0 +1,25 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client;
+
+import okhttp3.RequestBody;
+import okhttp3.ResponseBody;
+import org.onap.msb.sdk.httpclient.annotaion.ServiceHttpEndPoint;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity.NetworkRpcInputEntity;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity.NetworkRpcOutputEntity;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.POST;
+
+/**
+ * Created by 10112215 on 2017/9/16.
+ */
+@ServiceHttpEndPoint(serviceName = "sdnc", serviceVersion = "v1")
+public interface GenericResourceApi {
+
+ @POST("/restconf/operations/GENERIC-RESOURCE-API:network-topology-operation")
+ Call<ResponseBody> postNetworkTopologyPeration(@Body RequestBody input);
+
+ @POST("/restconf/operations/GENERIC-RESOURCE-API:network-topology-operation")
+ Call<NetworkRpcOutputEntity> postNetworkTopologyPeration(@Body NetworkRpcInputEntity input);
+
+}
+
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/builder/AbstractBuilder.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/builder/AbstractBuilder.java
new file mode 100644
index 0000000000..2075de9f75
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/builder/AbstractBuilder.java
@@ -0,0 +1,8 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.builder;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public interface AbstractBuilder<IN, OUT> {
+ OUT build(IN input) throws Exception;
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/builder/NetworkRpcInputEntityBuilder.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/builder/NetworkRpcInputEntityBuilder.java
new file mode 100644
index 0000000000..bcac56a518
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/builder/NetworkRpcInputEntityBuilder.java
@@ -0,0 +1,95 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.builder;
+
+import org.apache.commons.lang3.StringUtils;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.request.information.RequestInformation;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.sdnc.request.header.SdncRequestHeader;
+import org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class NetworkRpcInputEntityBuilder implements AbstractBuilder<Map<String, String>, NetworkRpcInputEntity> {
+
+ public static final String SVC_REQUEST_ID = "MSO";
+ public static final String SDC_ACTION = "SDC_ACTION";
+ public static final RequestInformation.RequestAction REQUEST_ACTION = RequestInformation.RequestAction.CreateNetworkInstance;
+
+ protected NetworkRpcInputEntity getSdncEntityInput(Map<String, String> inputs) {
+ NetworkRpcInputEntity networkRpcInputEntity = new NetworkRpcInputEntity();
+ InputEntity inputEntity = new InputEntity();
+ {
+ loadSdncRequestHeaderEntity(inputs, inputEntity);
+ loadRequestInformationEntity(inputEntity);
+
+ ServiceInformationEntity serviceInformationEntity = new ServiceInformationEntity();
+ String serviceId = inputs.get("serviceId");
+ serviceInformationEntity.setServiceId(serviceId);
+
+
+ loadNetwrokRequestInputEntity(inputs, inputEntity);
+ }
+ networkRpcInputEntity.setInput(inputEntity);
+ return networkRpcInputEntity;
+ }
+
+ private void loadNetwrokRequestInputEntity(Map<String, String> inputs, InputEntity inputEntity) {
+ NetworkRequestInputEntity networkRequestInputEntity = new NetworkRequestInputEntity();
+ {
+ NetworkInputPaarametersEntity networkInputPaarametersEntity = new NetworkInputPaarametersEntity();
+ {
+ List<ParamEntity> paramEntityList = getParamEntities(inputs);
+ networkInputPaarametersEntity.setParamList(paramEntityList);
+ }
+
+ }
+ inputEntity.setNetworkRequestInput(networkRequestInputEntity);
+ }
+
+ private List<ParamEntity> getParamEntities(Map<String, String> inputs) {
+ List<ParamEntity> paramEntityList = new ArrayList<>();
+ if (inputs != null && !inputs.isEmpty()) {
+ inputs.keySet().forEach(key -> {
+ ParamEntity paramEntity = new ParamEntity();
+ paramEntity.setName(key);
+ paramEntity.setValue(inputs.get(key));
+ paramEntityList.add(paramEntity);
+ });
+ }
+ return paramEntityList;
+ }
+
+ private void loadRequestInformationEntity(InputEntity inputEntity) {
+ RequestInformationEntity requestInformationEntity = new RequestInformationEntity();
+ {
+ requestInformationEntity.setRequestId(SVC_REQUEST_ID);
+ requestInformationEntity.setRequestAction(REQUEST_ACTION.name());
+ }
+ inputEntity.setRequestInformation(requestInformationEntity);
+ }
+
+ private void loadSdncRequestHeaderEntity(Map<String, String> inputs, InputEntity inputEntity) {
+ SdncRequestHeaderEntity sdncRequestHeaderEntity = new SdncRequestHeaderEntity();
+ {
+ sdncRequestHeaderEntity.setSvcRequestId(SVC_REQUEST_ID);
+ String action = inputs.get(SDC_ACTION);
+ if (!StringUtils.isBlank(action)) {
+ if (action.toLowerCase().contains("delete")) {
+ action = SdncRequestHeader.SvcAction.Delete.name();
+ } else if (action.toLowerCase().contains("create")) {
+ action = SdncRequestHeader.SvcAction.Create.name();
+ }
+ }
+ sdncRequestHeaderEntity.setSvcAction(action);
+ }
+ inputEntity.setSdncRequestHeader(sdncRequestHeaderEntity);
+ }
+
+ @Override
+ public NetworkRpcInputEntity build(Map<String, String> input) {
+ return null;
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/EcompModelInformationEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/EcompModelInformationEntity.java
new file mode 100644
index 0000000000..20e6eb19e5
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/EcompModelInformationEntity.java
@@ -0,0 +1,63 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class EcompModelInformationEntity {
+ @JsonProperty("model-invariant-uuid")
+ private String modelInvariantUuid;
+
+ @JsonProperty("model-customization-uuid")
+ private String modelCustomizationUuid;
+
+ @JsonProperty("model-uuid")
+ private String modelUuid;
+
+ @JsonProperty("model-version")
+ private String modelVersion;
+
+ @JsonProperty("model-name")
+ private String modelName;
+
+ public String getModelInvariantUuid() {
+ return modelInvariantUuid;
+ }
+
+ public void setModelInvariantUuid(String modelInvariantUuid) {
+ this.modelInvariantUuid = modelInvariantUuid;
+ }
+
+ public String getModelCustomizationUuid() {
+ return modelCustomizationUuid;
+ }
+
+ public void setModelCustomizationUuid(String modelCustomizationUuid) {
+ this.modelCustomizationUuid = modelCustomizationUuid;
+ }
+
+ public String getModelUuid() {
+ return modelUuid;
+ }
+
+ public void setModelUuid(String modelUuid) {
+ this.modelUuid = modelUuid;
+ }
+
+ public String getModelVersion() {
+ return modelVersion;
+ }
+
+ public void setModelVersion(String modelVersion) {
+ this.modelVersion = modelVersion;
+ }
+
+ public String getModelName() {
+ return modelName;
+ }
+
+ public void setModelName(String modelName) {
+ this.modelName = modelName;
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/InputEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/InputEntity.java
new file mode 100644
index 0000000000..71cb2685ce
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/InputEntity.java
@@ -0,0 +1,63 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class InputEntity {
+ @JsonProperty("sdnc-request-header")
+ private SdncRequestHeaderEntity sdncRequestHeader;
+
+ @JsonProperty("request-information")
+ private RequestInformationEntity requestInformation;
+
+ @JsonProperty("service-information")
+ private ServiceInformationEntity serviceInformation;
+
+ @JsonProperty("network-information")
+ private NetworkInformationEntity networkInformation;
+
+ @JsonProperty("network-request-input")
+ private NetworkRequestInputEntity networkRequestInput;
+
+ public SdncRequestHeaderEntity getSdncRequestHeader() {
+ return sdncRequestHeader;
+ }
+
+ public void setSdncRequestHeader(SdncRequestHeaderEntity sdncRequestHeader) {
+ this.sdncRequestHeader = sdncRequestHeader;
+ }
+
+ public RequestInformationEntity getRequestInformation() {
+ return requestInformation;
+ }
+
+ public void setRequestInformation(RequestInformationEntity requestInformation) {
+ this.requestInformation = requestInformation;
+ }
+
+ public ServiceInformationEntity getServiceInformation() {
+ return serviceInformation;
+ }
+
+ public void setServiceInformation(ServiceInformationEntity serviceInformation) {
+ this.serviceInformation = serviceInformation;
+ }
+
+ public NetworkInformationEntity getNetworkInformation() {
+ return networkInformation;
+ }
+
+ public void setNetworkInformation(NetworkInformationEntity networkInformation) {
+ this.networkInformation = networkInformation;
+ }
+
+ public NetworkRequestInputEntity getNetworkRequestInput() {
+ return networkRequestInput;
+ }
+
+ public void setNetworkRequestInput(NetworkRequestInputEntity networkRequestInput) {
+ this.networkRequestInput = networkRequestInput;
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkInformationEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkInformationEntity.java
new file mode 100644
index 0000000000..ea4715de63
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkInformationEntity.java
@@ -0,0 +1,41 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class NetworkInformationEntity {
+ @JsonProperty("network-id")
+ private String networkId;
+
+ @JsonProperty("network-type")
+ private String networkType;
+
+ @JsonProperty("ecomp-model-information")
+ private EcompModelInformationEntity ecompModelInformation;
+
+ public String getNetworkId() {
+ return networkId;
+ }
+
+ public void setNetworkId(String networkId) {
+ this.networkId = networkId;
+ }
+
+ public String getNetworkType() {
+ return networkType;
+ }
+
+ public void setNetworkType(String networkType) {
+ this.networkType = networkType;
+ }
+
+ public EcompModelInformationEntity getEcompModelInformation() {
+ return ecompModelInformation;
+ }
+
+ public void setEcompModelInformation(EcompModelInformationEntity ecompModelInformation) {
+ this.ecompModelInformation = ecompModelInformation;
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkInputPaarametersEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkInputPaarametersEntity.java
new file mode 100644
index 0000000000..c70980d068
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkInputPaarametersEntity.java
@@ -0,0 +1,21 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.List;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class NetworkInputPaarametersEntity {
+ public List<ParamEntity> getParamList() {
+ return paramList;
+ }
+
+ public void setParamList(List<ParamEntity> paramList) {
+ this.paramList = paramList;
+ }
+
+ @JsonProperty("param")
+ private List<ParamEntity> paramList;
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRequestInputEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRequestInputEntity.java
new file mode 100644
index 0000000000..19b64c2c95
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRequestInputEntity.java
@@ -0,0 +1,63 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class NetworkRequestInputEntity {
+ @JsonProperty("network-name")
+ private String networkName;
+
+ @JsonProperty("tenant")
+ private String tenant;
+
+ @JsonProperty("aic-cloud-region")
+ private String aicCloudRegion;
+
+ @JsonProperty("aic-clli")
+ private String aicClli;
+
+ public String getNetworkName() {
+ return networkName;
+ }
+
+ public void setNetworkName(String networkName) {
+ this.networkName = networkName;
+ }
+
+ public String getTenant() {
+ return tenant;
+ }
+
+ public void setTenant(String tenant) {
+ this.tenant = tenant;
+ }
+
+ public String getAicCloudRegion() {
+ return aicCloudRegion;
+ }
+
+ public void setAicCloudRegion(String aicCloudRegion) {
+ this.aicCloudRegion = aicCloudRegion;
+ }
+
+ public String getAicClli() {
+ return aicClli;
+ }
+
+ public void setAicClli(String aicClli) {
+ this.aicClli = aicClli;
+ }
+
+ public NetworkInputPaarametersEntity getNetworkInputPaarameters() {
+ return networkInputPaarameters;
+ }
+
+ public void setNetworkInputPaarameters(NetworkInputPaarametersEntity networkInputPaarameters) {
+ this.networkInputPaarameters = networkInputPaarameters;
+ }
+
+ @JsonProperty("network-input-parameters")
+ private NetworkInputPaarametersEntity networkInputPaarameters;
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkResponseInformationEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkResponseInformationEntity.java
new file mode 100644
index 0000000000..c7ebf7dd10
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkResponseInformationEntity.java
@@ -0,0 +1,30 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/22.
+ */
+public class NetworkResponseInformationEntity {
+ @JsonProperty("instance-id")
+ private String instanceId;
+
+ @JsonProperty("object-path")
+ private String objectPath;
+
+ public String getInstanceId() {
+ return instanceId;
+ }
+
+ public void setInstanceId(String instanceId) {
+ this.instanceId = instanceId;
+ }
+
+ public String getObjectPath() {
+ return objectPath;
+ }
+
+ public void setObjectPath(String objectPath) {
+ this.objectPath = objectPath;
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRpcInputEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRpcInputEntity.java
new file mode 100644
index 0000000000..045392489b
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRpcInputEntity.java
@@ -0,0 +1,19 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class NetworkRpcInputEntity {
+ public InputEntity getInput() {
+ return input;
+ }
+
+ public void setInput(InputEntity input) {
+ this.input = input;
+ }
+
+ @JsonProperty("input")
+ private InputEntity input = null;
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRpcOutputEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRpcOutputEntity.java
new file mode 100644
index 0000000000..fa29ec9434
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/NetworkRpcOutputEntity.java
@@ -0,0 +1,19 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class NetworkRpcOutputEntity {
+ public OutputEntity getOutput() {
+ return output;
+ }
+
+ public void setOutput(OutputEntity output) {
+ this.output = output;
+ }
+
+ @JsonProperty("output")
+ private OutputEntity output;
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/OutputEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/OutputEntity.java
new file mode 100644
index 0000000000..48fb9f1594
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/OutputEntity.java
@@ -0,0 +1,74 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/22.
+ */
+public class OutputEntity {
+ @JsonProperty("svc-request-id")
+ private String svcRequestId;
+
+ @JsonProperty("response-code")
+ private String responseCode;
+
+ @JsonProperty("esponse-message")
+ private String esponseMessage;
+
+ @JsonProperty("ack-final-indicator")
+ private String ackFinalIndicator;
+
+ @JsonProperty("network-response-information")
+ private NetworkResponseInformationEntity networkResponseInformation;
+
+ @JsonProperty("service-response-information")
+ private ServiceResponseInformationEntity serviceResponseInformation;
+
+ public String getSvcRequestId() {
+ return svcRequestId;
+ }
+
+ public void setSvcRequestId(String svcRequestId) {
+ this.svcRequestId = svcRequestId;
+ }
+
+ public String getResponseCode() {
+ return responseCode;
+ }
+
+ public void setResponseCode(String responseCode) {
+ this.responseCode = responseCode;
+ }
+
+ public String getEsponseMessage() {
+ return esponseMessage;
+ }
+
+ public void setEsponseMessage(String esponseMessage) {
+ this.esponseMessage = esponseMessage;
+ }
+
+ public String getAckFinalIndicator() {
+ return ackFinalIndicator;
+ }
+
+ public void setAckFinalIndicator(String ackFinalIndicator) {
+ this.ackFinalIndicator = ackFinalIndicator;
+ }
+
+ public NetworkResponseInformationEntity getNetworkResponseInformation() {
+ return networkResponseInformation;
+ }
+
+ public void setNetworkResponseInformation(NetworkResponseInformationEntity networkResponseInformation) {
+ this.networkResponseInformation = networkResponseInformation;
+ }
+
+ public ServiceResponseInformationEntity getServiceResponseInformation() {
+ return serviceResponseInformation;
+ }
+
+ public void setServiceResponseInformation(ServiceResponseInformationEntity serviceResponseInformation) {
+ this.serviceResponseInformation = serviceResponseInformation;
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ParamEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ParamEntity.java
new file mode 100644
index 0000000000..5188be7221
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ParamEntity.java
@@ -0,0 +1,30 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class ParamEntity {
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("value")
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/RequestInformationEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/RequestInformationEntity.java
new file mode 100644
index 0000000000..38f2291bef
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/RequestInformationEntity.java
@@ -0,0 +1,74 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class RequestInformationEntity {
+ public String getRequestId() {
+ return requestId;
+ }
+
+ public void setRequestId(String requestId) {
+ this.requestId = requestId;
+ }
+
+ public String getRequestAction() {
+ return requestAction;
+ }
+
+ public void setRequestAction(String requestAction) {
+ this.requestAction = requestAction;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getNotificationUrl() {
+ return notificationUrl;
+ }
+
+ public void setNotificationUrl(String notificationUrl) {
+ this.notificationUrl = notificationUrl;
+ }
+
+ public String getOrderUnmber() {
+ return orderUnmber;
+ }
+
+ public void setOrderUnmber(String orderUnmber) {
+ this.orderUnmber = orderUnmber;
+ }
+
+ public String getOrerVersion() {
+ return orerVersion;
+ }
+
+ public void setOrerVersion(String orerVersion) {
+ this.orerVersion = orerVersion;
+ }
+
+ @JsonProperty("request-id")
+ private String requestId;
+
+ @JsonProperty("request-action")
+ private String requestAction;
+
+ @JsonProperty("source")
+ private String source;
+
+ @JsonProperty("notification-url")
+ private String notificationUrl;
+
+ @JsonProperty("order-number")
+ private String orderUnmber;
+
+ @JsonProperty("order-version")
+ private String orerVersion;
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/SdncRequestHeaderEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/SdncRequestHeaderEntity.java
new file mode 100644
index 0000000000..6c64b769bf
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/SdncRequestHeaderEntity.java
@@ -0,0 +1,42 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class SdncRequestHeaderEntity {
+ @JsonProperty("svc-request-id")
+ private String svcRequestId;
+
+ @JsonProperty("svc-action")
+ private String svcAction;
+
+ @JsonProperty("svc-notification-url")
+ private String svcNotificationUrl;
+
+ public String getSvcRequestId() {
+ return svcRequestId;
+ }
+
+ public void setSvcRequestId(String svcRequestId) {
+ this.svcRequestId = svcRequestId;
+ }
+
+ public String getSvcAction() {
+ return svcAction;
+ }
+
+ public void setSvcAction(String svcAction) {
+ this.svcAction = svcAction;
+ }
+
+ public String getSvcNotificationUrl() {
+ return svcNotificationUrl;
+ }
+
+ public void setSvcNotificationUrl(String svcNotificationUrl) {
+ this.svcNotificationUrl = svcNotificationUrl;
+ }
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ServiceInformationEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ServiceInformationEntity.java
new file mode 100644
index 0000000000..1ae78f27bc
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ServiceInformationEntity.java
@@ -0,0 +1,74 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/20.
+ */
+public class ServiceInformationEntity {
+ @JsonProperty("service-id")
+ private String serviceId;
+
+ @JsonProperty("subscription-service-type")
+ private String subscriptionServiceType;
+
+ @JsonProperty("ecomp-model-information")
+ private EcompModelInformationEntity ecompModelInformation;
+
+ @JsonProperty("service-instance-id")
+ private String serviceInstanceId;
+
+ @JsonProperty("global-customer-id")
+ private String globalCustomerId;
+
+ @JsonProperty("subscriber-name")
+ private String subscriberName;
+
+ public String getServiceId() {
+ return serviceId;
+ }
+
+ public void setServiceId(String serviceId) {
+ this.serviceId = serviceId;
+ }
+
+ public String getSubscriptionServiceType() {
+ return subscriptionServiceType;
+ }
+
+ public void setSubscriptionServiceType(String subscriptionServiceType) {
+ this.subscriptionServiceType = subscriptionServiceType;
+ }
+
+ public EcompModelInformationEntity getEcompModelInformation() {
+ return ecompModelInformation;
+ }
+
+ public void setEcompModelInformation(EcompModelInformationEntity ecompModelInformation) {
+ this.ecompModelInformation = ecompModelInformation;
+ }
+
+ public String getServiceInstanceId() {
+ return serviceInstanceId;
+ }
+
+ public void setServiceInstanceId(String serviceInstanceId) {
+ this.serviceInstanceId = serviceInstanceId;
+ }
+
+ public String getGlobalCustomerId() {
+ return globalCustomerId;
+ }
+
+ public void setGlobalCustomerId(String globalCustomerId) {
+ this.globalCustomerId = globalCustomerId;
+ }
+
+ public String getSubscriberName() {
+ return subscriberName;
+ }
+
+ public void setSubscriberName(String subscriberName) {
+ this.subscriberName = subscriberName;
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ServiceResponseInformationEntity.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ServiceResponseInformationEntity.java
new file mode 100644
index 0000000000..de028d694a
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/serviceTask/client/entity/ServiceResponseInformationEntity.java
@@ -0,0 +1,30 @@
+package org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.client.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by 10112215 on 2017/9/22.
+ */
+public class ServiceResponseInformationEntity {
+ @JsonProperty("instance-id")
+ private String instanceId;
+
+ @JsonProperty("object-path")
+ private String objectPath;
+
+ public String getInstanceId() {
+ return instanceId;
+ }
+
+ public void setInstanceId(String instanceId) {
+ this.instanceId = instanceId;
+ }
+
+ public String getObjectPath() {
+ return objectPath;
+ }
+
+ public void setObjectPath(String objectPath) {
+ this.objectPath = objectPath;
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUnderVpnOperation_java.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUnderVpnOperation_java.bpmn
new file mode 100644
index 0000000000..b8e79a2508
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUnderVpnOperation_java.bpmn
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0">
+ <bpmn:process id="Process_1" isExecutable="true">
+ <bpmn:startEvent id="StartEvent_1">
+ <bpmn:outgoing>SequenceFlow_0trm4dk</bpmn:outgoing>
+ </bpmn:startEvent>
+ <bpmn:exclusiveGateway id="ExclusiveGateway_0vvnd7x" name="is response ok?" default="SequenceFlow_083crve">
+ <bpmn:incoming>SequenceFlow_11dtpnr</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1amfirn</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_083crve</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:endEvent id="EndEvent_14p1b2x">
+ <bpmn:incoming>SequenceFlow_1amfirn</bpmn:incoming>
+ </bpmn:endEvent>
+ <bpmn:endEvent id="EndEvent_0urwhzh">
+ <bpmn:incoming>SequenceFlow_083crve</bpmn:incoming>
+ <bpmn:errorEventDefinition />
+ </bpmn:endEvent>
+ <bpmn:sequenceFlow id="SequenceFlow_0trm4dk" sourceRef="StartEvent_1" targetRef="Task_0brg0a4" />
+ <bpmn:sequenceFlow id="SequenceFlow_11dtpnr" sourceRef="Task_0brg0a4" targetRef="ExclusiveGateway_0vvnd7x" />
+ <bpmn:sequenceFlow id="SequenceFlow_1amfirn" name="ok" sourceRef="ExclusiveGateway_0vvnd7x" targetRef="EndEvent_14p1b2x">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("SendSdncResult")=='ok'}]]></bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="SequenceFlow_083crve" name="error" sourceRef="ExclusiveGateway_0vvnd7x" targetRef="EndEvent_0urwhzh" />
+ <bpmn:serviceTask id="Task_0brg0a4" name="call sdnc network operation" camunda:class="org.openecomp.mso.bpmn.infrastructure.workflow.serviceTask.SdncVlOperationTaskEntityImpl">
+ <bpmn:incoming>SequenceFlow_0trm4dk</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_11dtpnr</bpmn:outgoing>
+ </bpmn:serviceTask>
+ </bpmn:process>
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
+ <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
+ <dc:Bounds x="175" y="193" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="148" y="229" width="90" height="20" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ExclusiveGateway_0vvnd7x_di" bpmnElement="ExclusiveGateway_0vvnd7x" isMarkerVisible="true">
+ <dc:Bounds x="561" y="186" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="546" y="240" width="80" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_14p1b2x_di" bpmnElement="EndEvent_14p1b2x">
+ <dc:Bounds x="740" y="193" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="758" y="233" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_0d0rf7s_di" bpmnElement="EndEvent_0urwhzh">
+ <dc:Bounds x="740" y="347" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="758" y="387" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0trm4dk_di" bpmnElement="SequenceFlow_0trm4dk">
+ <di:waypoint xsi:type="dc:Point" x="211" y="211" />
+ <di:waypoint xsi:type="dc:Point" x="340" y="211" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="275.5" y="190" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_11dtpnr_di" bpmnElement="SequenceFlow_11dtpnr">
+ <di:waypoint xsi:type="dc:Point" x="440" y="211" />
+ <di:waypoint xsi:type="dc:Point" x="561" y="211" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="500.5" y="190" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1amfirn_di" bpmnElement="SequenceFlow_1amfirn">
+ <di:waypoint xsi:type="dc:Point" x="611" y="211" />
+ <di:waypoint xsi:type="dc:Point" x="740" y="211" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="669" y="190" width="13" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_083crve_di" bpmnElement="SequenceFlow_083crve">
+ <di:waypoint xsi:type="dc:Point" x="586" y="236" />
+ <di:waypoint xsi:type="dc:Point" x="586" y="365" />
+ <di:waypoint xsi:type="dc:Point" x="740" y="365" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="588" y="295" width="26" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ServiceTask_035xqek_di" bpmnElement="Task_0brg0a4">
+ <dc:Bounds x="340" y="171" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+</bpmn:definitions>