summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--adapters/mso-adapter-utils/pom.xml12
-rw-r--r--adapters/mso-requests-db-adapter/pom.xml2
-rw-r--r--adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapterImpl.java40
-rw-r--r--adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfAdapterAsyncImplTest.java (renamed from adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/MsoVnfAdapterAsyncImplTest.java)0
-rw-r--r--adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfAdapterImplTest.java (renamed from adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/MsoVnfAdapterImplTest.java)0
-rw-r--r--adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfCloudifyAdapterImplTest.java91
-rw-r--r--adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/QueryTest.java (renamed from adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/QueryTest.java)0
-rw-r--r--adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VnfCreateTest.java (renamed from adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/VnfCreateTest.java)0
-rw-r--r--adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VnfDeleteTest.java (renamed from adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/VnfDeleteTest.java)0
-rw-r--r--adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VnfQueryTest.java (renamed from adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/VnfQueryTest.java)0
-rw-r--r--adapters/mso-workflow-message-adapter/pom.xml2
-rwxr-xr-xaria/aria-rest-java-client/pom.xml1
-rw-r--r--asdc-controller/pom.xml2
-rw-r--r--bpmn/MSOCommonBPMN/pom.xml2
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/adapter/requests/db/MsoRequestsDbAdapterClient.java40
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/MsoRequestsDbExceptionBeanTest.java33
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/MsoRequestsDbExceptionTest.java37
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/UpdateInfraRequestTest.java64
-rw-r--r--bpmn/MSOCoreBPMN/pom.xml2
-rw-r--r--bpmn/MSOInfrastructureBPMN/pom.xml25
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateResources.groovy221
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstanceRollback.groovy341
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstanceRollback.bpmn795
-rw-r--r--cloudify-client/pom.xml28
-rw-r--r--cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Blueprint.java7
-rw-r--r--cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Deployment.java22
-rw-r--r--cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/DeploymentOutputs.java9
-rw-r--r--cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Metadata.java27
-rw-r--r--cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Pagination.java51
-rw-r--r--cloudify-client/src/test/java/org/openecomp/mso/cloudify/BeanMultiTest.java63
-rw-r--r--cloudify-client/src/test/java/org/openecomp/mso/cloudify/connector/http/HttpClientConnectorTest.java150
-rw-r--r--common/pom.xml4
-rw-r--r--mso-api-handlers/mso-api-handler-infra/pom.xml6
-rw-r--r--pom.xml4
-rw-r--r--version.properties6
35 files changed, 1979 insertions, 108 deletions
diff --git a/adapters/mso-adapter-utils/pom.xml b/adapters/mso-adapter-utils/pom.xml
index 2efb336161..e264a20d9d 100644
--- a/adapters/mso-adapter-utils/pom.xml
+++ b/adapters/mso-adapter-utils/pom.xml
@@ -54,34 +54,22 @@
<version>${project.version}</version>
</dependency>
<dependency>
-<!--
<groupId>org.onap.so.libs.openstack-java-sdk</groupId>
--->
- <groupId>org.openecomp.so.libs.openstack-java-sdk</groupId>
<artifactId>keystone-client</artifactId>
<version>${openstack.version}</version>
</dependency>
<dependency>
-<!--
<groupId>org.onap.so.libs.openstack-java-sdk</groupId>
--->
- <groupId>org.openecomp.so.libs.openstack-java-sdk</groupId>
<artifactId>heat-client</artifactId>
<version>${openstack.version}</version>
</dependency>
<dependency>
-<!--
<groupId>org.onap.so.libs.openstack-java-sdk</groupId>
--->
- <groupId>org.openecomp.so.libs.openstack-java-sdk</groupId>
<artifactId>quantum-client</artifactId>
<version>${openstack.version}</version>
</dependency>
<dependency>
-<!--
<groupId>org.onap.so.libs.openstack-java-sdk.client-connectors</groupId>
--->
- <groupId>org.openecomp.so.libs.openstack-java-sdk.client-connectors</groupId>
<artifactId>http-connector</artifactId>
<version>${openstack.version}</version>
</dependency>
diff --git a/adapters/mso-requests-db-adapter/pom.xml b/adapters/mso-requests-db-adapter/pom.xml
index 582d1eafe3..51d9092472 100644
--- a/adapters/mso-requests-db-adapter/pom.xml
+++ b/adapters/mso-requests-db-adapter/pom.xml
@@ -22,7 +22,7 @@
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
- <version>3.0.19.Final</version>
+ <version>3.5.0.Final</version>
<scope>provided</scope>
<exclusions>
<exclusion>
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapterImpl.java b/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapterImpl.java
index 358fe53ecb..925086a9d3 100644
--- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapterImpl.java
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapterImpl.java
@@ -70,59 +70,59 @@ public class MsoRequestsDbAdapterImpl implements MsoRequestsDbAdapter {
long startTime = System.currentTimeMillis ();
try {
session.beginTransaction ();
- String queryString = "update InfraActiveRequests set ";
+ StringBuilder queryString = new StringBuilder("update InfraActiveRequests set ");
if (statusMessage != null) {
- queryString += "statusMessage = :statusMessage, ";
+ queryString.append("statusMessage = :statusMessage, ");
}
if (responseBody != null) {
- queryString += "responseBody = :responseBody, ";
+ queryString.append("responseBody = :responseBody, ");
}
if (requestStatus != null) {
- queryString += "requestStatus = :requestStatus, ";
+ queryString.append("requestStatus = :requestStatus, ");
}
if (progress != null) {
- queryString += "progress = :progress, ";
+ queryString.append("progress = :progress, ");
}
if (vnfOutputs != null) {
- queryString += "vnfOutputs = :vnfOutputs, ";
+ queryString.append("vnfOutputs = :vnfOutputs, ");
}
if (serviceInstanceId != null) {
- queryString += "serviceInstanceId = :serviceInstanceId, ";
+ queryString.append("serviceInstanceId = :serviceInstanceId, ");
}
if (networkId != null) {
- queryString += "networkId = :networkId, ";
+ queryString.append("networkId = :networkId, ");
}
if (vnfId != null) {
- queryString += "vnfId = :vnfId, ";
+ queryString.append("vnfId = :vnfId, ");
}
if (vfModuleId != null) {
- queryString += "vfModuleId = :vfModuleId, ";
+ queryString.append("vfModuleId = :vfModuleId, ");
}
if (volumeGroupId != null) {
- queryString += "volumeGroupId = :volumeGroupId, ";
+ queryString.append("volumeGroupId = :volumeGroupId, ");
}
if (serviceInstanceName != null) {
- queryString += "serviceInstanceName = :serviceInstanceName, ";
+ queryString.append("serviceInstanceName = :serviceInstanceName, ");
}
if (vfModuleName != null) {
- queryString += "vfModuleName = :vfModuleName, ";
+ queryString.append("vfModuleName = :vfModuleName, ");
}
if (configurationId != null) {
- queryString += "configurationId = :configurationId, ";
+ queryString.append("configurationId = :configurationId, ");
}
if (configurationName != null) {
- queryString += "configurationName = :configurationName, ";
+ queryString.append("configurationName = :configurationName, ");
}
if (requestStatus == RequestStatusType.COMPLETE || requestStatus == RequestStatusType.FAILED) {
- queryString += "endTime = :endTime, ";
+ queryString.append("endTime = :endTime, ");
} else {
- queryString += "modifyTime = :modifyTime, ";
+ queryString.append("modifyTime = :modifyTime, ");
}
- queryString += "lastModifiedBy = :lastModifiedBy where requestId = :requestId OR clientRequestId = :requestId";
+ queryString.append("lastModifiedBy = :lastModifiedBy where requestId = :requestId OR clientRequestId = :requestId");
- logger.debug("Executing update: " + queryString);
+ logger.debug("Executing update: " + queryString.toString());
- Query query = session.createQuery (queryString);
+ Query query = session.createQuery (queryString.toString());
query.setParameter ("requestId", requestId);
if (statusMessage != null) {
query.setParameter ("statusMessage", statusMessage);
diff --git a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/MsoVnfAdapterAsyncImplTest.java b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfAdapterAsyncImplTest.java
index acde3153ab..acde3153ab 100644
--- a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/MsoVnfAdapterAsyncImplTest.java
+++ b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfAdapterAsyncImplTest.java
diff --git a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/MsoVnfAdapterImplTest.java b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfAdapterImplTest.java
index eec2257c7f..eec2257c7f 100644
--- a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/MsoVnfAdapterImplTest.java
+++ b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfAdapterImplTest.java
diff --git a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfCloudifyAdapterImplTest.java b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfCloudifyAdapterImplTest.java
new file mode 100644
index 0000000000..076a410262
--- /dev/null
+++ b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/MsoVnfCloudifyAdapterImplTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.adapters.vnf.test;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.xml.ws.Holder;
+import org.junit.Test;
+import org.openecomp.mso.adapters.vnf.MsoVnfCloudifyAdapterImpl;
+import org.openecomp.mso.entity.MsoRequest;
+import org.openecomp.mso.openstack.beans.VnfRollback;
+
+public class MsoVnfCloudifyAdapterImplTest {
+
+ @Test
+ public void healthCheckVNFTest() {
+ MsoVnfCloudifyAdapterImpl instance = new MsoVnfCloudifyAdapterImpl();
+ instance.healthCheck();
+ }
+
+ @Test
+ public void createVnfTest() {
+ MsoVnfCloudifyAdapterImpl instance = new MsoVnfCloudifyAdapterImpl();
+ MsoRequest msoRequest = new MsoRequest();
+ msoRequest.setRequestId("12345");
+ msoRequest.setServiceInstanceId("12345");
+
+ Map<String, String> map = new HashMap<>();
+ map.put("key1", "value1");
+ try {
+ instance.createVfModule("mdt1", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "vSAMP12", "VFMOD",
+ "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
+ Boolean.FALSE, Boolean.TRUE, msoRequest, new Holder<>(), new Holder<>(),
+ new Holder<>());
+ } catch (Exception e) {
+
+ }
+ }
+
+ @Test
+ public void updateVnfTest() {
+ MsoVnfCloudifyAdapterImpl instance = new MsoVnfCloudifyAdapterImpl();
+ MsoRequest msoRequest = new MsoRequest();
+ msoRequest.setRequestId("12345");
+ msoRequest.setServiceInstanceId("12345");
+
+ Map<String, String> map = new HashMap<>();
+ map.put("key1", "value1");
+ try {
+ instance.updateVfModule("mdt1", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "vSAMP12", "VFMOD",
+ "volumeGroupHeatStackId|1", "baseVfHeatStackId", "vfModuleStackId",
+ "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder<>(),
+ new Holder<>());
+ } catch (Exception e) {
+
+ }
+ }
+
+ @Test
+ public void deleteVnfTest() {
+ MsoVnfCloudifyAdapterImpl instance = new MsoVnfCloudifyAdapterImpl();
+ MsoRequest msoRequest = new MsoRequest();
+ msoRequest.setRequestId("12345");
+ msoRequest.setServiceInstanceId("12345");
+ try {
+ instance.deleteVfModule("mdt1", "88a6ca3ee0394ade9403f075db23167e", "vSAMP12", msoRequest,
+ new Holder<>());
+ } catch (Exception e) {
+
+ }
+ }
+
+}
diff --git a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/QueryTest.java b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/QueryTest.java
index 282b3b15cd..282b3b15cd 100644
--- a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/QueryTest.java
+++ b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/QueryTest.java
diff --git a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/VnfCreateTest.java b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VnfCreateTest.java
index 000ed8aef3..000ed8aef3 100644
--- a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/VnfCreateTest.java
+++ b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VnfCreateTest.java
diff --git a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/VnfDeleteTest.java b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VnfDeleteTest.java
index e9b33eb24a..e9b33eb24a 100644
--- a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/VnfDeleteTest.java
+++ b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VnfDeleteTest.java
diff --git a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/VnfQueryTest.java b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VnfQueryTest.java
index bbffddfd15..bbffddfd15 100644
--- a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/test/VnfQueryTest.java
+++ b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VnfQueryTest.java
diff --git a/adapters/mso-workflow-message-adapter/pom.xml b/adapters/mso-workflow-message-adapter/pom.xml
index 46e4a2bc13..dd17fe87e8 100644
--- a/adapters/mso-workflow-message-adapter/pom.xml
+++ b/adapters/mso-workflow-message-adapter/pom.xml
@@ -55,7 +55,7 @@
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
- <version>4.5.2</version>
+ <version>4.5.5</version>
</dependency>
<dependency>
<groupId>org.onap.so</groupId>
diff --git a/aria/aria-rest-java-client/pom.xml b/aria/aria-rest-java-client/pom.xml
index c6d2b73adf..e06e97dd09 100755
--- a/aria/aria-rest-java-client/pom.xml
+++ b/aria/aria-rest-java-client/pom.xml
@@ -26,7 +26,6 @@
<groupId>org.onap.so</groupId>
<artifactId>aria-client</artifactId>
<version>1.2.0-SNAPSHOT</version>
-
<parent>
<groupId>org.onap.so</groupId>
<artifactId>aria</artifactId>
diff --git a/asdc-controller/pom.xml b/asdc-controller/pom.xml
index 75896d28bc..66ecbd8a5e 100644
--- a/asdc-controller/pom.xml
+++ b/asdc-controller/pom.xml
@@ -81,7 +81,7 @@
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
- <version>4.4.1</version>
+ <version>4.5.5</version>
<scope>compile</scope>
<exclusions>
<exclusion>
diff --git a/bpmn/MSOCommonBPMN/pom.xml b/bpmn/MSOCommonBPMN/pom.xml
index 6067982b99..a0a5a24e3f 100644
--- a/bpmn/MSOCommonBPMN/pom.xml
+++ b/bpmn/MSOCommonBPMN/pom.xml
@@ -348,7 +348,7 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
+ <version>4.3.14.RELEASE</version>
</dependency>
<dependency>
<groupId>org.openecomp.sdc.sdc-tosca</groupId>
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/adapter/requests/db/MsoRequestsDbAdapterClient.java b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/adapter/requests/db/MsoRequestsDbAdapterClient.java
index 109da17ea2..2443169151 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/adapter/requests/db/MsoRequestsDbAdapterClient.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/adapter/requests/db/MsoRequestsDbAdapterClient.java
@@ -51,7 +51,7 @@ public class MsoRequestsDbAdapterClient implements MsoRequestsDbAdapter {
MsoLogger.setLogContext(request.getRequestId(), null);
try {
session.beginTransaction();
- String queryString = "update InfraActiveRequests set ";
+ StringBuilder queryString = new StringBuilder("update InfraActiveRequests set ");
String statusMessage = null;
String responseBody = null;
RequestStatusType requestStatus = null;
@@ -67,72 +67,72 @@ public class MsoRequestsDbAdapterClient implements MsoRequestsDbAdapter {
String configurationId = null;
String configurationName = null;
if (request.getStatusMessage() != null) {
- queryString += "statusMessage = :statusMessage, ";
+ queryString.append("statusMessage = :statusMessage, ");
statusMessage = request.getStatusMessage();
}
if (request.getResponseBody() != null) {
- queryString += "responseBody = :responseBody, ";
+ queryString.append("responseBody = :responseBody, ");
responseBody = request.getResponseBody();
}
if (request.getRequestStatus() != null) {
- queryString += "requestStatus = :requestStatus, ";
+ queryString.append("requestStatus = :requestStatus, ");
requestStatus = request.getRequestStatus();
}
if (request.getProgress() != null) {
- queryString += "progress = :progress, ";
+ queryString.append("progress = :progress, ");
progress = request.getProgress();
}
if (request.getVnfOutputs() != null) {
- queryString += "vnfOutputs = :vnfOutputs, ";
+ queryString.append("vnfOutputs = :vnfOutputs, ");
vnfOutputs = request.getVnfOutputs();
}
if (request.getServiceInstanceId() != null) {
- queryString += "serviceInstanceId = :serviceInstanceId, ";
+ queryString.append("serviceInstanceId = :serviceInstanceId, ");
serviceInstanceId = request.getServiceInstanceId();
}
if (request.getNetworkId() != null) {
- queryString += "networkId = :networkId, ";
+ queryString.append("networkId = :networkId, ");
networkId = request.getNetworkId();
}
if (request.getVnfId() != null) {
- queryString += "vnfId = :vnfId, ";
+ queryString.append("vnfId = :vnfId, ");
vnfId = request.getVnfId();
}
if (request.getVfModuleId() != null) {
- queryString += "vfModuleId = :vfModuleId, ";
+ queryString.append("vfModuleId = :vfModuleId, ");
vfModuleId = request.getVfModuleId();
}
if (request.getVolumeGroupId() != null) {
- queryString += "volumeGroupId = :volumeGroupId, ";
+ queryString.append("volumeGroupId = :volumeGroupId, ");
volumeGroupId = request.getVolumeGroupId();
}
if (request.getServiceInstanceName() != null) {
- queryString += "serviceInstanceName = :serviceInstanceName, ";
+ queryString.append("serviceInstanceName = :serviceInstanceName, ");
serviceInstanceName = request.getServiceInstanceName();
}
if (request.getVfModuleName() != null) {
- queryString += "vfModuleName = :vfModuleName, ";
+ queryString.append("vfModuleName = :vfModuleName, ");
vfModuleName = request.getVfModuleName();
}
if (request.getConfigurationId() != null) {
- queryString += "configurationId = :configurationId, ";
+ queryString.append("configurationId = :configurationId, ");
configurationId = request.getConfigurationId();
}
if (request.getConfigurationName() != null) {
- queryString += "configurationName = :configurationName, ";
+ queryString.append("configurationName = :configurationName, ");
configurationName = request.getConfigurationName();
}
if (request.getRequestStatus() == RequestStatusType.COMPLETE
|| request.getRequestStatus() == RequestStatusType.FAILED) {
- queryString += "endTime = :endTime, ";
+ queryString.append("endTime = :endTime, ");
} else {
- queryString += "modifyTime = :modifyTime, ";
+ queryString.append("modifyTime = :modifyTime, ");
}
- queryString += "lastModifiedBy = :lastModifiedBy where requestId = :requestId OR clientRequestId = :requestId";
+ queryString.append("lastModifiedBy = :lastModifiedBy where requestId = :requestId OR clientRequestId = :requestId");
- LOGGER.debug("Executing update: " + queryString);
+ LOGGER.debug("Executing update: " + queryString.toString());
- Query query = session.createQuery(queryString);
+ Query query = session.createQuery(queryString.toString());
query.setParameter("requestId", request.getRequestId());
if (statusMessage != null) {
query.setParameter("statusMessage", statusMessage);
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/MsoRequestsDbExceptionBeanTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/MsoRequestsDbExceptionBeanTest.java
new file mode 100644
index 0000000000..f0c6e7ec52
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/MsoRequestsDbExceptionBeanTest.java
@@ -0,0 +1,33 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : SO
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+
+package org.openecomp.mso.client.adapter.requests.db.entities;
+
+import org.junit.Test;
+
+public class MsoRequestsDbExceptionBeanTest {
+
+ @Test
+ public void test() {
+ MsoRequestsDbExceptionBean mrde=new MsoRequestsDbExceptionBean("msg");
+ mrde.setMessage("msg");
+ assert(mrde.getMessage().equals("msg"));
+ }
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/MsoRequestsDbExceptionTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/MsoRequestsDbExceptionTest.java
new file mode 100644
index 0000000000..28b8cc991f
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/MsoRequestsDbExceptionTest.java
@@ -0,0 +1,37 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : SO
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+
+package org.openecomp.mso.client.adapter.requests.db.entities;
+
+import org.junit.Test;
+
+public class MsoRequestsDbExceptionTest {
+
+ @Test
+ public void test() {
+ Throwable e = new Throwable();
+ MsoRequestsDbExceptionBean mredb=new MsoRequestsDbExceptionBean();
+ MsoRequestsDbException mrde=new MsoRequestsDbException("msg",e);
+ MsoRequestsDbException mrd=new MsoRequestsDbException("msg");
+ MsoRequestsDbException mrd1=new MsoRequestsDbException(e);
+ mrde.setFaultInfo(mredb);
+ assert(mrde.getFaultInfo().equals(mredb));
+ }
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/UpdateInfraRequestTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/UpdateInfraRequestTest.java
new file mode 100644
index 0000000000..d01c11948b
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/client/adapter/requests/db/entities/UpdateInfraRequestTest.java
@@ -0,0 +1,64 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : SO
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+
+package org.openecomp.mso.client.adapter.requests.db.entities;
+
+import org.junit.Test;
+
+public class UpdateInfraRequestTest {
+
+ @Test
+ public void test() {
+ UpdateInfraRequest uir=new UpdateInfraRequest();
+ RequestStatusType requestStatus=RequestStatusType.COMPLETE;
+ uir.setConfigurationId("configurationId");
+ uir.setConfigurationName("configurationName");
+ uir.setLastModifiedBy("lastModifiedBy");
+ uir.setNetworkId("networkId");
+ uir.setProgress("progress");
+ uir.setRequestId("requestId");
+ uir.setRequestStatus(requestStatus);
+ uir.setResponseBody("responseBody");
+ uir.setServiceInstanceId("serviceInstanceId");
+ uir.setServiceInstanceName("serviceInstanceName");
+ uir.setStatusMessage("statusMessage");
+ uir.setVfModuleId("vfModuleId");
+ uir.setVfModuleName("vfModuleName");
+ uir.setVnfId("vnfId");
+ uir.setVnfOutputs("vnfOutputs");
+ uir.setVolumeGroupId("volumeGroupId");
+ assert(uir.getConfigurationId().equals("configurationId"));
+ assert(uir.getConfigurationName().equals("configurationName"));
+ assert(uir.getLastModifiedBy().equals("lastModifiedBy"));
+ assert(uir.getNetworkId().equals("networkId"));
+ assert(uir.getProgress().equals("progress"));
+ assert(uir.getRequestId().equals("requestId"));
+ assert(uir.getRequestStatus().equals(requestStatus));
+ assert(uir.getResponseBody().equals("responseBody"));
+ assert(uir.getServiceInstanceId().equals("serviceInstanceId"));
+ assert(uir.getServiceInstanceName().equals("serviceInstanceName"));
+ assert(uir.getStatusMessage().equals("statusMessage"));
+ assert(uir.getVfModuleId().equals("vfModuleId"));
+ assert(uir.getVnfOutputs().equals("vnfOutputs"));
+ assert(uir.getVolumeGroupId().equals("volumeGroupId"));
+ assert(uir.getVfModuleName().equals("vfModuleName"));
+ assert(uir.getVnfId().equals("vnfId"));
+ }
+}
diff --git a/bpmn/MSOCoreBPMN/pom.xml b/bpmn/MSOCoreBPMN/pom.xml
index 690dd5414a..2f9d574ae1 100644
--- a/bpmn/MSOCoreBPMN/pom.xml
+++ b/bpmn/MSOCoreBPMN/pom.xml
@@ -73,7 +73,7 @@
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
- <version>1.3.2</version>
+ <version>1.3.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
diff --git a/bpmn/MSOInfrastructureBPMN/pom.xml b/bpmn/MSOInfrastructureBPMN/pom.xml
index 79d3c4fa72..f7170ff231 100644
--- a/bpmn/MSOInfrastructureBPMN/pom.xml
+++ b/bpmn/MSOInfrastructureBPMN/pom.xml
@@ -342,6 +342,31 @@
</exclusions>
</dependency>
+ <!-- bwj add; Jetty-util -->
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>9.4.8.v20171121</version>
+ </dependency>
+ <!-- bwj add; hibernate-validator -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>5.4.2.Final</version>
+ </dependency>
+ <!-- bwj add; spring-test -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>4.3.14.RELEASE</version>
+ </dependency>
+ <!-- bwj add; libphonenumber -->
+ <dependency>
+ <groupId>com.googlecode.libphonenumber</groupId>
+ <artifactId>libphonenumber</artifactId>
+ <version>8.9.1</version>
+ </dependency>
+
<!--for yang tools-->
<!-- <dependency>
<groupId>org.onap.so</groupId>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateResources.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateResources.groovy
new file mode 100644
index 0000000000..809771561a
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateResources.groovy
@@ -0,0 +1,221 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License")
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.infrastructure.scripts
+
+import java.util.ArrayList
+import java.util.Iterator
+import java.util.List
+import javax.mail.Quota.Resource
+import org.apache.commons.lang3.StringUtils
+import org.apache.http.HttpResponse
+import org.camunda.bpm.engine.delegate.DelegateExecution
+import org.codehaus.groovy.runtime.ArrayUtil
+import org.codehaus.groovy.runtime.ScriptBytecodeAdapter
+import org.codehaus.groovy.runtime.callsite.CallSite
+import org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation
+import org.codehaus.groovy.runtime.typehandling.ShortTypeHandling
+import org.json.JSONArray
+import org.json.JSONObject
+import org.openecomp.mso.bpmn.common.recipe.BpmnRestClient
+import org.openecomp.mso.bpmn.common.recipe.ResourceInput
+import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
+import org.openecomp.mso.bpmn.common.scripts.CatalogDbUtils
+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
+import org.openecomp.mso.bpmn.core.domain.AllottedResource
+import org.openecomp.mso.bpmn.core.domain.NetworkResource
+import org.openecomp.mso.bpmn.core.domain.VnfResource
+import org.openecomp.mso.bpmn.core.json.JsonUtils
+
+/**
+ * This groovy class supports the <class>DoCreateResources.bpmn</class> process.
+ *
+ * Inputs:
+ * @param - msoRequestId
+ * @param - globalSubscriberId - O
+ * @param - subscriptionServiceType - O
+ * @param - serviceInstanceId
+ * @param - serviceInstanceName - O
+ * @param - serviceInputParams (should contain aic_zone for serviceTypes TRANSPORT,ATM)
+ * @param - sdncVersion
+ * @param - failNotFound - TODO
+ * @param - serviceInputParams - TODO
+ *
+ * @param - addResourceList
+ *
+ * Outputs:
+ * @param - WorkflowException
+ *
+ * Rollback - Deferred
+ */
+public class DoCreateResources extends AbstractServiceTaskProcessor
+{
+ ExceptionUtil exceptionUtil = new ExceptionUtil()
+ JsonUtils jsonUtil = new JsonUtils()
+
+ public void preProcessRequest(DelegateExecution execution)
+ {
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO"," ***** preProcessRequest *****", isDebugEnabled)
+ String msg = ""
+
+ List addResourceList = execution.getVariable("addResourceList")
+ if (addResourceList == null)
+ {
+ msg = "Input addResourceList is null"
+ utils.log("INFO", msg, isDebugEnabled)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ }
+ if (addResourceList.size() == 0)
+ {
+ msg = "No resource in addResourceList"
+ utils.log("INFO", msg, isDebugEnabled)
+ }
+ utils.log("INFO", " ***** Exit preProcessRequest *****", isDebugEnabled)
+ }
+
+ public void sequenceResoure(Object execution)
+ {
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO", "======== Start sequenceResoure Process ======== ", isDebugEnabled)
+ String serviceModelUUID = execution.getVariable("modelUuid")
+ JSONArray networks = cutils.getAllNetworksByServiceModelUuid(execution, serviceModelUUID)
+ utils.log("DEBUG", "obtained Network list: "+ networks, isDebugEnabled)
+ if (networks == null) {
+ utils.log("INFO", "No matching networks in Catalog DB for serviceModelUUID=" + serviceModelUUID, isDebugEnabled)
+ }
+
+
+ List<Resource> addResourceList = execution.getVariable("addResourceList")
+
+ //we use VF to define a network service
+ List<VnfResource> vnfResourceList = new ArrayList<VnfResource>()
+ //here wan is defined as a network resource
+ List<NetworkResource> networkResourceList = new ArrayList<NetworkResource>()
+ //allotted resource
+ List<AllottedResource> arResourceList = new ArrayList<AllottedResource>()
+
+ //define sequenced resource list, we deploy vf first and then network and then ar
+ //this is defaule sequence
+ List<Resource> sequencedResourceList = new ArrayList<Resource>()
+ for (Resource rc : addResourceList){
+ if (rc instanceof VnfResource) {
+ vnfResourceList.add(rc)
+ } else if (rc instanceof NetworkResource) {
+ NetworkResource.add(rc)
+ } else if (rc instanceof AllottedResource) {
+ AllottedResource.add(rc)
+ }
+ }
+ sequencedResourceList.addAll(vnfResourceList)
+ sequencedResourceList.addAll(networkResourceList)
+ sequencedResourceList.addAll(arResourceList)
+
+ String isContainsWanResource = networkResourceList.isEmpty() ? "false" : "true"
+ execution.setVariable("isContainsWanResource", isContainsWanResource)
+ execution.setVariable("currentResourceIndex", 0)
+ execution.setVariable("sequencedResourceList", sequencedResourceList)
+ utils.log("INFO", "sequencedResourceList: " + sequencedResourceList, isDebugEnabled)
+ utils.log("INFO", "======== COMPLETED sequenceResoure Process ======== ", isDebugEnabled)
+ }
+
+ public void getCurrentResoure(execution){
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO", "======== Start getCurrentResoure Process ======== ", isDebugEnabled)
+ def currentIndex = execution.getVariable("currentResourceIndex")
+ List<Resource> sequencedResourceList = execution.getVariable("sequencedResourceList")
+ Resource currentResource = sequencedResourceList.get(currentIndex)
+ utils.log("INFO", "Now we deal with resouce:" + currentResource.getModelInfo().getModelName(), isDebugEnabled)
+ utils.log("INFO", "======== COMPLETED getCurrentResoure Process ======== ", isDebugEnabled)
+ }
+
+ public void parseNextResource(execution){
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO", "======== Start parseNextResource Process ======== ", isDebugEnabled)
+ def currentIndex = execution.getVariable("currentResourceIndex")
+ def nextIndex = currentIndex + 1
+ execution.setVariable("currentResourceIndex", nextIndex)
+ List<String> sequencedResourceList = execution.getVariable("sequencedResourceList")
+ if(nextIndex >= sequencedResourceList.size()){
+ execution.setVariable("allResourceFinished", "true")
+ }else{
+ execution.setVariable("allResourceFinished", "false")
+ }
+ utils.log("INFO", "======== COMPLETED parseNextResource Process ======== ", isDebugEnabled)
+ }
+
+ public void prepareResourceRecipeRequest(execution){
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO", "======== Start prepareResourceRecipeRequest Process ======== ", isDebugEnabled)
+ ResourceInput resourceInput = new ResourceInput()
+ String serviceInstanceName = execution.getVariable("serviceInstanceName")
+ String resourceInstanceName = resourceType + "_" + serviceInstanceName
+ resourceInput.setResourceInstanceName(resourceInstanceName)
+ utils.log("INFO", "Prepare Resource Request resourceInstanceName:" + resourceInstanceName, isDebugEnabled)
+ String globalSubscriberId = execution.getVariable("globalSubscriberId")
+ String serviceType = execution.getVariable("serviceType")
+ String serviceInstanceId = execution.getVariable("serviceInstanceId")
+ String operationId = execution.getVariable("operationId")
+ String operationType = execution.getVariable("operationType")
+ resourceInput.setGlobalSubscriberId(globalSubscriberId)
+ resourceInput.setServiceType(serviceType)
+ resourceInput.setServiceInstanceId(serviceInstanceId)
+ resourceInput.setOperationId(operationId)
+ resourceInput.setOperationType(operationType);
+ def currentIndex = execution.getVariable("currentResourceIndex")
+ List<Resource> sequencedResourceList = execution.getVariable("sequencedResourceList")
+ Resource currentResource = sequencedResourceList.get(currentIndex)
+ String resourceCustomizationUuid = currentResource.getModelInfo().getModelCustomizationUuid()
+ resourceInput.setResourceCustomizationUuid(resourceCustomizationUuid);
+ String resourceInvariantUuid = currentResource.getModelInfo().getModelInvariantUuid()
+ resourceInput.setResourceInvariantUuid(resourceInvariantUuid)
+ String resourceUuid = currentResource.getModelInfo().getModelUuid()
+ resourceInput.setResourceUuid(resourceUuid)
+
+ String incomingRequest = execution.getVariable("uuiRequest")
+ //set the requestInputs from tempalte To Be Done
+ String serviceModelUuid = execution.getVariable("modelUuid")
+ String serviceParameters = jsonUtil.getJsonValue(incomingRequest, "service.parameters")
+ String resourceParameters = ResourceRequestBuilder.buildResourceRequestParameters(execution, serviceModelUuid, resourceCustomizationUuid, serviceParameters)
+ resourceInput.setResourceParameters(resourceParameters)
+ execution.setVariable("resourceInput", resourceInput)
+ utils.log("INFO", "======== COMPLETED prepareResourceRecipeRequest Process ======== ", isDebugEnabled)
+ }
+
+ public void executeResourceRecipe(execution){
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO", "======== Start executeResourceRecipe Process ======== ", isDebugEnabled)
+ String requestId = execution.getVariable("msoRequestId")
+ String serviceInstanceId = execution.getVariable("serviceInstanceId")
+ String serviceType = execution.getVariable("serviceType")
+ ResourceInput resourceInput = execution.getVariable("resourceInput")
+ String requestAction = resourceInput.getOperationType()
+ JSONObject resourceRecipe = cutils.getResourceRecipe(execution, resourceInput.getResourceUuid(), requestAction)
+ String recipeUri = resourceRecipe.getString("orchestrationUri")
+ String recipeTimeOut = resourceRecipe.getString("recipeTimeout")
+ String recipeParamXsd = resourceRecipe.get("paramXSD")
+ HttpResponse resp = BpmnRestClient.post(recipeUri, requestId, recipeTimeout, requestAction, serviceInstanceId, serviceType, resourceInput.toString(), recipeParamXsd)
+
+ }
+
+ public void postConfigRequest(execution){
+ //now do noting
+ }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstanceRollback.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstanceRollback.groovy
new file mode 100644
index 0000000000..2891855e8f
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstanceRollback.groovy
@@ -0,0 +1,341 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.openecomp.mso.bpmn.infrastructure.scripts
+
+
+import static org.apache.commons.lang3.StringUtils.*;
+import groovy.xml.XmlUtil
+import groovy.json.*
+
+import org.openecomp.mso.bpmn.core.json.JsonUtils
+import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
+import org.openecomp.mso.bpmn.common.scripts.SDNCAdapterUtils
+import org.openecomp.mso.bpmn.core.RollbackData
+import org.openecomp.mso.bpmn.core.WorkflowException
+import org.openecomp.mso.rest.APIResponse;
+import org.openecomp.mso.rest.RESTClient
+import org.openecomp.mso.rest.RESTConfig
+
+import java.util.UUID;
+
+import org.camunda.bpm.engine.delegate.BpmnError
+import org.camunda.bpm.engine.delegate.DelegateExecution
+import org.json.JSONObject;
+import org.apache.commons.lang3.*
+import org.apache.commons.codec.binary.Base64;
+import org.springframework.web.util.UriUtils;
+/**
+ * This groovy class supports the <class>DoUpdateE2EServiceInstanceRollback.bpmn</class> process.
+ *
+ * Inputs:
+ * @param - msoRequestId
+ * @param - rollbackData with
+ * globalCustomerId
+ * subscriptionServiceType
+ * serviceInstanceId
+ * disableRollback
+ * rollbackAAI
+ * rollbackAdded
+ * rollbackDeleted
+ *
+ *
+ * Outputs:
+ * @param - rollbackError
+ * @param - rolledBack (no localRB->null, localRB F->false, localRB S->true)
+ *
+ */
+public class DoUpdateE2EServiceInstanceRollback extends AbstractServiceTaskProcessor{
+
+ String Prefix="DUPDSIRB_"
+
+ public void preProcessRequest(DelegateExecution execution) {
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ execution.setVariable("prefix",Prefix)
+ String msg = ""
+ utils.log("DEBUG"," ***** preProcessRequest *****", isDebugEnabled)
+ execution.setVariable("rollbackAAI",false)
+ execution.setVariable("rollbackAdded",false)
+ execution.setVariable("rollbackDeleted",false)
+
+ List addResourceList = execution.getVariable("addResourceList")
+ List delResourceList = execution.getVariable("delResourceList")
+ execution.setVariable("addResourceList_o", addResourceList)
+ execution.setVariable("addResourceList", delResourceList)
+ execution.setVariable("delResourceList_o", delResourceList)
+ execution.setVariable("delResourceList", addResourceList)
+
+ try {
+ def rollbackData = execution.getVariable("rollbackData")
+ utils.log("DEBUG", "RollbackData:" + rollbackData, isDebugEnabled)
+
+ if (rollbackData != null) {
+ if (rollbackData.hasType("SERVICEINSTANCE")) {
+
+ def serviceInstanceId = rollbackData.get("SERVICEINSTANCE", "serviceInstanceId")
+ execution.setVariable("serviceInstanceId", serviceInstanceId)
+
+ def subscriptionServiceType = rollbackData.get("SERVICEINSTANCE", "subscriptionServiceType")
+ execution.setVariable("subscriptionServiceType", subscriptionServiceType)
+
+ def globalSubscriberId = rollbackData.get("SERVICEINSTANCE", "globalSubscriberId")
+ execution.setVariable("globalSubscriberId", globalSubscriberId)
+
+ def rollbackAAI = rollbackData.get("SERVICEINSTANCE", "rollbackAAI")
+ if ("true".equals(rollbackAAI))
+ {
+ execution.setVariable("rollbackAAI",true)
+ }
+
+ def rollbackAdded = rollbackData.get("SERVICEINSTANCE", "rollbackAdded")
+ if ("true".equals(rollbackAdded))
+ {
+ execution.setVariable("rollbackAdded", true)
+ }
+
+ def rollbackDeleted = rollbackData.get("SERVICEINSTANCE", "rollbackDeleted")
+ if ("true".equals(rollbackDeleted))
+ {
+ execution.setVariable("rollbackDeleted", true)
+ }
+
+ if (execution.getVariable("rollbackAAI") != true && execution.getVariable("rollbackAdded") != true
+ && execution.getVariable("rollbackDeleted") != true)
+ {
+ execution.setVariable("skipRollback", true)
+ }
+
+ }
+ else {
+ execution.setVariable("skipRollback", true)
+ }
+ }
+ else {
+ execution.setVariable("skipRollback", true)
+ }
+ if (execution.getVariable("disableRollback").equals("true" ))
+ {
+ execution.setVariable("skipRollback", true)
+ }
+
+ } catch (BpmnError e) {
+ throw e;
+ } catch (Exception ex){
+ msg = "Exception in Update ServiceInstance Rollback preProcessRequest " + ex.getMessage()
+ utils.log("DEBUG", msg, isDebugEnabled)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ utils.log("DEBUG"," ***** Exit preProcessRequest *****", isDebugEnabled)
+ }
+
+ public void postProcessRequest(DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ utils.log("DEBUG"," ***** postProcessRequest ***** ", isDebugEnabled)
+ String msg = ""
+ try {
+ execution.setVariable("rollbackData", null)
+ String serviceInstanceId = execution.getVariable("serviceInstanceId")
+ boolean rollbackAAI = execution.getVariable("rollbackAAI")
+ boolean rollbackAdded = execution.getVariable("rollbackAdded")
+ boolean rollbackDeleted = execution.getVariable("rollbackDeleted")
+
+ List addResourceList = execution.getVariable("addResourceList_o")
+ List delResourceList = execution.getVariable("delResourceList_o")
+ execution.setVariable("addResourceList", addResourceList)
+ execution.setVariable("delResourceList", delResourceList)
+
+ if (rollbackAAI || rollbackAdded || rollbackDeleted)
+ {
+ execution.setVariable("rolledBack", true)
+ }
+ if (rollbackAAI)
+ {
+ boolean succInAAI = execution.getVariable("GENDS_SuccessIndicator")
+ if(!succInAAI){
+ execution.setVariable("rolledBack", false) //both sdnc and aai must be successful to declare rollback Succesful
+ execution.setVariable("rollbackError", "Error deleting service-instance in AAI for rollback")
+ utils.log("DEBUG","Error deleting service-instance in AAI for rollback", + serviceInstanceId, isDebugEnabled)
+ }
+ }
+ utils.log("DEBUG","*** Exit postProcessRequest ***", isDebugEnabled)
+
+ } catch (BpmnError e) {
+ msg = "Exception in Create ServiceInstance Rollback postProcessRequest. " + e.getMessage()
+ utils.log("DEBUG", msg, isDebugEnabled)
+ } catch (Exception ex) {
+ msg = "Exception in Create ServiceInstance Rollback postProcessRequest. " + ex.getMessage()
+ utils.log("DEBUG", msg, isDebugEnabled)
+ }
+ }
+
+
+ public void preProcessForAddResource(DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ }
+
+ public void postProcessForAddResource(DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+
+ }
+
+ public void preProcessForDeleteResource(DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+
+ }
+
+ public void postProcessForDeleteResource(DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+
+ }
+
+ public void preProcessAAIGET2(DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ }
+
+ public void postProcessAAIGET(DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO"," ***** postProcessAAIGET ***** ", isDebugEnabled)
+ String msg = ""
+
+ try {
+ String serviceInstanceName = execution.getVariable("serviceInstanceName")
+ boolean succInAAI = execution.getVariable("GENGS_SuccessIndicator")
+ if(!succInAAI){
+ utils.log("INFO","Error getting Service-instance from AAI in postProcessAAIGET", + serviceInstanceName, isDebugEnabled)
+ WorkflowException workflowException = execution.getVariable("WorkflowException")
+ utils.logAudit("workflowException: " + workflowException)
+ if(workflowException != null){
+ exceptionUtil.buildAndThrowWorkflowException(execution, workflowException.getErrorCode(), workflowException.getErrorMessage())
+ }
+ else
+ {
+ msg = "Failure in postProcessAAIGET GENGS_SuccessIndicator:" + succInAAI
+ utils.log("INFO", msg, isDebugEnabled)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, msg)
+ }
+ }
+ else
+ {
+ boolean foundInAAI = execution.getVariable("GENGS_FoundIndicator")
+ if(foundInAAI){
+ String aaiService = execution.getVariable("GENGS_service")
+ if (!isBlank(aaiService) && (utils.nodeExists(aaiService, "resource-version"))) {
+ execution.setVariable("serviceInstanceVersion_n", utils.getNodeText1(aaiService, "resource-version"))
+ utils.log("INFO","Found Service-instance in AAI.serviceInstanceName:" + execution.getVariable("serviceInstanceName"), isDebugEnabled)
+ }
+ }
+ }
+ } catch (BpmnError e) {
+ throw e;
+ } catch (Exception ex) {
+ msg = "Exception in DoCreateServiceInstance.postProcessAAIGET " + ex.getMessage()
+ utils.log("INFO", msg, isDebugEnabled)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ utils.log("INFO"," *** Exit postProcessAAIGET *** ", isDebugEnabled)
+ }
+
+ public void preProcessAAIPUT(DelegateExecution execution) {
+ def method = getClass().getSimpleName() + '.preProcessRequest(' +'execution=' + execution.getId() +')'
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO","Entered " + method, isDebugEnabled)
+ String msg = ""
+ utils.log("INFO"," ***** preProcessAAIPUT *****", isDebugEnabled)
+
+ String modelUuid = execution.getVariable("model-version-id-original")
+ String serviceInstanceVersion = execution.getVariable("serviceInstanceVersion_n")
+ execution.setVariable("GENPS_serviceResourceVersion", serviceInstanceVersion)
+
+ String serviceInstanceData =
+ """<service-instance xmlns=\"${namespace}\">
+ <resource-version">${serviceInstanceVersion}</resource-version>
+ </service-instance>""".trim()
+
+ execution.setVariable("serviceInstanceData", serviceInstanceData)
+ utils.log("INFO","serviceInstanceData: " + serviceInstanceData, isDebugEnabled)
+ utils.logAudit(serviceInstanceData)
+ utils.log("INFO", " aai_uri " + aai_uri + " namespace:" + namespace, isDebugEnabled)
+ utils.log("INFO", " 'payload' to update Service Instance in AAI - " + "\n" + serviceInstanceData, isDebugEnabled)
+
+ utils.log("INFO", "Exited " + method, isDebugEnabled)
+ }
+
+ public void postProcessAAIPUT(DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO"," ***** postProcessAAIPUT ***** ", isDebugEnabled)
+ String msg = ""
+ try {
+ String serviceInstanceId = execution.getVariable("serviceInstanceId")
+ boolean succInAAI = execution.getVariable("GENPS_SuccessIndicator")
+ if(!succInAAI){
+ utils.log("INFO","Error putting Service-instance in AAI", + serviceInstanceId, isDebugEnabled)
+ WorkflowException workflowException = execution.getVariable("WorkflowException")
+ utils.logAudit("workflowException: " + workflowException)
+ if(workflowException != null){
+ exceptionUtil.buildAndThrowWorkflowException(execution, workflowException.getErrorCode(), workflowException.getErrorMessage())
+ }
+ }
+ else
+ {
+
+ }
+
+ } catch (BpmnError e) {
+ throw e;
+ } catch (Exception ex) {
+ msg = "Exception in DoCreateServiceInstance.postProcessAAIDEL. " + ex.getMessage()
+ utils.log("INFO", msg, isDebugEnabled)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ utils.log("INFO"," *** Exit postProcessAAIPUT *** ", isDebugEnabled)
+ }
+
+ public void processRollbackException(DelegateExecution execution){
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ utils.log("DEBUG"," ***** processRollbackException ***** ", isDebugEnabled)
+ try{
+ utils.log("DEBUG", "Caught an Exception in DoCreateServiceInstanceRollback", isDebugEnabled)
+ execution.setVariable("rollbackData", null)
+ execution.setVariable("rollbackError", "Caught exception in ServiceInstance Update Rollback")
+ execution.setVariable("WorkflowException", null)
+
+ }catch(BpmnError b){
+ utils.log("DEBUG", "BPMN Error during processRollbackExceptions Method: ", isDebugEnabled)
+ }catch(Exception e){
+ utils.log("DEBUG", "Caught Exception during processRollbackExceptions Method: " + e.getMessage(), isDebugEnabled)
+ }
+
+ utils.log("DEBUG", " Exit processRollbackException", isDebugEnabled)
+ }
+
+ public void processRollbackJavaException(DelegateExecution execution){
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ utils.log("DEBUG"," ***** processRollbackJavaException ***** ", isDebugEnabled)
+ try{
+ execution.setVariable("rollbackData", null)
+ execution.setVariable("rollbackError", "Caught Java exception in ServiceInstance Update Rollback")
+ utils.log("DEBUG", "Caught Exception in processRollbackJavaException", isDebugEnabled)
+
+ }catch(Exception e){
+ utils.log("DEBUG", "Caught Exception in processRollbackJavaException " + e.getMessage(), isDebugEnabled)
+ }
+ utils.log("DEBUG", "***** Exit processRollbackJavaException *****", isDebugEnabled)
+ }
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstanceRollback.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstanceRollback.bpmn
new file mode 100644
index 0000000000..2b9e79615e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstanceRollback.bpmn
@@ -0,0 +1,795 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_MagIIMOUEeW8asg-vCEgWQ" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.11.3" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
+ <bpmn2:process id="DoCreateE2EServiceInstanceRollback" name="DoCreateE2EServiceInstanceRollback" isExecutable="true">
+ <bpmn2:startEvent id="createSIRollback_startEvent" name="Start Flow">
+ <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
+ </bpmn2:startEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="createSIRollback_startEvent" targetRef="preProcessRequest_ScriptTask" />
+ <bpmn2:scriptTask id="preProcessRequest_ScriptTask" name="PreProcess Incoming Request" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def rbk = new DoCreateE2EServiceInstanceRollback()
+rbk.preProcessRequest(execution)
+]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:endEvent id="EndEvent_3">
+ <bpmn2:incoming>SequenceFlow_01l4ssl</bpmn2:incoming>
+ </bpmn2:endEvent>
+ <bpmn2:subProcess id="UnexpectedError_SubProcess_1" name="Sub-process for Errors" triggeredByEvent="true">
+ <bpmn2:startEvent id="StartEvent_1">
+ <bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
+ <bpmn2:errorEventDefinition id="_ErrorEventDefinition_92" />
+ </bpmn2:startEvent>
+ <bpmn2:endEvent id="EndEvent_1">
+ <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
+ </bpmn2:endEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="StartEvent_1" targetRef="ScriptTask_1" />
+ <bpmn2:scriptTask id="ScriptTask_1" name="Handle Errors" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def rbk= new DoCreateE2EServiceInstanceRollback()
+rbk.processRollbackException(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="ScriptTask_1" targetRef="EndEvent_1" />
+ </bpmn2:subProcess>
+ <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="preProcessRequest_ScriptTask" targetRef="ExclusiveGateway_19tbjgn" />
+ <bpmn2:scriptTask id="PostProcess_ScriptTask" name="Post Process Request" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_1rzlaoy</bpmn2:incoming>
+ <bpmn2:incoming>SequenceFlow_0a83f6m</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_01l4ssl</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def rbk = new DoCreateE2EServiceInstanceRollback()
+rbk.postProcessRequest(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:sequenceFlow id="SequenceFlow_01l4ssl" sourceRef="PostProcess_ScriptTask" targetRef="EndEvent_3" />
+ <bpmn2:subProcess id="SubProcess_11bi8mc" name="Java Exception Handling Sub Process" triggeredByEvent="true">
+ <bpmn2:startEvent id="StartEvent_1gxe17c">
+ <bpmn2:outgoing>SequenceFlow_1ch4xrf</bpmn2:outgoing>
+ <bpmn2:errorEventDefinition errorRef="Error_1" />
+ </bpmn2:startEvent>
+ <bpmn2:scriptTask id="ScriptTask_15yddb0" name="Process Java Error" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_1ch4xrf</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1pjk2ff</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def rbk= new DoCreateE2EServiceInstanceRollback()
+rbk.processRollbackJavaException(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:endEvent id="EndEvent_12e3h6k">
+ <bpmn2:incoming>SequenceFlow_1pjk2ff</bpmn2:incoming>
+ <bpmn2:terminateEventDefinition />
+ </bpmn2:endEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_1ch4xrf" name="" sourceRef="StartEvent_1gxe17c" targetRef="ScriptTask_15yddb0" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1pjk2ff" name="" sourceRef="ScriptTask_15yddb0" targetRef="EndEvent_12e3h6k" />
+ </bpmn2:subProcess>
+ <bpmn2:exclusiveGateway id="ExclusiveGateway_19tbjgn" name="skip Rollback" default="SequenceFlow_06aasqh">
+ <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1rzlaoy</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_06aasqh</bpmn2:outgoing>
+ </bpmn2:exclusiveGateway>
+ <bpmn2:sequenceFlow id="SequenceFlow_1rzlaoy" name="yes" sourceRef="ExclusiveGateway_19tbjgn" targetRef="PostProcess_ScriptTask">
+ <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("skipRollback" ) == true}]]></bpmn2:conditionExpression>
+ </bpmn2:sequenceFlow>
+ <bpmn2:exclusiveGateway id="ExclusiveGateway_0ii31dq" name="RollBack Deleted Resources?">
+ <bpmn2:documentation>rollback Deleted Resources</bpmn2:documentation>
+ <bpmn2:incoming>SequenceFlow_1uw2p9a</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0drjj7b</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_055b52t</bpmn2:outgoing>
+ </bpmn2:exclusiveGateway>
+ <bpmn2:exclusiveGateway id="ExclusiveGateway_09wkav2" name="Rollback Added Resources?" default="SequenceFlow_1uw2p9a">
+ <bpmn2:incoming>SequenceFlow_06aasqh</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1uw2p9a</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_11fnnkb</bpmn2:outgoing>
+ </bpmn2:exclusiveGateway>
+ <bpmn2:sequenceFlow id="SequenceFlow_1uw2p9a" name="no" sourceRef="ExclusiveGateway_09wkav2" targetRef="ExclusiveGateway_0ii31dq" />
+ <bpmn2:sequenceFlow id="SequenceFlow_11fnnkb" name="yes" sourceRef="ExclusiveGateway_09wkav2" targetRef="IntermediateThrowEvent_11l0okn">
+ <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{(execution.getVariable("RollbackAdded" ) == "true" )}]]></bpmn2:conditionExpression>
+ </bpmn2:sequenceFlow>
+ <bpmn2:sequenceFlow id="SequenceFlow_06aasqh" name="no" sourceRef="ExclusiveGateway_19tbjgn" targetRef="ExclusiveGateway_09wkav2" />
+ <bpmn2:callActivity id="CallActivity_05jnyuq" name="Call DoDeleteResources" calledElement="DoDeleteResources">
+ <bpmn2:extensionElements>
+ <camunda:in source="nsServiceName" target="nsServiceName" />
+ <camunda:in source="nsServiceDescription" target="nsServiceDescription" />
+ <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
+ <camunda:in source="serviceType" target="serviceType" />
+ <camunda:in source="serviceId" target="serviceId" />
+ <camunda:in source="operationId" target="operationId" />
+ <camunda:in source="resourceType" target="resourceType" />
+ <camunda:in source="resourceUUID" target="resourceUUID" />
+ <camunda:in source="resourceParameters" target="resourceParameters" />
+ <camunda:in source="operationType" target="operationType" />
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>SequenceFlow_1fih4h0</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0pwixhh</bpmn2:outgoing>
+ </bpmn2:callActivity>
+ <bpmn2:sequenceFlow id="SequenceFlow_0pwixhh" sourceRef="CallActivity_05jnyuq" targetRef="ScriptTask_0ngehrz" />
+ <bpmn2:scriptTask id="ScriptTask_1i1ova8" name="PreProcess for Add Resources" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_06xv7b2</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0b73i9r</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new DoUpdateE2EServiceInstanceRollback()
+csi.preProcessForAddResource(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:scriptTask id="ScriptTask_0ngehrz" name="PostProcess for Add Resource" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_0pwixhh</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_08p4pkv</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new DoUpdateE2EServiceInstanceRollback()
+csi.postProcessForAddResource(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:scriptTask id="ScriptTask_01beerv" name="PreProcess for Delete Resources" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_1g4qm2l</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1fih4h0</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new DoUpdateE2EServiceInstanceRollback()
+csi.preProcessForDeleteResource(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:callActivity id="CallActivity_0l7jjb1" name="Call DoCreateResources" calledElement="DoCreateResources">
+ <bpmn2:extensionElements>
+ <camunda:in source="nsServiceName" target="nsServiceName" />
+ <camunda:in source="nsServiceDescription" target="nsServiceDescription" />
+ <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
+ <camunda:in source="serviceType" target="serviceType" />
+ <camunda:in source="serviceId" target="serviceId" />
+ <camunda:in source="operationId" target="operationId" />
+ <camunda:in source="resourceType" target="resourceType" />
+ <camunda:in source="resourceUUID" target="resourceUUID" />
+ <camunda:in source="resourceParameters" target="resourceParameters" />
+ <camunda:in source="operationType" target="operationType" />
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>SequenceFlow_0b73i9r</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0q9ws1s</bpmn2:outgoing>
+ </bpmn2:callActivity>
+ <bpmn2:scriptTask id="ScriptTask_1afo620" name="PostProcess for Add Resource" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_0q9ws1s</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1bp5oce</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new DoUpdateE2EServiceInstanceRollback()
+csi.postProcessForAddResource(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:exclusiveGateway id="ExclusiveGateway_0ybxh3b" name="RollBackAAI?">
+ <bpmn2:documentation>rollback AAI</bpmn2:documentation>
+ <bpmn2:incoming>SequenceFlow_055b52t</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0a83f6m</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_0zijz16</bpmn2:outgoing>
+ </bpmn2:exclusiveGateway>
+ <bpmn2:sequenceFlow id="SequenceFlow_0drjj7b" name="yes" sourceRef="ExclusiveGateway_0ii31dq" targetRef="IntermediateThrowEvent_14ed07u">
+ <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{(execution.getVariable("RollbackDeleted" ) == "true" )}]]></bpmn2:conditionExpression>
+ </bpmn2:sequenceFlow>
+ <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_05uesi2" name="StartAddResources">
+ <bpmn2:outgoing>SequenceFlow_06xv7b2</bpmn2:outgoing>
+ <bpmn2:linkEventDefinition name="StartAddResource" />
+ </bpmn2:intermediateCatchEvent>
+ <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_1qn9srt" name="StartDeleteResources">
+ <bpmn2:outgoing>SequenceFlow_1g4qm2l</bpmn2:outgoing>
+ <bpmn2:linkEventDefinition name="StartDeleteResources" />
+ </bpmn2:intermediateCatchEvent>
+ <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_11l0okn" name="GoTo StartDeleteResources">
+ <bpmn2:incoming>SequenceFlow_11fnnkb</bpmn2:incoming>
+ <bpmn2:linkEventDefinition name="StartDeleteResources" />
+ </bpmn2:intermediateThrowEvent>
+ <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_14ed07u" name="GoTo StartAddResources">
+ <bpmn2:incoming>SequenceFlow_0drjj7b</bpmn2:incoming>
+ <bpmn2:linkEventDefinition name="StartAddResource" />
+ </bpmn2:intermediateThrowEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_0a83f6m" name="no" sourceRef="ExclusiveGateway_0ybxh3b" targetRef="PostProcess_ScriptTask" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1fih4h0" sourceRef="ScriptTask_01beerv" targetRef="CallActivity_05jnyuq" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1g4qm2l" sourceRef="IntermediateCatchEvent_1qn9srt" targetRef="ScriptTask_01beerv" />
+ <bpmn2:sequenceFlow id="SequenceFlow_06xv7b2" sourceRef="IntermediateCatchEvent_05uesi2" targetRef="ScriptTask_1i1ova8" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0b73i9r" sourceRef="ScriptTask_1i1ova8" targetRef="CallActivity_0l7jjb1" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0q9ws1s" sourceRef="CallActivity_0l7jjb1" targetRef="ScriptTask_1afo620" />
+ <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_0546q5i" name="UpdateAAI">
+ <bpmn2:outgoing>SequenceFlow_1a65s3k</bpmn2:outgoing>
+ <bpmn2:linkEventDefinition name="UpdateAAI" />
+ </bpmn2:intermediateCatchEvent>
+ <bpmn2:scriptTask id="ScriptTask_0gj4dj5" name="Pre Process AAI PUT" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_1ixphei</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1lppnhy</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstanceRollback()
+dcsi.preProcessAAIPUT(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:callActivity id="CallActivity_0zs5y0x" name="Call Custom E2E Put Service" calledElement="CustomE2EPutService">
+ <bpmn2:extensionElements>
+ <camunda:in source="serviceInstanceId" target="GENGS_serviceInstanceId" />
+ <camunda:in sourceExpression="service-instance" target="GENGS_type" />
+ <camunda:out source="GENGS_FoundIndicator" target="GENGS_FoundIndicator" />
+ <camunda:out source="GENGS_SuccessIndicator" target="GENGS_SuccessIndicator" />
+ <camunda:out source="WorkflowException" target="WorkflowException" />
+ <camunda:out source="GENGS_siResourceLink" target="GENGS_siResourceLink" />
+ <camunda:out source="GENGS_service" target="GENGS_service" />
+ <camunda:in source="globalSubscriberId" target="GENGS_globalCustomerId" />
+ <camunda:in source="serviceType" target="GENGS_serviceType" />
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>SequenceFlow_1lppnhy</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0kbisn8</bpmn2:outgoing>
+ </bpmn2:callActivity>
+ <bpmn2:scriptTask id="ScriptTask_1p96syr" name="Post Process AAI PUT" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_0kbisn8</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1azhgda</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstanceRollback()
+dcsi.postProcessAAIPUT(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:sequenceFlow id="SequenceFlow_1a65s3k" sourceRef="IntermediateCatchEvent_0546q5i" targetRef="ScriptTask_13h2onn" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1lppnhy" sourceRef="ScriptTask_0gj4dj5" targetRef="CallActivity_0zs5y0x" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0kbisn8" sourceRef="CallActivity_0zs5y0x" targetRef="ScriptTask_1p96syr" />
+ <bpmn2:exclusiveGateway id="ExclusiveGateway_1k16vgh" name="RollBackAAI?">
+ <bpmn2:documentation>rollback AAI</bpmn2:documentation>
+ <bpmn2:incoming>SequenceFlow_08p4pkv</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0cbnwwi</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_161uzhj</bpmn2:outgoing>
+ </bpmn2:exclusiveGateway>
+ <bpmn2:sequenceFlow id="SequenceFlow_08p4pkv" sourceRef="ScriptTask_0ngehrz" targetRef="ExclusiveGateway_1k16vgh" />
+ <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0x32fw8" name="GoTo UpdateAAI">
+ <bpmn2:incoming>SequenceFlow_0cbnwwi</bpmn2:incoming>
+ <bpmn2:linkEventDefinition name="UpdateAAI" />
+ </bpmn2:intermediateThrowEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_0cbnwwi" sourceRef="ExclusiveGateway_1k16vgh" targetRef="IntermediateThrowEvent_0x32fw8" />
+ <bpmn2:scriptTask id="ScriptTask_1c3q8hc" name="Post Process Request" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_161uzhj</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_13r4lij</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def rbk = new DoCreateE2EServiceInstanceRollback()
+rbk.postProcessRequest(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:sequenceFlow id="SequenceFlow_161uzhj" sourceRef="ExclusiveGateway_1k16vgh" targetRef="ScriptTask_1c3q8hc" />
+ <bpmn2:endEvent id="EndEvent_0knjkkx">
+ <bpmn2:incoming>SequenceFlow_13r4lij</bpmn2:incoming>
+ </bpmn2:endEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_13r4lij" sourceRef="ScriptTask_1c3q8hc" targetRef="EndEvent_0knjkkx" />
+ <bpmn2:exclusiveGateway id="ExclusiveGateway_0g7wcmb" name="RollBackAAI?">
+ <bpmn2:documentation>rollback AAI</bpmn2:documentation>
+ <bpmn2:incoming>SequenceFlow_1bp5oce</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0bkvqao</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_1isdxh1</bpmn2:outgoing>
+ </bpmn2:exclusiveGateway>
+ <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0q76lxg" name="GoTo UpdateAAI">
+ <bpmn2:incoming>SequenceFlow_0bkvqao</bpmn2:incoming>
+ <bpmn2:linkEventDefinition name="UpdateAAI" />
+ </bpmn2:intermediateThrowEvent>
+ <bpmn2:scriptTask id="ScriptTask_1y4us3g" name="Post Process Request" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_1isdxh1</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0a9xori</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def rbk = new DoCreateE2EServiceInstanceRollback()
+rbk.postProcessRequest(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:endEvent id="EndEvent_0yzh2qs">
+ <bpmn2:incoming>SequenceFlow_0a9xori</bpmn2:incoming>
+ </bpmn2:endEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_0bkvqao" sourceRef="ExclusiveGateway_0g7wcmb" targetRef="IntermediateThrowEvent_0q76lxg" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1isdxh1" sourceRef="ExclusiveGateway_0g7wcmb" targetRef="ScriptTask_1y4us3g" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0a9xori" sourceRef="ScriptTask_1y4us3g" targetRef="EndEvent_0yzh2qs" />
+ <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_1et42wh" name="GoTo UpdateAAI">
+ <bpmn2:incoming>SequenceFlow_0zijz16</bpmn2:incoming>
+ <bpmn2:linkEventDefinition name="UpdateAAI" />
+ </bpmn2:intermediateThrowEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_0zijz16" name="yes" sourceRef="ExclusiveGateway_0ybxh3b" targetRef="IntermediateThrowEvent_1et42wh">
+ <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{(execution.getVariable("RollbackAAI" ) == "true" )}]]></bpmn2:conditionExpression>
+ </bpmn2:sequenceFlow>
+ <bpmn2:sequenceFlow id="SequenceFlow_1bp5oce" sourceRef="ScriptTask_1afo620" targetRef="ExclusiveGateway_0g7wcmb" />
+ <bpmn2:scriptTask id="ScriptTask_17k4l6y" name="Post Process Request" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_1azhgda</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1n6foyw</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def rbk = new DoCreateE2EServiceInstanceRollback()
+rbk.postProcessRequest(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:endEvent id="EndEvent_193e9tt">
+ <bpmn2:incoming>SequenceFlow_1n6foyw</bpmn2:incoming>
+ </bpmn2:endEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_1n6foyw" sourceRef="ScriptTask_17k4l6y" targetRef="EndEvent_193e9tt" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1azhgda" sourceRef="ScriptTask_1p96syr" targetRef="ScriptTask_17k4l6y" />
+ <bpmn2:sequenceFlow id="SequenceFlow_055b52t" name="no" sourceRef="ExclusiveGateway_0ii31dq" targetRef="ExclusiveGateway_0ybxh3b" />
+ <bpmn2:scriptTask id="ScriptTask_13h2onn" name="Pre Process AAI GET" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_1a65s3k</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0870pzc</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstanceRollback()
+dcsi.preProcessAAIGET(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:callActivity id="CallActivity_1527zgc" name="Call AAI Generic GetService" calledElement="GenericGetService">
+ <bpmn2:extensionElements>
+ <camunda:in source="serviceInstanceId" target="GENGS_serviceInstanceId" />
+ <camunda:in sourceExpression="service-instance" target="GENGS_type" />
+ <camunda:out source="GENGS_FoundIndicator" target="GENGS_FoundIndicator" />
+ <camunda:out source="GENGS_SuccessIndicator" target="GENGS_SuccessIndicator" />
+ <camunda:out source="WorkflowException" target="WorkflowException" />
+ <camunda:out source="GENGS_siResourceLink" target="GENGS_siResourceLink" />
+ <camunda:out source="GENGS_service" target="GENGS_service" />
+ <camunda:in source="globalSubscriberId" target="GENGS_globalCustomerId" />
+ <camunda:in source="serviceType" target="GENGS_serviceType" />
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>SequenceFlow_0870pzc</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1f31l5s</bpmn2:outgoing>
+ </bpmn2:callActivity>
+ <bpmn2:sequenceFlow id="SequenceFlow_0870pzc" sourceRef="ScriptTask_13h2onn" targetRef="CallActivity_1527zgc" />
+ <bpmn2:scriptTask id="ScriptTask_0td1f55" name="Post Process AAI GET" scriptFormat="groovy">
+ <bpmn2:incoming>SequenceFlow_1f31l5s</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1ixphei</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstanceRollback()
+dcsi.postProcessAAIGET(execution)]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:sequenceFlow id="SequenceFlow_1f31l5s" sourceRef="CallActivity_1527zgc" targetRef="ScriptTask_0td1f55" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1ixphei" sourceRef="ScriptTask_0td1f55" targetRef="ScriptTask_0gj4dj5" />
+ </bpmn2:process>
+ <bpmn2:error id="Error_2" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
+ <bpmn2:error id="Error_1" name="java.lang.Exception" errorCode="java.lang.Exception" />
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoCreateE2EServiceInstanceRollback">
+ <bpmndi:BPMNShape id="_BPMNShape_StartEvent_47" bpmnElement="createSIRollback_startEvent">
+ <dc:Bounds x="151" y="79" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="146" y="120" width="48" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_61" bpmnElement="preProcessRequest_ScriptTask">
+ <dc:Bounds x="234" y="57" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_47" targetElement="_BPMNShape_ScriptTask_61">
+ <di:waypoint xsi:type="dc:Point" x="187" y="97" />
+ <di:waypoint xsi:type="dc:Point" x="234" y="97" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="211" y="82" width="0" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="_BPMNShape_EndEvent_177" bpmnElement="EndEvent_3">
+ <dc:Bounds x="626" y="326" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="599" y="367" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_BPMNShape_SubProcess_27" bpmnElement="UnexpectedError_SubProcess_1" isExpanded="true">
+ <dc:Bounds x="122" y="981" width="466" height="156" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_BPMNShape_StartEvent_70" bpmnElement="StartEvent_1">
+ <dc:Bounds x="190" y="1047" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="163" y="1088" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_BPMNShape_EndEvent_219" bpmnElement="EndEvent_1">
+ <dc:Bounds x="483" y="1047" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="456" y="1088" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_StartEvent_70" targetElement="_BPMNShape_ScriptTask_269">
+ <di:waypoint xsi:type="dc:Point" x="226" y="1065" />
+ <di:waypoint xsi:type="dc:Point" x="294" y="1065" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="216" y="1050" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_61">
+ <di:waypoint xsi:type="dc:Point" x="334" y="97" />
+ <di:waypoint xsi:type="dc:Point" x="391" y="97" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="342.5" y="82" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_269" bpmnElement="ScriptTask_1">
+ <dc:Bounds x="294" y="1025" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_269" targetElement="_BPMNShape_EndEvent_219">
+ <di:waypoint xsi:type="dc:Point" x="394" y="1065" />
+ <di:waypoint xsi:type="dc:Point" x="483" y="1065" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="394" y="1050" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_1wk55es_di" bpmnElement="PostProcess_ScriptTask">
+ <dc:Bounds x="594" y="202" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_01l4ssl_di" bpmnElement="SequenceFlow_01l4ssl">
+ <di:waypoint xsi:type="dc:Point" x="644" y="282" />
+ <di:waypoint xsi:type="dc:Point" x="644" y="326" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="614" y="304" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="SubProcess_11bi8mc_di" bpmnElement="SubProcess_11bi8mc" isExpanded="true">
+ <dc:Bounds x="612" y="982" width="463" height="152" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="StartEvent_1gxe17c_di" bpmnElement="StartEvent_1gxe17c">
+ <dc:Bounds x="647" y="1034" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="620" y="1075" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_15yddb0_di" bpmnElement="ScriptTask_15yddb0">
+ <dc:Bounds x="755" y="1012" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_12e3h6k_di" bpmnElement="EndEvent_12e3h6k">
+ <dc:Bounds x="905" y="1034" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="878" y="1075" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1ch4xrf_di" bpmnElement="SequenceFlow_1ch4xrf">
+ <di:waypoint xsi:type="dc:Point" x="683" y="1052" />
+ <di:waypoint xsi:type="dc:Point" x="755" y="1052" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="663" y="1052" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1pjk2ff_di" bpmnElement="SequenceFlow_1pjk2ff">
+ <di:waypoint xsi:type="dc:Point" x="855" y="1052" />
+ <di:waypoint xsi:type="dc:Point" x="905" y="1052" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="835" y="1052" width="90" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_19tbjgn_di" bpmnElement="ExclusiveGateway_19tbjgn" isMarkerVisible="true">
+ <dc:Bounds x="391" y="72" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="383" y="54" width="65" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1rzlaoy_di" bpmnElement="SequenceFlow_1rzlaoy">
+ <di:waypoint xsi:type="dc:Point" x="416" y="122" />
+ <di:waypoint xsi:type="dc:Point" x="416" y="242" />
+ <di:waypoint xsi:type="dc:Point" x="594" y="242" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="460.4906587831245" y="224.5" width="19" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_0ii31dq_di" bpmnElement="ExclusiveGateway_0ii31dq" isMarkerVisible="true">
+ <dc:Bounds x="687" y="72" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="670" y="131" width="83" height="24" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ExclusiveGateway_09wkav2_di" bpmnElement="ExclusiveGateway_09wkav2" isMarkerVisible="true">
+ <dc:Bounds x="520" y="72" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="507" y="127" width="76" height="24" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1uw2p9a_di" bpmnElement="SequenceFlow_1uw2p9a">
+ <di:waypoint xsi:type="dc:Point" x="570" y="97" />
+ <di:waypoint xsi:type="dc:Point" x="687" y="97" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="592.125" y="107.5" width="12" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_11fnnkb_di" bpmnElement="SequenceFlow_11fnnkb">
+ <di:waypoint xsi:type="dc:Point" x="545" y="72" />
+ <di:waypoint xsi:type="dc:Point" x="545" y="-33" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="560.5" y="44.98780487804885" width="19" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_06aasqh_di" bpmnElement="SequenceFlow_06aasqh">
+ <di:waypoint xsi:type="dc:Point" x="441" y="97" />
+ <di:waypoint xsi:type="dc:Point" x="520" y="97" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="460.5" y="104" width="12" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="CallActivity_05jnyuq_di" bpmnElement="CallActivity_05jnyuq">
+ <dc:Bounds x="417" y="454" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0pwixhh_di" bpmnElement="SequenceFlow_0pwixhh">
+ <di:waypoint xsi:type="dc:Point" x="517" y="494" />
+ <di:waypoint xsi:type="dc:Point" x="594" y="494" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="555.5" y="473" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_1i1ova8_di" bpmnElement="ScriptTask_1i1ova8">
+ <dc:Bounds x="230" y="632" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0ngehrz_di" bpmnElement="ScriptTask_0ngehrz">
+ <dc:Bounds x="594" y="454" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_01beerv_di" bpmnElement="ScriptTask_01beerv">
+ <dc:Bounds x="230" y="454" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="CallActivity_0l7jjb1_di" bpmnElement="CallActivity_0l7jjb1">
+ <dc:Bounds x="417" y="632" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_1afo620_di" bpmnElement="ScriptTask_1afo620">
+ <dc:Bounds x="594" y="632" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ExclusiveGateway_0ybxh3b_di" bpmnElement="ExclusiveGateway_0ybxh3b" isMarkerVisible="true">
+ <dc:Bounds x="864" y="72" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="856" y="130" width="66" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0drjj7b_di" bpmnElement="SequenceFlow_0drjj7b">
+ <di:waypoint xsi:type="dc:Point" x="712" y="72" />
+ <di:waypoint xsi:type="dc:Point" x="712" y="-33" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="717.5" y="38.190140845070424" width="19" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="IntermediateCatchEvent_05uesi2_di" bpmnElement="IntermediateCatchEvent_05uesi2">
+ <dc:Bounds x="159" y="654" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="135" y="699" width="84" height="24" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="IntermediateCatchEvent_1qn9srt_di" bpmnElement="IntermediateCatchEvent_1qn9srt">
+ <dc:Bounds x="159" y="476" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="135" y="516" width="86" height="24" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="IntermediateThrowEvent_11l0okn_di" bpmnElement="IntermediateThrowEvent_11l0okn">
+ <dc:Bounds x="527" y="-69" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="502" y="-112" width="86" height="36" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="IntermediateThrowEvent_14ed07u_di" bpmnElement="IntermediateThrowEvent_14ed07u">
+ <dc:Bounds x="694" y="-69" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="670" y="-108" width="84" height="36" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0a83f6m_di" bpmnElement="SequenceFlow_0a83f6m">
+ <di:waypoint xsi:type="dc:Point" x="889" y="122" />
+ <di:waypoint xsi:type="dc:Point" x="889" y="242" />
+ <di:waypoint xsi:type="dc:Point" x="694" y="242" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="928" y="176" width="12" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1fih4h0_di" bpmnElement="SequenceFlow_1fih4h0">
+ <di:waypoint xsi:type="dc:Point" x="330" y="494" />
+ <di:waypoint xsi:type="dc:Point" x="417" y="494" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="373.5" y="473" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1g4qm2l_di" bpmnElement="SequenceFlow_1g4qm2l">
+ <di:waypoint xsi:type="dc:Point" x="195" y="494" />
+ <di:waypoint xsi:type="dc:Point" x="230" y="494" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="212.5" y="473" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_06xv7b2_di" bpmnElement="SequenceFlow_06xv7b2">
+ <di:waypoint xsi:type="dc:Point" x="195" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="230" y="672" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="212.5" y="651" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0b73i9r_di" bpmnElement="SequenceFlow_0b73i9r">
+ <di:waypoint xsi:type="dc:Point" x="330" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="363" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="363" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="417" y="672" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="378" y="666" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0q9ws1s_di" bpmnElement="SequenceFlow_0q9ws1s">
+ <di:waypoint xsi:type="dc:Point" x="517" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="545" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="545" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="594" y="672" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="560" y="666" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="IntermediateCatchEvent_0546q5i_di" bpmnElement="IntermediateCatchEvent_0546q5i">
+ <dc:Bounds x="156" y="820" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="151" y="856" width="52" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0gj4dj5_di" bpmnElement="ScriptTask_0gj4dj5">
+ <dc:Bounds x="687" y="798" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="CallActivity_0zs5y0x_di" bpmnElement="CallActivity_0zs5y0x">
+ <dc:Bounds x="841" y="798" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_1p96syr_di" bpmnElement="ScriptTask_1p96syr">
+ <dc:Bounds x="1014" y="798" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1a65s3k_di" bpmnElement="SequenceFlow_1a65s3k">
+ <di:waypoint xsi:type="dc:Point" x="192" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="234" y="838" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="168" y="817" width="90" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1lppnhy_di" bpmnElement="SequenceFlow_1lppnhy">
+ <di:waypoint xsi:type="dc:Point" x="787" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="841" y="838" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="769" y="817" width="90" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0kbisn8_di" bpmnElement="SequenceFlow_0kbisn8">
+ <di:waypoint xsi:type="dc:Point" x="941" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="978" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="978" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="1014" y="838" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="948" y="832" width="90" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_1k16vgh_di" bpmnElement="ExclusiveGateway_1k16vgh" isMarkerVisible="true">
+ <dc:Bounds x="778" y="469" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="721" y="467" width="66" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_08p4pkv_di" bpmnElement="SequenceFlow_08p4pkv">
+ <di:waypoint xsi:type="dc:Point" x="694" y="494" />
+ <di:waypoint xsi:type="dc:Point" x="778" y="494" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="736" y="473" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="IntermediateThrowEvent_0x32fw8_di" bpmnElement="IntermediateThrowEvent_0x32fw8">
+ <dc:Bounds x="785" y="383" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="762" y="363" width="82" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0cbnwwi_di" bpmnElement="SequenceFlow_0cbnwwi">
+ <di:waypoint xsi:type="dc:Point" x="803" y="469" />
+ <di:waypoint xsi:type="dc:Point" x="803" y="419" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="818" y="438" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_1c3q8hc_di" bpmnElement="ScriptTask_1c3q8hc">
+ <dc:Bounds x="879" y="454" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_161uzhj_di" bpmnElement="SequenceFlow_161uzhj">
+ <di:waypoint xsi:type="dc:Point" x="828" y="494" />
+ <di:waypoint xsi:type="dc:Point" x="879" y="494" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="853.5" y="473" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="EndEvent_0knjkkx_di" bpmnElement="EndEvent_0knjkkx">
+ <dc:Bounds x="1040.4" y="476" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1058.4" y="516" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_13r4lij_di" bpmnElement="SequenceFlow_13r4lij">
+ <di:waypoint xsi:type="dc:Point" x="979" y="494" />
+ <di:waypoint xsi:type="dc:Point" x="1040" y="494" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1009.5" y="473" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_0g7wcmb_di" bpmnElement="ExclusiveGateway_0g7wcmb" isMarkerVisible="true">
+ <dc:Bounds x="778" y="647" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="721" y="645" width="66" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="IntermediateThrowEvent_0q76lxg_di" bpmnElement="IntermediateThrowEvent_0q76lxg">
+ <dc:Bounds x="785" y="589" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="762" y="566" width="82" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_1y4us3g_di" bpmnElement="ScriptTask_1y4us3g">
+ <dc:Bounds x="879" y="632" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_0yzh2qs_di" bpmnElement="EndEvent_0yzh2qs">
+ <dc:Bounds x="1040" y="654" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1058" y="694" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0bkvqao_di" bpmnElement="SequenceFlow_0bkvqao">
+ <di:waypoint xsi:type="dc:Point" x="803" y="647" />
+ <di:waypoint xsi:type="dc:Point" x="803" y="625" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="818" y="630" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1isdxh1_di" bpmnElement="SequenceFlow_1isdxh1">
+ <di:waypoint xsi:type="dc:Point" x="828" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="879" y="672" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="853.5" y="651" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0a9xori_di" bpmnElement="SequenceFlow_0a9xori">
+ <di:waypoint xsi:type="dc:Point" x="979" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="1040" y="672" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1009.5" y="651" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="IntermediateThrowEvent_1et42wh_di" bpmnElement="IntermediateThrowEvent_1et42wh">
+ <dc:Bounds x="871" y="-69" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="848" y="-91" width="82" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0zijz16_di" bpmnElement="SequenceFlow_0zijz16">
+ <di:waypoint xsi:type="dc:Point" x="889" y="72" />
+ <di:waypoint xsi:type="dc:Point" x="889" y="20" />
+ <di:waypoint xsi:type="dc:Point" x="889" y="20" />
+ <di:waypoint xsi:type="dc:Point" x="889" y="-33" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="895" y="14" width="19" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1bp5oce_di" bpmnElement="SequenceFlow_1bp5oce">
+ <di:waypoint xsi:type="dc:Point" x="694" y="672" />
+ <di:waypoint xsi:type="dc:Point" x="778" y="672" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="736" y="651" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_17k4l6y_di" bpmnElement="ScriptTask_17k4l6y">
+ <dc:Bounds x="1171" y="798" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_193e9tt_di" bpmnElement="EndEvent_193e9tt">
+ <dc:Bounds x="1327" y="820" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1300" y="860" width="90" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1n6foyw_di" bpmnElement="SequenceFlow_1n6foyw">
+ <di:waypoint xsi:type="dc:Point" x="1271" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="1327" y="838" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1254" y="817" width="90" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1azhgda_di" bpmnElement="SequenceFlow_1azhgda">
+ <di:waypoint xsi:type="dc:Point" x="1114" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="1171" y="838" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1097.5" y="817" width="90" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_055b52t_di" bpmnElement="SequenceFlow_055b52t">
+ <di:waypoint xsi:type="dc:Point" x="737" y="97" />
+ <di:waypoint xsi:type="dc:Point" x="864" y="97" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="770" y="106" width="12" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_13h2onn_di" bpmnElement="ScriptTask_13h2onn">
+ <dc:Bounds x="234" y="798" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="CallActivity_1527zgc_di" bpmnElement="CallActivity_1527zgc">
+ <dc:Bounds x="391" y="798" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0870pzc_di" bpmnElement="SequenceFlow_0870pzc">
+ <di:waypoint xsi:type="dc:Point" x="334" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="391" y="838" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="362.5" y="817" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_0td1f55_di" bpmnElement="ScriptTask_0td1f55">
+ <dc:Bounds x="543" y="798" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1f31l5s_di" bpmnElement="SequenceFlow_1f31l5s">
+ <di:waypoint xsi:type="dc:Point" x="491" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="543" y="838" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="517" y="817" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1ixphei_di" bpmnElement="SequenceFlow_1ixphei">
+ <di:waypoint xsi:type="dc:Point" x="643" y="838" />
+ <di:waypoint xsi:type="dc:Point" x="687" y="838" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="665" y="817" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+</bpmn2:definitions>
diff --git a/cloudify-client/pom.xml b/cloudify-client/pom.xml
index f87ee3ccd9..9b2ca39615 100644
--- a/cloudify-client/pom.xml
+++ b/cloudify-client/pom.xml
@@ -35,12 +35,36 @@
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
- <version>4.3.1</version>
+<!-- <version>4.3.1</version> -->
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
- <version>4.3.1</version>
+<!-- <version>4.5.5</version> -->
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-core</artifactId>
+ <version>1.3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-library</artifactId>
+ <version>1.3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.9.5</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.11</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
diff --git a/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Blueprint.java b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Blueprint.java
index a33c5206f2..468195909f 100644
--- a/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Blueprint.java
+++ b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Blueprint.java
@@ -57,10 +57,6 @@ public class Blueprint implements Serializable {
@JsonProperty("updated_at")
private Date updatedAt;
- // ObjectMapper instance to parse Json stack outputs
- @JsonIgnore
- private static ObjectMapper mapper = new ObjectMapper();
-
public Date getCreatedAt() {
return createdAt;
}
@@ -124,6 +120,9 @@ public class Blueprint implements Serializable {
*/
public <T> T getMapValue (Map<String,Object> map, String key, Class<T> type)
{
+
+ ObjectMapper mapper = new ObjectMapper();
+
if (map.containsKey(key)) {
try {
String s = mapper.writeValueAsString(map.get(key));
diff --git a/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Deployment.java b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Deployment.java
index 453dd3f692..515e8a0be1 100644
--- a/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Deployment.java
+++ b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Deployment.java
@@ -78,10 +78,22 @@ public class Deployment implements Serializable {
@JsonProperty("workflows")
private List<Workflow> workflows;
- // ObjectMapper instance to parse Json object outputs
- @JsonIgnore
- private static ObjectMapper mapper = new ObjectMapper();
-
+ public List<Object> getPolicyTriggers() {
+ return policyTriggers;
+ }
+
+ public void setPolicyTriggers(List<Object> policyTriggers) {
+ this.policyTriggers = policyTriggers;
+ }
+
+ public List<Object> getPolicyTypes() {
+ return policyTypes;
+ }
+
+ public void setPolicyTypes(List<Object> policyTypes) {
+ this.policyTypes = policyTypes;
+ }
+
public String getBlueprintId() {
return blueprintId;
}
@@ -320,6 +332,8 @@ public class Deployment implements Serializable {
*/
public <T> T getMapValue (Map<String,Object> map, String key, Class<T> type)
{
+
+ ObjectMapper mapper = new ObjectMapper();
if (map.containsKey(key)) {
try {
String s = mapper.writeValueAsString(map.get(key));
diff --git a/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/DeploymentOutputs.java b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/DeploymentOutputs.java
index 11fe7faae0..26d2ae20bc 100644
--- a/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/DeploymentOutputs.java
+++ b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/DeploymentOutputs.java
@@ -41,12 +41,6 @@ public class DeploymentOutputs implements Serializable {
@JsonProperty("outputs")
private Map<String, Object> outputs = null;
-
- // ObjectMapper instance to parse Json object outputs
- @JsonIgnore
- private static ObjectMapper mapper = new ObjectMapper();
-
-
public Map<String, Object> getOutputs() {
return this.outputs;
}
@@ -67,6 +61,9 @@ public class DeploymentOutputs implements Serializable {
*/
public <T> T getMapValue (Map<String,Object> map, String key, Class<T> type)
{
+
+ ObjectMapper mapper = new ObjectMapper();
+
if (map.containsKey(key)) {
try {
String s = mapper.writeValueAsString(map.get(key));
diff --git a/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Metadata.java b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Metadata.java
index d44e92b1bc..31e3b0dbe3 100644
--- a/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Metadata.java
+++ b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Metadata.java
@@ -54,31 +54,4 @@ public class Metadata implements Serializable {
this.pagination = pagination;
}
- public class Pagination {
- @JsonProperty("total")
- private int total;
- @JsonProperty("offset")
- private int offset;
- @JsonProperty("size")
- private int size;
-
- public int getTotal() {
- return total;
- }
- public void setTotal(int total) {
- this.total = total;
- }
- public int getOffset() {
- return offset;
- }
- public void setOffset(int offset) {
- this.offset = offset;
- }
- public int getSize() {
- return size;
- }
- public void setSize(int size) {
- this.size = size;
- }
- }
}
diff --git a/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Pagination.java b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Pagination.java
new file mode 100644
index 0000000000..a79f053ca2
--- /dev/null
+++ b/cloudify-client/src/main/java/org/openecomp/mso/cloudify/v3/model/Pagination.java
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.cloudify.v3.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class Pagination {
+ @JsonProperty("total")
+ private int total;
+ @JsonProperty("offset")
+ private int offset;
+ @JsonProperty("size")
+ private int size;
+
+ public int getTotal() {
+ return total;
+ }
+ public void setTotal(int total) {
+ this.total = total;
+ }
+ public int getOffset() {
+ return offset;
+ }
+ public void setOffset(int offset) {
+ this.offset = offset;
+ }
+ public int getSize() {
+ return size;
+ }
+ public void setSize(int size) {
+ this.size = size;
+ }
+} \ No newline at end of file
diff --git a/cloudify-client/src/test/java/org/openecomp/mso/cloudify/BeanMultiTest.java b/cloudify-client/src/test/java/org/openecomp/mso/cloudify/BeanMultiTest.java
new file mode 100644
index 0000000000..5eaa27f11f
--- /dev/null
+++ b/cloudify-client/src/test/java/org/openecomp/mso/cloudify/BeanMultiTest.java
@@ -0,0 +1,63 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.cloudify;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.openpojo.reflection.PojoClass;
+import com.openpojo.reflection.PojoClassFilter;
+import com.openpojo.reflection.filters.FilterEnum;
+import com.openpojo.reflection.impl.PojoClassFactory;
+import com.openpojo.validation.Validator;
+import com.openpojo.validation.ValidatorBuilder;
+import com.openpojo.validation.rule.impl.GetterMustExistRule;
+import com.openpojo.validation.rule.impl.SetterMustExistRule;
+import com.openpojo.validation.test.impl.GetterTester;
+import com.openpojo.validation.test.impl.SetterTester;
+
+public class BeanMultiTest {
+
+ Validator validator;
+ PojoClassFilter enumFilter;
+ private PojoClassFilter filterTestClasses = new FilterTestClasses();
+
+ @Before
+ public void setup(){
+ enumFilter = new FilterEnum();
+ validator = ValidatorBuilder.create()
+ .with(new SetterMustExistRule(),
+ new GetterMustExistRule())
+ .with(new SetterTester(),
+ new GetterTester())
+ .build();
+ }
+ @Test
+ public void validateBeansMsoApihandlerBeans() {
+ validator.validate("org.openecomp.mso.cloudify.v3.model",enumFilter);
+ }
+
+ private static class FilterTestClasses implements PojoClassFilter {
+ public boolean include(PojoClass pojoClass) {
+ return !pojoClass.getSourcePath().contains("/src/test/java");
+ }
+ }
+} \ No newline at end of file
diff --git a/cloudify-client/src/test/java/org/openecomp/mso/cloudify/connector/http/HttpClientConnectorTest.java b/cloudify-client/src/test/java/org/openecomp/mso/cloudify/connector/http/HttpClientConnectorTest.java
new file mode 100644
index 0000000000..b768c93168
--- /dev/null
+++ b/cloudify-client/src/test/java/org/openecomp/mso/cloudify/connector/http/HttpClientConnectorTest.java
@@ -0,0 +1,150 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.cloudify.connector.http;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
+import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
+
+import com.github.tomakehurst.wiremock.junit.WireMockRule;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.delete;
+import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.verify;
+import static com.github.tomakehurst.wiremock.client.WireMock.getRequestedFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.putRequestedFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.deleteRequestedFor;
+import org.apache.http.HttpStatus;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import static org.hamcrest.CoreMatchers.*;
+import org.openecomp.mso.cloudify.base.client.CloudifyRequest;
+import org.openecomp.mso.cloudify.base.client.CloudifyResponseException;
+import org.openecomp.mso.cloudify.base.client.HttpMethod;
+import org.openecomp.mso.cloudify.v3.model.Deployment;
+
+public class HttpClientConnectorTest {
+
+ @Rule
+ public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicPort());
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ @Test
+ public void sunnyDay_POST(){
+ wireMockRule.stubFor(post(urlPathEqualTo("/testUrl")).willReturn(aResponse()
+ .withHeader("Content-Type", "application/json").withBody("TEST").withStatus(HttpStatus.SC_OK)));
+ int port = wireMockRule.port();
+ HttpClientConnector conector = new HttpClientConnector();
+ CloudifyRequest<Deployment> request = new CloudifyRequest<Deployment>();
+ Deployment deployment = new Deployment();
+ deployment.setId("id");
+ request.entity(deployment, "application/json");
+ request.endpoint("http://localhost:"+port+"/testUrl");
+ request.setBasicAuthentication("USER","PASSWORD");
+ request.header("Content-Type","application/json");
+ request.method(HttpMethod.POST);
+ conector.request(request);
+ verify(postRequestedFor(urlEqualTo("/testUrl")));
+ }
+
+
+ @Test
+ public void sunnyDay_GET(){
+ wireMockRule.stubFor(get(urlPathEqualTo("/testUrl")).willReturn(aResponse()
+ .withHeader("Content-Type", "application/json").withBody("TEST").withStatus(HttpStatus.SC_OK)));
+ int port = wireMockRule.port();
+ HttpClientConnector conector = new HttpClientConnector();
+ CloudifyRequest<Deployment> request = new CloudifyRequest<Deployment>();
+ request.endpoint("http://localhost:"+port+"/testUrl");
+ request.setBasicAuthentication("USER","PASSWORD");
+ request.method(HttpMethod.GET);
+ conector.request(request);
+ verify(getRequestedFor(urlEqualTo("/testUrl")));
+ }
+
+ @Test
+ public void sunnyDay_PUT(){
+ wireMockRule.stubFor(put(urlPathEqualTo("/testUrl")).willReturn(aResponse()
+ .withHeader("Content-Type", "application/json").withBody("TEST").withStatus(HttpStatus.SC_OK)));
+ int port = wireMockRule.port();
+ HttpClientConnector conector = new HttpClientConnector();
+ CloudifyRequest<Deployment> request = new CloudifyRequest<Deployment>();
+ request.endpoint("http://localhost:"+port+"/testUrl");
+ request.setBasicAuthentication("USER","PASSWORD");
+ request.method(HttpMethod.PUT);
+ conector.request(request);
+ verify(putRequestedFor(urlEqualTo("/testUrl")));
+ }
+
+
+ @Test
+ public void sunnyDay_DELETE(){
+ wireMockRule.stubFor(delete(urlPathEqualTo("/testUrl")).willReturn(aResponse()
+ .withHeader("Content-Type", "application/json").withBody("TEST").withStatus(HttpStatus.SC_OK)));
+ int port = wireMockRule.port();
+ HttpClientConnector conector = new HttpClientConnector();
+ CloudifyRequest<Deployment> request = new CloudifyRequest<Deployment>();
+ request.endpoint("http://localhost:"+port+"/testUrl");
+ request.setBasicAuthentication("USER","PASSWORD");
+ request.method(HttpMethod.DELETE);
+ conector.request(request);
+ verify(deleteRequestedFor(urlEqualTo("/testUrl")));
+ }
+
+
+ @Test
+ public void rainydDay_PATCH(){
+ thrown.expect(HttpClientException.class);
+ thrown.expectMessage("Unrecognized HTTP Method: PATCH");
+ HttpClientConnector conector = new HttpClientConnector();
+ CloudifyRequest<Deployment> request = new CloudifyRequest<Deployment>();
+ request.endpoint("http://localhost:123123/testUrl");
+ request.setBasicAuthentication("USER","PASSWORD");
+ request.method(HttpMethod.PATCH);
+ conector.request(request);
+
+ }
+
+
+ @Test
+ public void rainydDay_RunTimeException(){
+ wireMockRule.stubFor(post(urlEqualTo("/503")).willReturn(
+ aResponse().withStatus(503).withHeader("Content-Type", "text/plain").withBody("failure")));
+ thrown.expect(RuntimeException.class);
+ thrown.expectMessage("Unexpected client exception");
+ HttpClientConnector conector = new HttpClientConnector();
+ CloudifyRequest<Deployment> request = new CloudifyRequest<Deployment>();
+ request.endpoint("http://localhost:123123/503");
+ request.setBasicAuthentication("USER","PASSWORD");
+ request.method(HttpMethod.POST);
+ conector.request(request);
+
+ }
+
+
+} \ No newline at end of file
diff --git a/common/pom.xml b/common/pom.xml
index 4d2d66a6bf..aeef257d48 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -31,12 +31,12 @@
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
- <version>1.1.1</version>
+ <version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
- <version>1.1.1</version>
+ <version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
diff --git a/mso-api-handlers/mso-api-handler-infra/pom.xml b/mso-api-handlers/mso-api-handler-infra/pom.xml
index 6ee9003e77..a88c9b68ea 100644
--- a/mso-api-handlers/mso-api-handler-infra/pom.xml
+++ b/mso-api-handlers/mso-api-handler-infra/pom.xml
@@ -109,6 +109,12 @@
<artifactId>scala-library</artifactId>
<version>${scala-lang-version}</version>
</dependency>
+ <!--bwj added scala-compiler-->
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-compiler</artifactId>
+ <version>2.12.4</version>
+ </dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
diff --git a/pom.xml b/pom.xml
index 1383aa1167..263a632365 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,7 +48,7 @@
<!-- this is used for Chef mso-code cookbook -->
<swm.version>2.19.3-1</swm.version>
<!-- <openstack.version>1.2.0-SNAPSHOT</openstack.version> -->
- <openstack.version>1.1.0</openstack.version>
+ <openstack.version>1.2.0</openstack.version>
<nexusproxy>https://nexus.onap.org</nexusproxy>
<maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format>
<resteasy.version>3.0.19.Final</resteasy.version>
@@ -543,7 +543,7 @@
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
- <version>4.5</version>
+ <version>4.5.5</version>
<scope>compile</scope>
</dependency>
<dependency>
diff --git a/version.properties b/version.properties
index 1eaa4fa6e3..d3e09bb170 100644
--- a/version.properties
+++ b/version.properties
@@ -1,10 +1,10 @@
# Versioning variables
# Note that these variables cannot be structured (e.g. : version.release or version.snapshot etc... )
-# because they are used in Jenkins, whose plug-in doesn't support
+# because they are used in Jenkins, whose plug-in doesn't support...
major=1
-minor=18020100
-patch=63
+minor=2
+patch=1
base_version=${major}.${minor}.${patch}