Merge "Change the copyright to 2018"
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java
index 5d16a95..275241f 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java
@@ -22,10 +22,10 @@
 
 import java.io.FileReader;
 import java.io.IOException;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
-
 import java.util.Optional;
 import org.codehaus.jackson.annotate.JsonProperty;
 import org.codehaus.jackson.map.DeserializationConfig;
@@ -78,8 +78,8 @@
     /**
      * Get a map of all cloud sites that have been loaded.
      */
-    public synchronized Map<String, CloudSite> getCloudSites() {
-        return cloudSites;
+    public Map<String, CloudSite> getCloudSites() {
+        return Collections.unmodifiableMap(cloudSites);
     }
 
     /**
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfigFactory.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfigFactory.java
index 445c135..144506c 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfigFactory.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfigFactory.java
@@ -20,12 +20,10 @@
 
 package org.openecomp.mso.cloud;
 
-
 import java.io.IOException;
 import java.io.Serializable;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
-
 import javax.ejb.ConcurrencyManagement;
 import javax.ejb.ConcurrencyManagementType;
 import javax.ejb.LocalBean;
@@ -36,22 +34,17 @@
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.Response;
-
 import org.codehaus.jackson.JsonParseException;
 import org.codehaus.jackson.map.JsonMappingException;
-
+import org.openecomp.mso.logger.MessageEnum;
 import org.openecomp.mso.logger.MsoLogger;
 import org.openecomp.mso.openstack.exceptions.MsoCloudIdentityNotFound;
 import org.openecomp.mso.openstack.utils.MsoHeatUtils;
 import org.openecomp.mso.openstack.utils.MsoKeystoneUtils;
 import org.openecomp.mso.openstack.utils.MsoNeutronUtils;
-import org.openecomp.mso.properties.MsoPropertiesException;
-import org.openecomp.mso.logger.MessageEnum;
 
 /**
  * This class returns a cloud Config instances
- *
- *
  */
 
 @Singleton(name = "CloudConfigFactory")
@@ -62,13 +55,13 @@
 
     private static final long serialVersionUID = 2956662716453261085L;
 
-    private static CloudConfig cloudConfigCache = new CloudConfig ();
+    private CloudConfig cloudConfigCache = new CloudConfig();
 
     protected static String prefixMsoPropertiesPath = System.getProperty ("mso.config.path");
 
     private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
 
-    private static int refreshTimer;
+    private int refreshTimer;
 
     private static final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock ();
 
@@ -79,7 +72,6 @@
     }
 
     public void initializeCloudConfig (String filePath, int refreshTimer) throws MsoCloudIdentityNotFound {
-
         rwl.writeLock ().lock ();
         try {
             cloudConfigCache.loadCloudConfig (prefixMsoPropertiesPath + filePath, refreshTimer);
@@ -95,18 +87,6 @@
         }
     }
 
-    public void changeMsoPropertiesFilePath (String newMsoPropPath) {
-        rwl.writeLock ().lock ();
-        try {
-            CloudConfigFactory.cloudConfigCache.configFilePath = prefixMsoPropertiesPath + newMsoPropPath;
-        } finally {
-            rwl.writeLock ().unlock ();
-        }
-    }
-
-    public CloudConfigFactory () {
-    }
-
     public CloudConfig getCloudConfig () {
         rwl.readLock ().lock ();
         try {
@@ -127,7 +107,7 @@
      * @return true if Properties have been reloaded, false otherwise
      */
     @Schedule(minute = "*/1", hour = "*", persistent = false)
-    public static void reloadCloudConfig () {
+    public void reloadCloudConfig () {
 
         try {
             if (!rwl.writeLock ().tryLock () && !rwl.writeLock ().tryLock (30L, TimeUnit.SECONDS)) {
@@ -180,23 +160,17 @@
     @Path("/showConfig")
     @Produces("text/plain")
     public Response showCloudConfig () {
-        CloudConfig cloudConfig = this.getCloudConfig ();
-        if (cloudConfig != null) {
-            StringBuffer response = new StringBuffer ();
-            response.append ("Cloud Sites:\n");
-            for (CloudSite site : cloudConfig.getCloudSites ().values ()) {
-                response.append(site.toString()).append("\n");
-            }
-    
-            response.append ("\n\nCloud Identity Services:\n");
-            for (CloudIdentity identity : cloudConfig.getIdentityServices ().values ()) {
-                response.append(identity.toString()).append("\n");
-            }
-    
-            return Response.status (200).entity (response).build ();
-        } else {
-            return Response.status (500).entity ("Cloud Config has not been loaded properly, this could be due to a bad JSON structure (Check the logs for additional details)").build ();
+        CloudConfig cloudConfig = this.getCloudConfig();
+        StringBuffer response = new StringBuffer();
+        response.append("Cloud Sites:\n");
+        for (CloudSite site : cloudConfig.getCloudSites().values()) {
+            response.append(site.toString()).append("\n");
         }
+        response.append("\n\nCloud Identity Services:\n");
+        for (CloudIdentity identity : cloudConfig.getIdentityServices().values()) {
+            response.append(identity.toString()).append("\n");
+        }
+        return Response.status(200).entity(response).build();
     }
 
     @GET
@@ -207,8 +181,7 @@
         MsoKeystoneUtils.adminCacheReset ();
         MsoHeatUtils.heatCacheReset ();
         MsoNeutronUtils.neutronCacheReset ();
-
-        String response = "Client caches reset.  All entries removed.";
+        String response = "Client caches reset. All entries removed.";
         return Response.status (200).entity (response).build ();
     }
 
@@ -220,8 +193,7 @@
         MsoKeystoneUtils.adminCacheCleanup ();
         MsoHeatUtils.heatCacheCleanup ();
         MsoNeutronUtils.neutronCacheCleanup ();
-
-        String response = "Client caches cleaned up.  All expired entries removed";
+        String response = "Client caches cleaned up. All expired entries removed.";
         return Response.status (200).entity (response).build ();
     }
 
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java
new file mode 100644
index 0000000..fe768b5
--- /dev/null
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java
@@ -0,0 +1,164 @@
+/*-
+ * ============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.cloud;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
+import javax.ws.rs.core.Response;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.mso.openstack.exceptions.MsoCloudIdentityNotFound;
+
+public class CloudConfigFactoryTest {
+
+    private static final String CLOUD_CONFIG_FIELD_NAME = "cloudConfigCache";
+    private static final int REFRESH_TIMER_VALUE = 1;
+
+    private CloudConfigFactory testedObject;
+    private CloudConfig cloudConfigMock;
+
+    @Before
+    public void init() throws NoSuchFieldException, IllegalAccessException {
+        cloudConfigMock = mock(CloudConfig.class);
+        testedObject = new CloudConfigFactory();
+        setCloudConfig();
+    }
+
+    @Test
+    public void initializeCloudConfigSuccessful() throws MsoCloudIdentityNotFound, IOException {
+        ClassLoader classLoader = CloudConfigFactoryTest.class.getClassLoader();
+        String cloudConfigJsonFilePath = classLoader.getResource("cloud_config.json").getPath();
+        testedObject.initializeCloudConfig(cloudConfigJsonFilePath, REFRESH_TIMER_VALUE);
+        verify(cloudConfigMock).loadCloudConfig(cloudConfigJsonFilePath, REFRESH_TIMER_VALUE);
+    }
+
+    @Test
+    public void getValidCloudConfig() {
+        when(cloudConfigMock.isValidCloudConfig()).thenReturn(true);
+
+        testedObject.getCloudConfig();
+
+        verify(cloudConfigMock).clone();
+    }
+
+    @Test
+    public void getNotValidCloudConfig() {
+        when(cloudConfigMock.isValidCloudConfig()).thenReturn(false);
+
+        CloudConfig result = testedObject.getCloudConfig();
+
+        assertThat(result).isNotNull();
+        assertThat(result.getCloudSites()).isEmpty();
+        assertThat(result.getIdentityServices()).isEmpty();
+    }
+
+    @Test
+    public void reload_CloudConfigValid() throws IOException, MsoCloudIdentityNotFound {
+        when(cloudConfigMock.isValidCloudConfig()).thenReturn(true);
+
+        testedObject.reloadCloudConfig();
+
+        verify(cloudConfigMock).clone();
+        verify(cloudConfigMock).reloadPropertiesFile();
+    }
+
+    @Test
+    public void reload_CloudConfigNotValid()
+            throws IOException, MsoCloudIdentityNotFound {
+        when(cloudConfigMock.isValidCloudConfig()).thenReturn(false);
+
+        testedObject.reloadCloudConfig();
+
+        verify(cloudConfigMock).reloadPropertiesFile();
+    }
+
+    @Test
+    public void showCloudConfig() throws NoSuchFieldException, IllegalAccessException {
+        when(cloudConfigMock.isValidCloudConfig()).thenReturn(true);
+        when(cloudConfigMock.clone()).thenReturn(createCloudConfig("IdTest576", "identityTest456"));
+        Response response = testedObject.showCloudConfig();
+
+        assertThat(response.getStatus()).isEqualTo(200);
+        assertThat(response.getEntity().toString()).containsPattern("CloudSite:.*IdTest576")
+                .containsPattern("Cloud Identity Service:.*identityTest456");
+
+    }
+
+    @Test
+    public void resetClientCaches_Successful()  {
+        Response response = testedObject.resetClientCaches();
+        assertThat(response.getStatus()).isEqualTo(200);
+        assertThat(response.getEntity().toString()).isEqualTo("Client caches reset. All entries removed.");
+    }
+
+    @Test
+    public void cleanUpClientCache_Successful()  {
+        Response response = testedObject.cleanupClientCaches();
+        assertThat(response.getStatus()).isEqualTo(200);
+        assertThat(response.getEntity().toString()).isEqualTo("Client caches cleaned up. All expired entries removed.");
+    }
+
+    @Test
+    public void encryptPassword_Successful()  {
+        Response response = testedObject.encryptPassword("passTest123");
+        String expectedEncryptedPassword = CloudIdentity.encryptPassword("passTest123");
+        assertThat(response.getStatus()).isEqualTo(200);
+        assertThat(response.getEntity().toString()).isEqualTo("Encrypted Password = "+expectedEncryptedPassword);
+    }
+
+    private CloudConfig createCloudConfig(String cloudSiteId, String identityServiceId)
+            throws NoSuchFieldException, IllegalAccessException {
+        CloudConfig cloudConfig = new CloudConfig();
+        Map<String, CloudSite> cloudSiteMap = new HashMap<>();
+        CloudSite cs = new CloudSite();
+        cs.setId(cloudSiteId);
+        cloudSiteMap.put("keyTest", cs);
+        Field cloudSitesField = cloudConfig.getClass().getDeclaredField("cloudSites");
+        cloudSitesField.setAccessible(true);
+        cloudSitesField.set(cloudConfig, cloudSiteMap);
+
+        Map<String, CloudIdentity> identityServicesMap = new HashMap<>();
+        CloudIdentity cloudIdentity = new CloudIdentity();
+        cloudIdentity.setId(identityServiceId);
+        identityServicesMap.put("identityKey", cloudIdentity);
+
+        Field identityServicesField = cloudConfig.getClass().getDeclaredField("identityServices");
+        identityServicesField.setAccessible(true);
+        identityServicesField.set(cloudConfig, identityServicesMap);
+
+        return cloudConfig;
+    }
+
+    private void setCloudConfig()
+            throws NoSuchFieldException, IllegalAccessException {
+        Field field = testedObject.getClass().getDeclaredField(CLOUD_CONFIG_FIELD_NAME);
+        field.setAccessible(true);
+        field.set(testedObject, cloudConfigMock);
+    }
+
+}
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java
index 1c2501e..5b6be03 100644
--- a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java
@@ -20,161 +20,221 @@
 
 package org.openecomp.mso.cloud;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertTrue;
 
-import java.util.Optional;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
+import org.junit.Before;
+import org.junit.Test;
 import org.openecomp.mso.openstack.exceptions.MsoCloudIdentityNotFound;
 
 public class CloudConfigTest {
 
-    private static String cloudConfigJsonFilePath;
-    private static String cloudDefaultConfigJsonFilePath;
-    private static String cloudConfigInvalidJsonFilePath;
+    private static final int NUMBER_OF_CLOUD_SITES_IN_JSON_FILE = 4;
+    private static final int NUMBER_OF_IDENTITY_SERVICES_IN_JSON_FILE = 4;
+    private static final String CLOUD_SITES_FIELD_NAME = "cloudSites";
+    private static final String IDENTITY_SERVICE_FIELD_NAME = "identityServices";
+    private static final String CLOUD_SITE_DEFAULT = "default";
+    private static final String CLOUD_CONFIG_JSON_FILE_NAME = "cloud_config.json";
+    private static final String CLOUD_CONFIG_INVALID_JSON_FILE_NAME = "cloud_config_bad.json";
 
-    @BeforeClass
-    public static void preparePaths() {
-        ClassLoader classLoader = CloudConfigTest.class.getClassLoader();
-        cloudConfigJsonFilePath = classLoader.getResource("cloud_config.json").getPath();
-        cloudDefaultConfigJsonFilePath = classLoader.getResource("cloud_default_config.json").getPath();
-        cloudConfigInvalidJsonFilePath = classLoader.getResource("cloud_config_bad.json").getPath();
-    }
+    private CloudConfig testedObject;
+    private CloudSite cloudSite;
+    private CloudSite cloudSiteDefault;
 
-    private CloudConfig createTestObject(String jsonFilePath) throws MsoCloudIdentityNotFound {
-        CloudConfigFactory cloudConfigFactory = new CloudConfigFactory();
-        cloudConfigFactory.initializeCloudConfig(jsonFilePath, 1);
-        return cloudConfigFactory.getCloudConfig();
+    @Before
+    public void init() {
+        testedObject = new CloudConfig();
     }
 
     @Test
-    public void testGetCloudSites() throws MsoCloudIdentityNotFound {
-        CloudConfig con = createTestObject(cloudConfigJsonFilePath);
-        Map<String, CloudSite> siteMap = con.getCloudSites();
-        assertNotNull(siteMap);
+    public void cloudSite_returnEmptyOptionalIfIdIsNull() {
+        Optional<CloudSite> cloudConfigOpt = new CloudConfig().getCloudSite(null);
+        assertThat(cloudConfigOpt).isEmpty();
+    }
 
+    @Test
+    public void cloudSiteIsGotById_when_IdFound() throws NoSuchFieldException, IllegalAccessException {
+        setCloudSitesMap();
+        Optional<CloudSite> cloudSiteOpt = testedObject.getCloudSite(cloudSite.getId());
+        assertThat(cloudSiteOpt).isPresent();
+        assertThat(cloudSiteOpt.get().getId()).isEqualTo(cloudSite.getId());
+        assertThat(cloudSiteOpt.get().getClli()).isEqualTo(cloudSite.getClli());
+    }
+
+    @Test
+    public void cloudSiteIsGotByClli_when_IdNotFound() throws NoSuchFieldException, IllegalAccessException {
+        setCloudSitesMap();
+        Optional<CloudSite> cloudSiteOpt = testedObject.getCloudSite(cloudSite.getClli());
+        assertTrue(cloudSiteOpt.isPresent());
+        assertThat(cloudSiteOpt.get().getId()).isEqualTo(cloudSite.getId());
+        assertThat(cloudSiteOpt.get().getClli()).isEqualTo(cloudSite.getClli());
+    }
+
+    @Test
+    public void cloudSiteIsGotByDefault_when_IdAndClliNotFound() throws NoSuchFieldException, IllegalAccessException {
+        setCloudSitesMap();
+        Optional<CloudSite> cloudSiteOpt = testedObject.getCloudSite("not_existing_id");
+        assertTrue(cloudSiteOpt.isPresent());
+        assertThat(cloudSiteOpt.get().getId()).isEqualTo("not_existing_id");
+        assertThat(cloudSiteOpt.get().getClli()).isEqualTo(cloudSiteDefault.getClli());
+    }
+
+    @Test
+    public void cloudSiteNotFound_returnNull() {
+        assertThat(testedObject.getCloudSite("not_existing_id")).isEmpty();
+    }
+
+    @Test
+    public void identityServiceFoundById() throws NoSuchFieldException, IllegalAccessException {
+        CloudIdentity cloudIdentity = createCloudIdentity();
+        setIdentityServiceMap();
+        CloudIdentity cloudIdentityResult = testedObject.getIdentityService(cloudIdentity.getId());
+
+        assertThat(cloudIdentityResult).isNotNull();
+        assertThat(cloudIdentityResult.getId()).isEqualTo(cloudIdentity.getId());
+        assertThat(cloudIdentityResult.getMsoId()).isEqualTo(cloudIdentity.getMsoId());
+    }
+
+    @Test
+    public void defaultClodeSiteNotFound_returnNull() {
+        assertThat(testedObject.getIdentityService("not_existing_id")).isNull();
+    }
+
+    @Test
+    public void loadCloudConfigSuccessful() throws IOException, MsoCloudIdentityNotFound {
+        ClassLoader classLoader = CloudConfigTest.class.getClassLoader();
+        String cloudConfigJsonFilePath = classLoader.getResource(CLOUD_CONFIG_JSON_FILE_NAME).getPath();
+        testedObject.loadCloudConfig(cloudConfigJsonFilePath, 1);
+        assertThat(testedObject.isValidCloudConfig()).isTrue();
+        checkCloudSites();
+        checkIdentityServices();
+    }
+
+    @Test
+    public void loadCloudConfig_cloudIdentityNotFound() {
+        ClassLoader classLoader = CloudConfigTest.class.getClassLoader();
+        String cloudConfigInvalidJsonFilePath = classLoader.getResource(CLOUD_CONFIG_INVALID_JSON_FILE_NAME).getPath();
+        assertThatThrownBy(() -> testedObject.loadCloudConfig(cloudConfigInvalidJsonFilePath, 1))
+                .isInstanceOf(MsoCloudIdentityNotFound.class)
+                .hasMessage("Cloud Identity [MT Cloud site refers to a non-existing identity service: "
+                        + "MT_KEYSTONE_NOT_EXISTING] not found");
+        assertThat(testedObject.isValidCloudConfig()).isFalse();
+    }
+
+    private void checkCloudSites() {
+        Map<String, CloudSite> siteMap = testedObject.getCloudSites();
+        assertThat(siteMap).isNotEmpty().hasSize(NUMBER_OF_CLOUD_SITES_IN_JSON_FILE);
         CloudSite site1 = siteMap.get("MT");
         CloudSite site2 = siteMap.get("DAN");
         CloudSite site3 = siteMap.get("MTINJVCC101");
         CloudSite site4 = siteMap.get("MTSNJA4LCP1");
 
-        assertEquals("regionOne", site1.getRegionId());
-        assertEquals("MT_KEYSTONE", site1.getIdentityServiceId());
-        assertEquals("RegionOne", site2.getRegionId());
-        assertEquals("DAN_KEYSTONE", site2.getIdentityServiceId());
-        assertEquals("regionTwo", site3.getRegionId());
-        assertEquals("MTINJVCC101_DCP", site3.getIdentityServiceId());
-        assertEquals("mtsnjlcp1", site4.getRegionId());
-        assertEquals("MTSNJA3DCP1", site4.getIdentityServiceId());
+        assertThat(site1.getId()).isEqualTo("MT");
+        assertThat(site1.getRegionId()).isEqualTo("regionOne");
+        assertThat(site1.getIdentityServiceId()).isEqualTo("MT_KEYSTONE");
+        assertThat(site1.getIdentityService()).isNotNull();
+        assertThat(site1.getIdentityService().getId()).isEqualTo(site1.getIdentityServiceId());
+
+        assertThat(site2.getId()).isEqualTo("DAN");
+        assertThat(site2.getRegionId()).isEqualTo("RegionOne");
+        assertThat(site2.getIdentityServiceId()).isEqualTo("DAN_KEYSTONE");
+        assertThat(site2.getIdentityService()).isNotNull();
+        assertThat(site2.getIdentityService().getId()).isEqualTo(site2.getIdentityServiceId());
+
+        assertThat(site3.getId()).isEqualTo("MTINJVCC101");
+        assertThat(site3.getRegionId()).isEqualTo("regionTwo");
+        assertThat(site3.getIdentityServiceId()).isEqualTo("MTINJVCC101_DCP");
+        assertThat(site3.getIdentityService()).isNotNull();
+        assertThat(site3.getIdentityService().getId()).isEqualTo(site3.getIdentityServiceId());
+
+        assertThat(site4.getId()).isEqualTo("MTSNJA4LCP1");
+        assertThat(site4.getRegionId()).isEqualTo("mtsnjlcp1");
+        assertThat(site4.getIdentityServiceId()).isEqualTo("MTSNJA3DCP1");
+        assertThat(site4.getIdentityService()).isNotNull();
+        assertThat(site4.getIdentityService().getId()).isEqualTo(site4.getIdentityServiceId());
     }
 
-    @Test
-    public void testGetIdentityServices() throws MsoCloudIdentityNotFound {
-        CloudConfig con = createTestObject(cloudConfigJsonFilePath);
-        Map<String, CloudIdentity> identityMap = con.getIdentityServices();
-        assertNotNull(identityMap);
+    private void checkIdentityServices() {
+        Map<String, CloudIdentity> identityMap = testedObject.getIdentityServices();
+        assertThat(identityMap).isNotEmpty().hasSize(NUMBER_OF_IDENTITY_SERVICES_IN_JSON_FILE);
 
         CloudIdentity identity1 = identityMap.get("MT_KEYSTONE");
         CloudIdentity identity2 = identityMap.get("DAN_KEYSTONE");
         CloudIdentity identity3 = identityMap.get("MTINJVCC101_DCP");
         CloudIdentity identity4 = identityMap.get("MTSNJA3DCP1");
 
-        assertEquals("john", identity1.getMsoId());
-        assertEquals("changeme", identity1.getMsoPass());
-        assertEquals("admin", identity1.getAdminTenant());
-        assertEquals("_member_", identity1.getMemberRole());
-        assertFalse(identity1.hasTenantMetadata());
+        assertThat(identity1.getMsoId()).isEqualTo("john");
+        assertThat(identity1.getMsoPass()).isEqualTo("changeme");
+        assertThat(identity1.getAdminTenant()).isEqualTo("admin");
+        assertThat(identity1.getMemberRole()).isEqualTo("_member_");
+        assertThat(identity1.hasTenantMetadata()).isFalse();
 
-        assertEquals("mockId", identity2.getMsoId());
-        assertEquals("stack123", identity2.getMsoPass());
-        assertEquals("service", identity2.getAdminTenant());
-        assertEquals("_member_", identity2.getMemberRole());
-        assertFalse(identity2.hasTenantMetadata());
+        assertThat(identity2.getMsoId()).isEqualTo("mockId");
+        assertThat(identity2.getMsoPass()).isEqualTo("stack123");
+        assertThat(identity2.getAdminTenant()).isEqualTo("service");
+        assertThat(identity2.getMemberRole()).isEqualTo("_member_");
+        assertThat(identity2.hasTenantMetadata()).isFalse();
 
-        assertEquals("mockIdToo", identity3.getMsoId());
-        assertEquals("AICG@mm@@2015", identity3.getMsoPass());
-        assertEquals("service", identity3.getAdminTenant());
-        assertEquals("admin", identity3.getMemberRole());
-        assertTrue(identity3.hasTenantMetadata());
+        assertThat(identity3.getMsoId()).isEqualTo("mockIdToo");
+        assertThat(identity3.getMsoPass()).isEqualTo("AICG@mm@@2015");
+        assertThat(identity3.getAdminTenant()).isEqualTo("service");
+        assertThat(identity3.getMemberRole()).isEqualTo("admin");
+        assertThat(identity3.hasTenantMetadata()).isTrue();
 
-        assertEquals("mockIdToo", identity4.getMsoId());
-        assertEquals("2315QRS2015srq", identity4.getMsoPass());
-        assertEquals("service", identity4.getAdminTenant());
-        assertEquals("admin", identity4.getMemberRole());
-        assertTrue(identity4.hasTenantMetadata());
+        assertThat(identity4.getMsoId()).isEqualTo("mockIdToo");
+        assertThat(identity4.getMsoPass()).isEqualTo("2315QRS2015srq");
+        assertThat(identity4.getAdminTenant()).isEqualTo("service");
+        assertThat(identity4.getMemberRole()).isEqualTo("admin");
+        assertThat(identity4.hasTenantMetadata()).isTrue();
     }
 
     @Test
-    public void cloudSiteIsGotById_when_IdFound() throws MsoCloudIdentityNotFound {
-        CloudConfig con = createTestObject(cloudConfigJsonFilePath);
-        Optional<CloudSite> cloudSite = con.getCloudSite("MT");
-        assertTrue(cloudSite.isPresent());
-        assertEquals("regionOne", cloudSite.get().getRegionId());
-        assertEquals("MT_KEYSTONE", cloudSite.get().getIdentityServiceId());
+    public void cloneSuccessful() throws NoSuchFieldException, IllegalAccessException {
+        setCloudSitesMap();
+        setIdentityServiceMap();
+        assertThat(testedObject.clone()).isEqualTo(testedObject);
     }
 
-    @Test
-    public void cloudSiteIsGotByClli_when_IdNotFound() throws MsoCloudIdentityNotFound {
-        CloudConfig con = createTestObject(cloudConfigJsonFilePath);
-        Optional<CloudSite> cloudSite = con.getCloudSite("CS_clli");
-        assertTrue(cloudSite.isPresent());
-        assertEquals("clliRegion", cloudSite.get().getRegionId());
-        assertEquals("CS_clli", cloudSite.get().getClli());
-        assertEquals("CS_service", cloudSite.get().getIdentityServiceId());
+    private void setCloudSitesMap() throws NoSuchFieldException, IllegalAccessException {
+        Field field = testedObject.getClass().getDeclaredField(CLOUD_SITES_FIELD_NAME);
+        field.setAccessible(true);
+        Map<String, CloudSite> cloudSites = new HashMap<>();
+        cloudSite = createCloudSite("idTest1", "clliTest1");
+        cloudSiteDefault = createCloudSite(CLOUD_SITE_DEFAULT, "clliTest2");
+        cloudSites.put(cloudSite.getId(), cloudSite);
+        cloudSites.put(cloudSiteDefault.getId(), cloudSiteDefault);
+        field.set(testedObject, cloudSites);
     }
 
-    @Test
-    public void cloudSiteIsGotByDefault_when_IdAndClliNotFound() throws MsoCloudIdentityNotFound {
-        CloudConfig con = createTestObject(cloudDefaultConfigJsonFilePath);
-        Optional<CloudSite> cloudSite = con.getCloudSite("not_existing_id");
-        assertTrue(cloudSite.isPresent());
-        assertEquals("not_existing_id", cloudSite.get().getId());
-        assertEquals("not_existing_id", cloudSite.get().getRegionId());
+    private void setIdentityServiceMap() throws NoSuchFieldException, IllegalAccessException {
+        Field field = testedObject.getClass().getDeclaredField(IDENTITY_SERVICE_FIELD_NAME);
+        field.setAccessible(true);
+
+        Map<String, CloudIdentity> cloudIdentityMap = new HashMap<>();
+        CloudIdentity cloudIdentity = createCloudIdentity();
+        cloudIdentityMap.put(cloudIdentity.getId(), cloudIdentity);
+        field.set(testedObject, cloudIdentityMap);
     }
 
-    @Test
-    public void testGetIdentityService() throws MsoCloudIdentityNotFound {
-        CloudConfig con = createTestObject(cloudConfigJsonFilePath);
-        CloudIdentity identity1 = con.getIdentityService("MT_KEYSTONE");
-        assertNotNull(identity1);
-        assertEquals("john", identity1.getMsoId());
-        assertEquals("changeme", identity1.getMsoPass());
-        assertEquals("admin", identity1.getAdminTenant());
-        assertEquals("_member_", identity1.getMemberRole());
-        assertFalse(identity1.hasTenantMetadata());
-
-        CloudIdentity identity2 = con.getIdentityService("Test");
-        assertNull(identity2);
+    private CloudIdentity createCloudIdentity() {
+        CloudIdentity cloudIdentity = new CloudIdentity();
+        cloudIdentity.setId("identityTestId");
+        cloudIdentity.setMsoId("msoTestId");
+        return cloudIdentity;
     }
 
-    @Test(expected = MsoCloudIdentityNotFound.class)
-    public void testLoadWithWrongFile() throws MsoCloudIdentityNotFound {
-        createTestObject(cloudConfigInvalidJsonFilePath);
+    private CloudSite createCloudSite(String id, String clli) {
+        CloudSite cloudSite = new CloudSite();
+        cloudSite.setId(id);
+        cloudSite.setClli(clli);
+        cloudSite.setAic_version("2.5");
+        cloudSite.setIdentityService(createCloudIdentity());
+        return cloudSite;
     }
-
-    @Test
-    public void testReloadWithWrongFile() {
-        CloudConfigFactory cloudConfigFactory = new CloudConfigFactory();
-        try {
-            cloudConfigFactory.initializeCloudConfig(cloudConfigInvalidJsonFilePath, 1);
-            Assert.fail("MsoCloudIdentityNotFound was expected");
-        } catch (MsoCloudIdentityNotFound e) {
-
-        }
-        assertTrue("Should be an empty CloudConfig", cloudConfigFactory.getCloudConfig().getCloudSites().isEmpty());
-        assertTrue("Should be an empty CloudConfig",
-                cloudConfigFactory.getCloudConfig().getIdentityServices().isEmpty());
-        // Now reload the right config
-        cloudConfigFactory.changeMsoPropertiesFilePath(cloudConfigJsonFilePath);
-        cloudConfigFactory.reloadCloudConfig();
-        assertTrue("Flag valid Config should be true now that the cloud_config is correct",
-                cloudConfigFactory.getCloudConfig().isValidCloudConfig());
-    }
-
 }
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudSiteTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudSiteTest.java
new file mode 100644
index 0000000..4c5ceb2
--- /dev/null
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudSiteTest.java
@@ -0,0 +1,67 @@
+/*
+* ============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.cloud;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+public class CloudSiteTest {
+
+    @Mock
+    CloudIdentity ci= new CloudIdentity();
+    
+    @InjectMocks
+    CloudSite cs = new CloudSite();
+
+    
+@Before
+public void init(){
+    MockitoAnnotations.initMocks(this);
+ }
+ @Test
+    public void testCloudSite() {
+        cs.setAic_version("aic_version");
+        cs.setClli("clli");
+        cs.setId("id");
+        cs.setIdentityService(ci);
+        cs.setRegionId("regionId");
+        assert(cs.getAic_version().equals("aic_version"));
+        assert(cs.getClli().equals("clli"));
+        assert(cs.getId().equals("id"));
+        assert(cs.getIdentityService().equals(ci));
+        assert(cs.getRegionId().equals("regionId"));
+    }
+  @Test
+    public void testtoStringmethod(){
+        assert(cs.toString()!=null);
+    }
+  @Test
+    public void testhashCodemethod(){
+        assert(cs.hashCode()!=0);
+    }
+    @Test
+    public void testclone(){
+        assert(cs.clone()!=null);
+    }
+}
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/MsoTenantTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/MsoTenantTest.java
new file mode 100644
index 0000000..a1de54e
--- /dev/null
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/MsoTenantTest.java
@@ -0,0 +1,42 @@
+/*
+* ============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.openstack.beans;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+
+public class MsoTenantTest {
+ MsoTenant ms = new MsoTenant();
+    
+    @Test
+    public void test() {
+       Map<String, String> map = new HashMap<>();
+       map.put("id","name");
+       ms.setTenantId("tenantId");
+       ms.setTenantName("tenantName");
+       ms.setMetadata(map);
+       assert(ms.getMetadata().equals(map));
+       assert(ms.getTenantId().equals("tenantId"));
+       assert(ms.getTenantName().equals("tenantName"));
+    }
+}
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkRollbackTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkRollbackTest.java
new file mode 100644
index 0000000..d70c01d
--- /dev/null
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkRollbackTest.java
@@ -0,0 +1,69 @@
+/*
+* ============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.openstack.beans;
+
+import static org.junit.Assert.*;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.openecomp.mso.entity.MsoRequest;
+
+public class NetworkRollbackTest {
+    @Mock
+    MsoRequest ms = new MsoRequest();
+
+    @InjectMocks
+    NetworkRollback nr = new NetworkRollback();
+ 
+    @Test
+    public void test() {
+        List<Integer> vlans = new ArrayList();
+       vlans.add(1);
+       vlans.add(2); 
+        nr.setCloudId("cloudId");
+        nr.setModelCustomizationUuid("modelCustomizationUuid");
+        nr.setNetworkId("networkId");
+        nr.setNetworkName("networkName");
+        nr.setNetworkStackId("networkStackId");
+        nr.setNetworkType("networkType");;
+        nr.setNeutronNetworkId("neutronNetworkId");
+        nr.setPhysicalNetwork("physicalNetwork");
+        nr.setTenantId("tenantId");
+        nr.setNetworkCreated(false);
+        nr.setVlans(vlans);
+        nr.setMsoRequest(ms);
+        assert(nr.getCloudId().equals("cloudId"));
+        assert(nr.getModelCustomizationUuid().equals("modelCustomizationUuid"));
+        assert(nr.getNetworkId().equals("networkId"));
+        assert(nr.getNetworkName().equals("networkName"));
+        assert(nr.getNetworkStackId().equals("networkStackId"));
+        assert(nr.getNeutronNetworkId().equals("neutronNetworkId"));
+        assert(nr.getPhysicalNetwork().equals("physicalNetwork"));
+        assert(nr.getNetworkType().equals("networkType"));
+        assert(nr.getTenantId().equals("tenantId"));
+        assert(nr.getMsoRequest().equals(ms));
+        assertFalse(nr.getNetworkCreated());
+        assert(nr.getVlans().equals(vlans));
+        assert(nr.toString()!=null);    
+    }
+}
diff --git a/adapters/mso-adapter-utils/src/test/resources/cloud_config.json b/adapters/mso-adapter-utils/src/test/resources/cloud_config.json
index ff24633..ee3532f 100644
--- a/adapters/mso-adapter-utils/src/test/resources/cloud_config.json
+++ b/adapters/mso-adapter-utils/src/test/resources/cloud_config.json
@@ -44,8 +44,7 @@
 			"tenant_metadata": true,
 			"identity_server_type": "KEYSTONE",
 			"identity_authentication_type": "USERNAME_PASSWORD"
-		},
-		"CS_service": {}
+		}
 
 	},
 	"cloud_sites":
@@ -77,14 +76,8 @@
 			"clli": "MTSNJA4LCP1",
 			"aic_version": "2.5",
 			"identity_service_id": "MTSNJA3DCP1"
-		},
-		"CS":
-		{
-			"region_id": "clliRegion",
-			"clli": "CS_clli",
-			"aic_version": "2.5",
-			"identity_service_id": "CS_service"
 		}
+
 	}
 }
 }
diff --git a/adapters/mso-adapter-utils/src/test/resources/cloud_default_config.json b/adapters/mso-adapter-utils/src/test/resources/cloud_default_config.json
deleted file mode 100644
index 35d18e9..0000000
--- a/adapters/mso-adapter-utils/src/test/resources/cloud_default_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "cloud_config": {
-    "identity_services": {
-      "default_service": {}
-    },
-    "cloud_sites": {
-      "default": {
-        "region_id": "defaultRegion",
-        "identity_service_id": "default_service"
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/RequestInformationTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/RequestInformationTest.java
new file mode 100644
index 0000000..c6d815a
--- /dev/null
+++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/RequestInformationTest.java
@@ -0,0 +1,57 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 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.adapters.sdncrest;
+
+import org.junit.Assert;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class RequestInformationTest {
+
+    private RequestInformation requestInformation;
+
+    @Before
+    public void setUp() {
+        requestInformation = new RequestInformation();
+    }
+
+    @Test
+    public void testGetRequestId() {
+        requestInformation.setRequestId("requestId");
+        Assert.assertNotNull(requestInformation.getRequestId());
+        Assert.assertEquals(requestInformation.getRequestId(), "requestId");
+    }
+
+    @Test
+    public void testGetSource() {
+        requestInformation.setSource("source");
+        Assert.assertNotNull(requestInformation.getSource());
+        Assert.assertEquals(requestInformation.getSource(), "source");
+    }
+
+    @Test
+    public void testGetNotificationUrl() {
+        requestInformation.setNotificationUrl("notificationUrl");
+        Assert.assertNotNull(requestInformation.getNotificationUrl());
+        Assert.assertEquals(requestInformation.getNotificationUrl(), "notificationUrl");
+    }
+}
diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCEventTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCEventTest.java
new file mode 100644
index 0000000..81d888b
--- /dev/null
+++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCEventTest.java
@@ -0,0 +1,81 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 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.adapters.sdncrest;
+
+import static org.junit.Assert.*;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class SDNCEventTest {
+
+    private SDNCEvent sdncEvent;
+    private Map<String, String> param;
+    private String name = "name";
+    private String value = "value";
+
+    @Before
+    public void setUp() {
+        sdncEvent = new SDNCEvent();
+    }
+
+    @Test
+    public void testGetEventType() {
+        sdncEvent.setEventType("eventType");
+        Assert.assertNotNull(sdncEvent.getEventType());
+        Assert.assertEquals(sdncEvent.getEventType(), "eventType");
+    }
+
+    @Test
+    public void testGetEventCorrelatorType() {
+        sdncEvent.setEventCorrelatorType("eventCorrelatorType");
+        Assert.assertNotNull(sdncEvent.getEventCorrelatorType());
+        Assert.assertEquals(sdncEvent.getEventCorrelatorType(), "eventCorrelatorType");
+    }
+
+    @Test
+    public void testGetEventCorrelator() {
+        sdncEvent.setEventCorrelator("eventCorrelator");
+        Assert.assertNotNull(sdncEvent.getEventCorrelator());
+        Assert.assertEquals(sdncEvent.getEventCorrelator(), "eventCorrelator");
+    }
+
+    @Test
+    public void testGetParams() {
+        param = new HashMap<>();
+        param.put("paramKey", "paramValue");
+        sdncEvent.setParams(param);
+        Assert.assertNotNull(sdncEvent.getParams());
+        Assert.assertTrue(sdncEvent.getParams().containsKey("paramKey"));
+        Assert.assertTrue(sdncEvent.getParams().containsValue("paramValue"));
+    }
+
+    @Test
+    public void testAddParam() {
+        sdncEvent.addParam("name", "value");
+
+    }
+
+}
diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceErrorTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceErrorTest.java
new file mode 100644
index 0000000..df69b37
--- /dev/null
+++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceErrorTest.java
@@ -0,0 +1,51 @@
+/*
+* ============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.adapters.sdncrest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.mso.adapters.sdncrest.SDNCErrorCommon;
+import org.openecomp.mso.adapters.sdncrest.SDNCServiceError;
+
+public class SDNCServiceErrorTest {
+
+	@Mock
+	SDNCErrorCommon sec;
+	
+	@InjectMocks
+	SDNCServiceError ssc;
+	
+	@Before
+	public void init(){
+	    MockitoAnnotations.initMocks(this);
+	 }
+	
+	@Test
+	public void testSDNCServiceError() {
+		
+		ssc= new SDNCServiceError("id", "200",
+				"msg", "indicator");
+		assert(ssc!=null);		
+	}
+}
diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceRequestTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceRequestTest.java
new file mode 100644
index 0000000..c63f1b8
--- /dev/null
+++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceRequestTest.java
@@ -0,0 +1,79 @@
+/*
+* ============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.adapters.sdncrest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.mso.adapters.sdncrest.SDNCRequestCommon;
+import org.openecomp.mso.adapters.sdncrest.ServiceInformation;
+import org.openecomp.mso.adapters.sdncrest.RequestInformation;
+
+public class SDNCServiceRequestTest {
+
+	@Mock
+	SDNCRequestCommon src;
+	
+	@Mock
+	ServiceInformation si;
+	
+	@Mock
+	RequestInformation ri;
+	
+	@InjectMocks
+	SDNCServiceRequest ssr;
+	
+	@Before
+	public void init(){
+	    MockitoAnnotations.initMocks(this);
+	 }
+	
+	@Test
+	public void test() {
+		ssr= new SDNCServiceRequest("url", "timeout",
+				"sdncRequestId", "sdncService", "sdncOperation",
+				ri,
+				si, "sdncServiceDataType",
+				"sndcServiceData");
+		
+	ssr.setSDNCService("sdncService");
+	ssr.setSDNCServiceData("sndcServiceData");
+	ssr.setSDNCServiceDataType("sdncServiceDataType");
+	ssr.setBPTimeout("timeout");
+	ssr.setBPNotificationUrl("url");
+	ssr.setRequestInformation(ri);
+	ssr.setServiceInformation(si);
+	ssr.setSDNCOperation("sdncOperation");
+	ssr.setSDNCRequestId("sdncRequestId");
+	assert(ssr.getSDNCService().equals("sdncService"));
+	assert(ssr.getSDNCServiceData().equals("sndcServiceData"));
+	assert(ssr.getSDNCServiceDataType().equals("sdncServiceDataType"));
+	assert(ssr.getBPTimeout().equals("timeout"));
+	assert(ssr.getBPNotificationUrl().equals("url"));
+	assert(ssr.getRequestInformation().equals(ri));
+	assert(ssr.getServiceInformation().equals(si));
+	assert(ssr.getSDNCOperation().equals("sdncOperation"));
+	assert(ssr.getSDNCRequestId().equals("sdncRequestId"));	
+	}
+
+}
diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceResponseTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceResponseTest.java
new file mode 100644
index 0000000..9c4e98a
--- /dev/null
+++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceResponseTest.java
@@ -0,0 +1,58 @@
+/*
+* ============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.adapters.sdncrest;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.mso.adapters.sdncrest.SDNCResponseCommon;
+
+public class SDNCServiceResponseTest {
+
+	@Mock
+	SDNCResponseCommon src;
+	
+	@InjectMocks
+	SDNCServiceResponse ssr;
+	
+	@Before
+	public void init(){
+	    MockitoAnnotations.initMocks(this);
+	 }
+	
+	@Test
+	public void test() {
+		ssr=new SDNCServiceResponse("sdncRequestId", "200",
+				"msg", "indicator");
+		Map<String, String> mp = new HashMap<>();
+		mp.put("name", "value");
+		ssr.setParams(mp);
+		assert(ssr.getParams().equals(mp));
+		assertNotNull(ssr);
+	}
+}
diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/ServiceInformationTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/ServiceInformationTest.java
new file mode 100644
index 0000000..2b87bbf
--- /dev/null
+++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/ServiceInformationTest.java
@@ -0,0 +1,42 @@
+/*
+* ============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.adapters.sdncrest;
+
+import org.junit.Test;
+
+public class ServiceInformationTest {
+
+	
+	
+	@Test
+	public void test() {
+		ServiceInformation si= new ServiceInformation("id","service","GlobalId","name");
+		
+		si.setServiceInstanceId("id");
+		si.setServiceType("service");
+		si.setSubscriberGlobalId("GlobalId");
+		si.setSubscriberName("name");
+		assert(si.getServiceInstanceId().equals("id"));
+		assert(si.getServiceType().equals("service"));
+		assert(si.getSubscriberGlobalId().equals("GlobalId"));
+		assert(si.getSubscriberName().equals("name"));
+	}
+}
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/sdncrest/SDNCServiceRequestConnector.java b/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/sdncrest/SDNCServiceRequestConnector.java
index ab2c4ef..69e015e 100644
--- a/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/sdncrest/SDNCServiceRequestConnector.java
+++ b/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/sdncrest/SDNCServiceRequestConnector.java
@@ -115,7 +115,7 @@
 				} else if ("ack-final-indicator".equals(child.getNodeName())) {
 					ackFinalIndicator = child.getTextContent();
 				} else if ("response-parameters".equals(child.getNodeName())) {
-                    responseParameters.add((Element) child);
+                    responseParameters.add(child);
 				}
 			}
 
diff --git a/adapters/mso-sdnc-adapter/src/test/java/org/openecomp/mso/adapters/sdnc/impl/SDNCResponseTest.java b/adapters/mso-sdnc-adapter/src/test/java/org/openecomp/mso/adapters/sdnc/impl/SDNCResponseTest.java
new file mode 100644
index 0000000..f8867ae
--- /dev/null
+++ b/adapters/mso-sdnc-adapter/src/test/java/org/openecomp/mso/adapters/sdnc/impl/SDNCResponseTest.java
@@ -0,0 +1,49 @@
+/*
+* ============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.adapters.sdnc.impl;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class SDNCResponseTest {
+    
+   private SDNCResponse sdncresponse = new SDNCResponse(null, 0, null);
+    
+   @Test
+    public void testSDNCResponse() 
+   {
+       sdncresponse.setReqId("reqId");
+       sdncresponse.setRespCode(0);
+       sdncresponse.setRespMsg("respMsg");
+       sdncresponse.setSdncRespXml("sdncRespXml");
+       assertEquals(sdncresponse.getReqId(), "reqId");
+       assertEquals(sdncresponse.getRespCode(), 0);
+       assertEquals(sdncresponse.getRespMsg(), "respMsg");
+       assertEquals(sdncresponse.getSdncRespXml(),"sdncRespXml");         
+    }
+   
+   @Test
+   public void testtoString()
+   {
+       assert(sdncresponse.toString()!=null);
+   }
+}
+   
\ No newline at end of file
diff --git a/adapters/mso-tenant-adapter/src/test/java/org/openecomp/mso/adapters/tenant/exceptions/TenantAlreadyExistsTest.java b/adapters/mso-tenant-adapter/src/test/java/org/openecomp/mso/adapters/tenant/exceptions/TenantAlreadyExistsTest.java
new file mode 100644
index 0000000..7f30b70
--- /dev/null
+++ b/adapters/mso-tenant-adapter/src/test/java/org/openecomp/mso/adapters/tenant/exceptions/TenantAlreadyExistsTest.java
@@ -0,0 +1,32 @@
+/*
+* ============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.adapters.tenant.exceptions;
+
+import org.junit.Test;
+
+public class TenantAlreadyExistsTest {
+
+	@Test
+	public void test() {
+		TenantAlreadyExists tar= new TenantAlreadyExists("name", "cloudId", "tenantId");
+        assert(tar!=null);
+	}
+}
\ No newline at end of file
diff --git a/adapters/mso-tenant-adapter/src/test/java/org/openecomp/mso/adapters/tenant/exceptions/TenantExceptionBeanTest.java b/adapters/mso-tenant-adapter/src/test/java/org/openecomp/mso/adapters/tenant/exceptions/TenantExceptionBeanTest.java
new file mode 100644
index 0000000..c2f1d4e
--- /dev/null
+++ b/adapters/mso-tenant-adapter/src/test/java/org/openecomp/mso/adapters/tenant/exceptions/TenantExceptionBeanTest.java
@@ -0,0 +1,47 @@
+/*
+* ============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.adapters.tenant.exceptions;
+
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.openecomp.mso.openstack.exceptions.MsoExceptionCategory;
+
+public class TenantExceptionBeanTest {
+
+@Mock
+private MsoExceptionCategory mec;
+
+@InjectMocks
+private TenantExceptionBean teb;
+
+@Test
+	public void test() {
+        teb =new TenantExceptionBean("message",mec);
+        teb.setMessage("message");
+        teb.setCategory(MsoExceptionCategory.INTERNAL);
+        teb.setCategory(MsoExceptionCategory.IO);
+        teb.setCategory(MsoExceptionCategory.OPENSTACK);
+        teb.setCategory(MsoExceptionCategory.USERDATA);
+        assert(teb.getMessage().equals("message"));
+        assert(teb.getCategory()!=null);
+	}
+}
diff --git a/adapters/mso-tenant-adapter/src/test/java/org/openecomp/mso/adapters/tenant/exceptions/TenantExceptionTest.java b/adapters/mso-tenant-adapter/src/test/java/org/openecomp/mso/adapters/tenant/exceptions/TenantExceptionTest.java
new file mode 100644
index 0000000..32e1fd1
--- /dev/null
+++ b/adapters/mso-tenant-adapter/src/test/java/org/openecomp/mso/adapters/tenant/exceptions/TenantExceptionTest.java
@@ -0,0 +1,49 @@
+/*
+* ============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.adapters.tenant.exceptions;
+
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.openecomp.mso.openstack.exceptions.MsoExceptionCategory;
+
+public class TenantExceptionTest {
+	
+	@Mock
+	private TenantExceptionBean teb;
+	
+	@Mock
+	private MsoExceptionCategory mec;
+	
+	@InjectMocks
+	private TenantException te;
+	
+	@Test
+	public void test() {
+	    teb=new TenantExceptionBean("message");
+		teb.setMessage("message");
+		teb.setCategory(MsoExceptionCategory.INTERNAL);
+	    te = new TenantException("message", mec);
+	    te.setFaultInfo(teb);
+	    assert(te.getFaultInfo()!=null);
+	    assert(te.getFaultInfo().equals(teb));
+	}
+}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcManager.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcManager.java
index 2c2143c..6f06fbf 100644
--- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcManager.java
+++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcManager.java
@@ -398,7 +398,7 @@
 
         String url;
         String originalUrl;
-        originalUrl = (String)nfvoUrlMap.get(step);
+        originalUrl = nfvoUrlMap.get(step);
         url = String.format(originalUrl, variable);
         return url;
 
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/model/RestfulResponse.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/model/RestfulResponse.java
index 483c952..e4f7f30 100644
--- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/model/RestfulResponse.java
+++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/model/RestfulResponse.java
@@ -65,7 +65,7 @@
 

     public int getRespHeaderInt(String key) {

         if(this.respHeaderMap != null) {

-            String result = (String)this.respHeaderMap.get(key);

+            String result = this.respHeaderMap.get(key);

             if(result != null) {

                 return Integer.parseInt(result);

             }

@@ -75,7 +75,7 @@
 

     public long getRespHeaderLong(String key) {

         if(this.respHeaderMap != null) {

-            String result = (String)this.respHeaderMap.get(key);

+            String result = this.respHeaderMap.get(key);

             if(result != null) {

                 return Long.parseLong(result);

             }

@@ -85,7 +85,7 @@
 

     public String getRespHeaderStr(String key) {

         if(this.respHeaderMap != null) {

-            return ((String)this.respHeaderMap.get(key));

+            return this.respHeaderMap.get(key);

         }

         return null;

     }

diff --git a/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VfRollbackTest.java b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VfRollbackTest.java
new file mode 100644
index 0000000..03de139
--- /dev/null
+++ b/adapters/mso-vnf-adapter/src/test/java/org/openecomp/mso/adapters/vnf/VfRollbackTest.java
@@ -0,0 +1,69 @@
+/*

+* ============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.adapters.vnf;

+import static org.junit.Assert.assertEquals;

+import org.junit.Test;

+public class VfRollbackTest {

+	private VfRollback vfRollback = new VfRollback();

+

+	@Test

+	public void test() {

+		vfRollback.setVnfId("vnfId");

+		vfRollback.setTenantId("tenantId");

+		vfRollback.setCloudSiteId("cloudId");

+		vfRollback.setTenantCreated(true);

+		vfRollback.setVnfCreated(true);

+		vfRollback.setMsoRequest(null);

+		vfRollback.setVolumeGroupName("volumeGroupName");

+		vfRollback.setVolumeGroupId("volumeGroupId");

+		vfRollback.setRequestType("requestType");

+		vfRollback.setVolumeGroupHeatStackId("volumeGroupHeatStackId");

+		vfRollback.setBaseGroupHeatStackId("baseGroupHeatStackId");

+		vfRollback.setIsBase(true);

+		vfRollback.setVfModuleStackId("vfModuleStackId");

+		assert(vfRollback.getVnfId() != null);

+		assert(vfRollback.getTenantId() != null);

+		assert(vfRollback.getCloudSiteId() != null);

+		assert(vfRollback.getVolumeGroupName() != null);

+		assert(vfRollback.getVolumeGroupId() != null);

+		assert(vfRollback.getRequestType() != null);

+		assert(vfRollback.getVolumeGroupHeatStackId() != null);

+		assert(vfRollback.getBaseGroupHeatStackId() != null);

+		assert(vfRollback.getVfModuleStackId() != null);

+		assertEquals(vfRollback.getVnfId(), "vnfId");

+		assertEquals(vfRollback.getTenantId(),"tenantId");

+		assertEquals(vfRollback.getCloudSiteId(), "cloudId");

+		assertEquals(vfRollback.getTenantCreated(), true);

+		assertEquals(vfRollback.getVnfCreated(), true);

+		assertEquals(vfRollback.getMsoRequest(), null);

+		assertEquals(vfRollback.getVolumeGroupName(), "volumeGroupName");

+		assertEquals(vfRollback.getVolumeGroupId(), "volumeGroupId");

+		assertEquals(vfRollback.getRequestType(), "requestType");

+		assertEquals(vfRollback.getVolumeGroupHeatStackId(), "volumeGroupHeatStackId");

+		assertEquals(vfRollback.getBaseGroupHeatStackId(), "baseGroupHeatStackId");

+		assertEquals(vfRollback.isBase(), true);

+		assertEquals(vfRollback.getVfModuleStackId(), "vfModuleStackId");	

+	}

+	

+	@Test

+	public void testtoString() {

+		assert(vfRollback.toString() != null);

+		}

+}

diff --git a/aria/aria-rest-java-client/pom.xml b/aria/aria-rest-java-client/pom.xml
index 0af9923..adfc253 100755
--- a/aria/aria-rest-java-client/pom.xml
+++ b/aria/aria-rest-java-client/pom.xml
@@ -23,7 +23,7 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>aria-client</groupId>
+    <groupId>org.onap.so</groupId>
     <artifactId>aria-client</artifactId>
     <version>1.2.0-SNAPSHOT</version>
 
diff --git a/aria/pom.xml b/aria/pom.xml
index 95ef93b..c2617da 100644
--- a/aria/pom.xml
+++ b/aria/pom.xml
@@ -17,7 +17,7 @@
 
 	<modules>
 		<module>aria-rest-java-client</module>
-		<module>aria-rest-server</module>
+		<!-- <module>aria-rest-server</module> -->
 		<!-- <module>multivim-plugin</module> -->
 	</modules>
 </project>
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java
index 33f64c8..3f05720 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018 Huawei 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.
@@ -44,7 +44,7 @@
 public class ResourceRequestBuilder {
 
     public static String CUSTOMIZATION_UUID = "customizationUUID";
-    public static String SERVICE_URL_TOSCA_CSAR = "http://localhost:3099/serviceToscaCsar?serviceModelUuid=";
+    public static String SERVICE_URL_TOSCA_CSAR = "http://localhost:8080/ecomp/mso/catalog/v3/serviceToscaCsar?serviceModelUuid=";
 
     private static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA);
 
@@ -114,13 +114,13 @@
     private static String getCsarFromUuid(String uuid) throws Exception {
 
         ResteasyClient client = new ResteasyClientBuilder().build();
-        ResteasyWebTarget target = client.target(SERVICE_URL_TOSCA_CSAR + uuid + "\"");
+        ResteasyWebTarget target = client.target(SERVICE_URL_TOSCA_CSAR + uuid);
         Response response = target.request().get();
         String value = response.readEntity(String.class);
 
         HashMap<String,String> map = new Gson().fromJson(value, new TypeToken<HashMap<String, String>>(){}.getType());
 
-        File csarFile = new File(System.getProperty("mso.config.path") + "ASDC/" + map.get("NAME"));
+        File csarFile = new File(System.getProperty("mso.config.path") + "ASDC/" + map.get("name"));
 
         if (!csarFile.exists()) {
             throw new Exception("csar file does not exist.");
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTest.java
index 6f0095f..849aae8 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTest.java
@@ -133,8 +133,7 @@
 		List<ResponseTransformer> transformerList = new ArrayList<ResponseTransformer>();

 

 		for (Field field : getClass().getFields()) {

-			WorkflowTestTransformer annotation = (WorkflowTestTransformer)

-				field.getAnnotation(WorkflowTestTransformer.class);

+			WorkflowTestTransformer annotation = field.getAnnotation(WorkflowTestTransformer.class);

 

 			if (annotation == null) {

 				continue;

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilderTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilderTest.java
index 262c12e..54442b1 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilderTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilderTest.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP - SO
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018 Huawei 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.
diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/PropertyConfigurationSetup.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/PropertyConfigurationSetup.java
index a1719a9..98659d2 100644
--- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/PropertyConfigurationSetup.java
+++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/PropertyConfigurationSetup.java
@@ -217,7 +217,7 @@
 			String newTimestamp = PropertyConfiguration.getInstance().getProperties(type)
 				.get(PropertyConfiguration.TIMESTAMP_PROPERTY);
 
-			if (newTimestamp != oldTimestamp) {
+			if (!newTimestamp.equals(oldTimestamp)) {
 				return;
 			}
 
diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/json/JsonUtils.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/json/JsonUtils.java
index b0152a1..bfad9ba 100644
--- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/json/JsonUtils.java
+++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/json/JsonUtils.java
@@ -327,7 +327,7 @@
 					return null;

 				} else {

 					if (rawValue instanceof String) {

-						msoLogger.debug("getJsonValue(): the raw value is a String Object=" + ((String) rawValue));

+						msoLogger.debug("getJsonValue(): the raw value is a String Object=" + rawValue);

 						return (String) rawValue;

 					} else {

 						msoLogger.debug("getJsonValue(): the raw value is NOT a String Object=" + rawValue.toString());

@@ -356,7 +356,7 @@
 					return null;

 				} else {

 					if (rawValue instanceof String) {

-						msoLogger.debug("getJsonNodeValue(): the raw value is a String Object=" + ((String) rawValue));

+						msoLogger.debug("getJsonNodeValue(): the raw value is a String Object=" + rawValue);

 						return (String) rawValue;

 					} else {

 						msoLogger.debug("getJsonNodeValue(): the raw value is NOT a String Object=" + rawValue.toString());

@@ -388,7 +388,7 @@
 					return 0;

 				} else {

 					if (rawValue instanceof Integer) {

-						msoLogger.debug("getJsonValue(): the raw value is an Integer Object=" + ((String) rawValue));

+						msoLogger.debug("getJsonValue(): the raw value is an Integer Object=" + rawValue);

 						return (Integer) rawValue;

 					} else {

 						msoLogger.debug("getJsonValue(): the raw value is NOT an Integer Object=" + rawValue.toString());

@@ -416,7 +416,7 @@
 					return false;

 				} else {

 					if (rawValue instanceof Boolean) {

-						msoLogger.debug("getJsonValue(): the raw value is a Boolean Object=" + ((String) rawValue));

+						msoLogger.debug("getJsonValue(): the raw value is a Boolean Object=" + rawValue);

 						return (Boolean) rawValue;

 					} else {

 						msoLogger.debug("getJsonValue(): the raw value is NOT an Boolean Object=" + rawValue.toString());

@@ -462,7 +462,7 @@
 				return null;

 			} else {

 				if (rawValue instanceof JSONArray) {

-					msoLogger.debug("getJsonParamValue(): keys=" + keys + " points to JSONArray: " + ((JSONArray) rawValue).toString());

+					msoLogger.debug("getJsonParamValue(): keys=" + keys + " points to JSONArray: " + rawValue.toString());

 					int arrayLen = ((JSONArray) rawValue).length();

 					if (index < 0 || arrayLen < index+1) {

 						msoLogger.debug("getJsonParamValue(): index: " + index + " is out of bounds for array size of " + arrayLen);

@@ -549,7 +549,7 @@
 				msoLogger.debug("getJsonValueForKey(): iterating over the keys");

 				Iterator <String> itr = jsonObj.keys();

 				while (itr.hasNext()) {

-					String nextKey = (String) itr.next();

+					String nextKey = itr.next();

 					Object obj = jsonObj.get(nextKey);

 					if (obj instanceof JSONObject) {

 						msoLogger.debug("getJsonValueForKey(): key=" + nextKey + ", points to JSONObject, recursive call");

@@ -592,7 +592,7 @@
 				msoLogger.debug("getJsonValueForKey(): iterating over the keys");

 				Iterator <String> itr = jsonObj.keys();

 				while (itr.hasNext()) {

-					String nextKey = (String) itr.next();

+					String nextKey = itr.next();

 					Object obj = jsonObj.get(nextKey);

 					if (obj instanceof JSONObject) {

 						msoLogger.debug("getJsonValueForKey(): key=" + nextKey + ", points to JSONObject, recursive call");

@@ -634,7 +634,7 @@
 				msoLogger.debug("getJsonBooleanValueForKey(): iterating over the keys");

 				Iterator <String> itr = jsonObj.keys();

 				while (itr.hasNext()) {

-					String nextKey = (String) itr.next();

+					String nextKey = itr.next();

 					Object obj = jsonObj.get(nextKey);

 					if (obj instanceof JSONObject) {

 						msoLogger.debug("getJsonBooleanValueForKey(): key=" + nextKey + ", points to JSONObject, recursive call");

@@ -690,7 +690,7 @@
 		if (!jsonValueExists(jsonStr, keys)) {

 			return putJsonValue(jsonStr, keys, value);

 		} else {

-			msoLogger.debug("addJsonValue(): JSON add failed, key=" + keys + "/value=" + (String) value + " already exists");

+			msoLogger.debug("addJsonValue(): JSON add failed, key=" + keys + "/value=" + value + " already exists");

 			return jsonStr;

 		}

 	}

@@ -826,7 +826,7 @@
 						msoLogger.debug("putJsonValue(): key=" + keyStr + " points to json object");

 						jsonObj = (JSONObject) keyValue;

 					} else {

-						msoLogger.debug("putJsonValue(): key=" + keyStr + " not the last key but points to non-json object: " + (String) keyValue);

+						msoLogger.debug("putJsonValue(): key=" + keyStr + " not the last key but points to non-json object: " + keyValue);

 						return null;

 					}

 				} else { // at the last/new key value

diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/plugins/LoggingAndURNMappingPlugin.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/plugins/LoggingAndURNMappingPlugin.java
index 730c145..b66169d 100644
--- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/plugins/LoggingAndURNMappingPlugin.java
+++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/plugins/LoggingAndURNMappingPlugin.java
@@ -421,7 +421,7 @@
 				try {
 					String id = execution.getId();
 					if ("START".equals(event) && id != null ) {
-						startTimes.put(id, (Long)System.currentTimeMillis());
+						startTimes.put(id, System.currentTimeMillis());
 					} else if ("END".equals(event) && id != null) {
 						String prefix = (String) execution.getVariable("prefix");
 
diff --git a/bpmn/MSOCoreBPMN/src/test/java/org/openecomp/mso/bpmn/core/TestBaseTask.java b/bpmn/MSOCoreBPMN/src/test/java/org/openecomp/mso/bpmn/core/TestBaseTask.java
index 2d204c3..d434ac7 100644
--- a/bpmn/MSOCoreBPMN/src/test/java/org/openecomp/mso/bpmn/core/TestBaseTask.java
+++ b/bpmn/MSOCoreBPMN/src/test/java/org/openecomp/mso/bpmn/core/TestBaseTask.java
@@ -58,8 +58,8 @@
 		Map<String, Object> variables = new HashMap<>();
 		variables.put("firstName", "Jane");
 		variables.put("lastName", "Doe");
-		variables.put("age", (Integer)25);
-		variables.put("lastVisit", (Long)1438270117000L);
+		variables.put("age", 25);
+		variables.put("lastVisit", 1438270117000L);
 
 		RuntimeService runtimeService = processEngineRule.getRuntimeService();
 		assertNotNull(runtimeService);
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateSDNCNetworkResource.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateSDNCNetworkResource.groovy
new file mode 100644
index 0000000..400b0d4
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateSDNCNetworkResource.groovy
@@ -0,0 +1,144 @@
+/*-

+ * ============LICENSE_START=======================================================

+ * OPENECOMP - 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.common.scripts.AbstractServiceTaskProcessor 

+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil 

+import org.openecomp.mso.bpmn.core.WorkflowException 

+import org.openecomp.mso.bpmn.core.json.JsonUtils 

+import org.openecomp.mso.rest.APIResponse

+

+import java.util.UUID;

+

+import org.camunda.bpm.engine.delegate.BpmnError 

+import org.camunda.bpm.engine.runtime.Execution

+import org.apache.commons.lang3.*

+import org.apache.commons.codec.binary.Base64;

+import org.springframework.web.util.UriUtils 

+import org.openecomp.mso.rest.RESTClient 

+import org.openecomp.mso.rest.RESTConfig

+import org.openecomp.mso.rest.APIResponse;

+

+/**

+ * This groovy class supports the <class>CreateSDNCCNetworkResource.bpmn</class> process.

+ * flow for SDNC Network Resource Create

+ */

+public class CreateSDNCCNetworkResource extends AbstractServiceTaskProcessor {

+

+    String vfcUrl = "/vfc/rest/v1/vfcadapter"

+    

+    String host = "http://mso.mso.testlab.openecomp.org:8080"

+    

+    ExceptionUtil exceptionUtil = new ExceptionUtil()

+

+    JsonUtils jsonUtil = new JsonUtils()

+    

+    /**

+     * Pre Process the BPMN Flow Request

+     * Inclouds:

+     * generate the nsOperationKey

+     * generate the nsParameters

+     */

+    public void preProcessRequest (Execution execution) {

+	   def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

+       String msg = ""

+       utils.log("INFO", " *** preProcessRequest() *** ", isDebugEnabled)

+       try {

+           //deal with nsName and Description

+           String nsServiceName = execution.getVariable("nsServiceName")

+           String nsServiceDescription = execution.getVariable("nsServiceDescription")

+           utils.log("INFO", "nsServiceName:" + nsServiceName + " nsServiceDescription:" + nsServiceDescription, isDebugEnabled)

+           //deal with operation key

+           String globalSubscriberId = execution.getVariable("globalSubscriberId")

+           utils.log("INFO", "globalSubscriberId:" + globalSubscriberId, isDebugEnabled)

+           String serviceType = execution.getVariable("serviceType")

+           utils.log("INFO", "serviceType:" + serviceType, isDebugEnabled)

+           String serviceId = execution.getVariable("serviceId")

+           utils.log("INFO", "serviceId:" + serviceId, isDebugEnabled)

+           String operationId = execution.getVariable("operationId")

+           utils.log("INFO", "serviceType:" + serviceType, isDebugEnabled)

+           String nodeTemplateUUID = execution.getVariable("resourceUUID")

+           utils.log("INFO", "nodeTemplateUUID:" + nodeTemplateUUID, isDebugEnabled)

+           /*

+            * segmentInformation needed as a object of segment

+            * {

+            *     "domain":"",

+            *     "nodeTemplateName":"",

+            *     "nodeType":"",

+            *     "nsParameters":{

+            *       //this is the nsParameters sent to VF-C

+            *     }

+            * }

+            */

+           String nsParameters = execution.getVariable("resourceParameters")

+           utils.log("INFO", "nsParameters:" + nsParameters, isDebugEnabled)

+           String nsOperationKey = """{

+                   "globalSubscriberId":"${globalSubscriberId}",

+                   "serviceType":"${serviceType}",

+                   "serviceId":"${serviceId}",

+                   "operationId":"${operationId}",

+                   "nodeTemplateUUID":"${nodeTemplateUUID}"

+                    }"""

+           execution.setVariable("nsOperationKey", nsOperationKey);

+           execution.setVariable("nsParameters", nsParameters)

+           

+

+       } catch (BpmnError e) {

+           throw e;

+       } catch (Exception ex){

+           msg = "Exception in preProcessRequest " + ex.getMessage()

+           utils.log("INFO", msg, isDebugEnabled)

+           exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)

+       }

+       utils.log("INFO"," ***** Exit preProcessRequest *****",  isDebugEnabled)

+	}

+

+    

+    /**

+     * post request

+     * url: the url of the request

+     * requestBody: the body of the request

+     */

+    private APIResponse postRequest(Execution execution, String url, String requestBody){

+        def isDebugEnabled = execution.getVariable("isDebugLogEnabled")

+        utils.log("INFO"," ***** Started Execute VFC adapter Post Process *****",  isDebugEnabled)

+        utils.log("INFO","url:"+url +"\nrequestBody:"+ requestBody,  isDebugEnabled)

+        APIResponse apiResponse = null

+        try{

+            RESTConfig config = new RESTConfig(url);

+            RESTClient client = new RESTClient(config).addHeader("Content-Type", "application/json").addHeader("Accept","application/json").addHeader("Authorization","Basic QlBFTENsaWVudDpwYXNzd29yZDEk");

+            apiResponse = client.httpPost(requestBody)

+            utils.log("INFO","response code:"+ apiResponse.getStatusCode() +"\nresponse body:"+ apiResponse.getResponseBodyAsString(),  isDebugEnabled)    

+            utils.log("INFO","======== Completed Execute VF-C adapter Post Process ======== ",  isDebugEnabled)

+        }catch(Exception e){

+            utils.log("ERROR","Exception occured while executing AAI Post Call. Exception is: \n" + e,  isDebugEnabled)

+            throw new BpmnError("MSOWorkflowException")

+        }        

+        return apiResponse

+    }

+    

+    public void postCreateSDNCCall(Execution execution){

+        

+    }

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy
similarity index 98%
rename from bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy
rename to bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy
index 06cf8c3..970a4f7 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy
@@ -44,7 +44,7 @@
  * This groovy class supports the <class>DoCreateVFCNetworkServiceInstance.bpmn</class> process.

  * flow for VFC Network Service Create

  */

-public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProcessor {

+public class CreateVFCNSResource extends AbstractServiceTaskProcessor {

 

     String vfcUrl = "/vfc/rest/v1/vfcadapter"

     

@@ -54,7 +54,7 @@
 

     JsonUtils jsonUtil = new JsonUtils()

     

-    /**

+    /**CreateVFCNSResource

      * Pre Process the BPMN Flow Request

      * Inclouds:

      * generate the nsOperationKey

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
index c91f353..44eaa34 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
@@ -118,6 +118,15 @@
 			} else {
 				execution.setVariable("serviceType", serviceType)
 			}
+			
+			//operationId
+			String operationId = jsonUtil.getJsonValue(siRequest, "operationId")
+		 	if (isBlank(operationId)) {
+		 		operationId = UUID.randomUUID().toString()
+		 	 }   
+			execution.setVariable("operationId", operationId) 
+			execution.setVariable("operationType", "UPDATE")
+			
 			execution.setVariable("URN_mso_adapters_openecomp_db_endpoint","http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter")
 
 		} catch (BpmnError e) {
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateSDNCNetworkResource.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateSDNCNetworkResource.bpmn
new file mode 100644
index 0000000..c88f787
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateSDNCNetworkResource.bpmn
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0">
+  <bpmn:process id="CreateSDNCNetworkResource" name="CreateSDNCNetworkResource" isExecutable="true">
+    <bpmn:startEvent id="createNS_StartEvent" name="createNS_StartEvent">
+      <bpmn:outgoing>SequenceFlow_1qo2pln</bpmn:outgoing>
+    </bpmn:startEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_1qo2pln" sourceRef="createNS_StartEvent" targetRef="PreprocessIncomingRequest_task" />
+    <bpmn:sequenceFlow id="SequenceFlow_0khtova" sourceRef="PreprocessIncomingRequest_task" targetRef="CallActivity_1600xlj" />
+    <bpmn:scriptTask id="PreprocessIncomingRequest_task" name="Preprocess Incoming Request" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1qo2pln</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0khtova</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new CreateSDNCNetworkResource()
+dcsi.preProcessRequest(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:endEvent id="EndEvent_1x6k78c" name="create SDNC call end">
+      <bpmn:incoming>SequenceFlow_0ow44q0</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:callActivity id="CallActivity_1600xlj" name="Call SDNC RSRC Create&#10; Adapter V1&#10;" calledElement="sdncAdapter">
+      <bpmn:extensionElements>
+        <camunda:in source="CRENWKI_activateSDNCRequest" target="sdncAdapterWorkflowRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:out source="sdncAdapterResponse" target="CRENWKI_activateSDNCResponse" />
+        <camunda:out source="SDNCA_ResponseCode" target="CRENWKI_sdncActivateReturnCode" />
+        <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+      </bpmn:extensionElements>
+      <bpmn:incoming>SequenceFlow_0khtova</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1xk5xed</bpmn:outgoing>
+    </bpmn:callActivity>
+    <bpmn:sequenceFlow id="SequenceFlow_1xk5xed" sourceRef="CallActivity_1600xlj" targetRef="Task_023hred" />
+    <bpmn:sequenceFlow id="SequenceFlow_0ow44q0" sourceRef="Task_023hred" targetRef="EndEvent_1x6k78c" />
+    <bpmn:scriptTask id="Task_023hred" name="post SDNC create call">
+      <bpmn:incoming>SequenceFlow_1xk5xed</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0ow44q0</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new CreateSDNCNetworkResource()
+dcsi.postCreateSDNCCall(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+  </bpmn:process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="CreateSDNCNetworkResource">
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="createNS_StartEvent">
+        <dc:Bounds x="175" y="111" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="152" y="147" width="83" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1qo2pln_di" bpmnElement="SequenceFlow_1qo2pln">
+        <di:waypoint xsi:type="dc:Point" x="211" y="129" />
+        <di:waypoint xsi:type="dc:Point" x="251" y="129" />
+        <di:waypoint xsi:type="dc:Point" x="251" y="129" />
+        <di:waypoint xsi:type="dc:Point" x="293" y="129" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="266" y="123" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0khtova_di" bpmnElement="SequenceFlow_0khtova">
+        <di:waypoint xsi:type="dc:Point" x="393" y="129" />
+        <di:waypoint xsi:type="dc:Point" x="544" y="129" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="423.5" y="108" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_03j6ogo_di" bpmnElement="PreprocessIncomingRequest_task">
+        <dc:Bounds x="293" y="89" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_15pcuuc_di" bpmnElement="EndEvent_1x6k78c">
+        <dc:Bounds x="951" y="111" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="912" y="153" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_1600xlj_di" bpmnElement="CallActivity_1600xlj">
+        <dc:Bounds x="544" y="89" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1xk5xed_di" bpmnElement="SequenceFlow_1xk5xed">
+        <di:waypoint xsi:type="dc:Point" x="644" y="129" />
+        <di:waypoint xsi:type="dc:Point" x="800" y="129" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="677" y="108" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0ow44q0_di" bpmnElement="SequenceFlow_0ow44q0">
+        <di:waypoint xsi:type="dc:Point" x="900" y="129" />
+        <di:waypoint xsi:type="dc:Point" x="951" y="129" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="880.5" y="108" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0gyej62_di" bpmnElement="Task_023hred">
+        <dc:Bounds x="800" y="89" width="100" height="80" />
+      </bpmndi:BPMNShape>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVFCNSResource.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVFCNSResource.bpmn
index 29dbca4..e6d4af3 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVFCNSResource.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVFCNSResource.bpmn
@@ -11,21 +11,21 @@
       <bpmn:incoming>SequenceFlow_0khtova</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1uiz85h</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def dcsi = new DoCreateVFCNetworkServiceInstance()
+def dcsi = new CreateVFCNSResource()
 dcsi.createNetworkService(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:scriptTask id="PreprocessIncomingRequest_task" name="Preprocess Incoming Request" scriptFormat="groovy">
       <bpmn:incoming>SequenceFlow_1qo2pln</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_0khtova</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def dcsi = new DoCreateVFCNetworkServiceInstance()
+def dcsi = new CreateVFCNSResource()
 dcsi.preProcessRequest(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:scriptTask id="instantiate_NSTask" name="Instantiate Network Service" scriptFormat="groovy">
       <bpmn:incoming>createNSSuccess_SequenceFlow</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1ywe21t</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def dcsi = new DoCreateVFCNetworkServiceInstance()
+def dcsi = new CreateVFCNSResource()
 dcsi.instantiateNetworkService(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:exclusiveGateway id="ExclusiveGateway_0zfksms" name="Create NS Success?">
@@ -77,14 +77,14 @@
       <bpmn:incoming>SequenceFlow_1gsbpxj</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_0xqo13p</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def dcsi = new DoCreateVFCNetworkServiceInstance()
+def dcsi = new CreateVFCNSResource()
 dcsi.queryNSProgress(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:scriptTask id="finishNSCreate_Task" name="Add NS RelationShip" scriptFormat="groovy">
       <bpmn:incoming>operationFinished_SequenceFlow</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_0cq2q6g</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def dcsi = new DoCreateVFCNetworkServiceInstance()
+def dcsi = new CreateVFCNSResource()
 dcsi.addNSRelationship(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:sequenceFlow id="SequenceFlow_0xqo13p" sourceRef="queryJob_Task" targetRef="ExclusiveGateway_15492gl" />
@@ -92,13 +92,13 @@
       <bpmn:incoming>operationProcessing_SequenceFlow</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1gsbpxj</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def dcsi = new DoCreateVFCNetworkServiceInstance()
+def dcsi = new CreateVFCNSResource()
 dcsi.timeDelay(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:sequenceFlow id="SequenceFlow_1gsbpxj" sourceRef="timeDelay_Task" targetRef="queryJob_Task" />
   </bpmn:process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
-    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoCreateVFCNetworkServiceInstance">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="CreateVFCNSResource">
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="createNS_StartEvent">
         <dc:Bounds x="175" y="111" width="36" height="36" />
         <bpmndi:BPMNLabel>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn
new file mode 100644
index 0000000..75f6b4c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn
@@ -0,0 +1,821 @@
+<?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="DoUpdateE2EServiceInstance" name="DoUpdateE2EServiceInstance" isExecutable="true">
+    <bpmn2:startEvent id="createSI_startEvent" name="Start Flow">
+      <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
+    </bpmn2:startEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="createSI_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 dcsi = new DoUpdateE2EServiceInstance()
+dcsi.preProcessRequest(execution)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="preProcessRequest_ScriptTask" targetRef="CallActivity_18nvmnn" />
+    <bpmn2:scriptTask id="ScriptTask_0i8cqdy_PostProcessAAIGET" name="Post Process AAI GET" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0qg0uyn</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0wc7v9z</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstance()
+dcsi.postProcessAAIGET(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_09laxun" name="PreProcess for Add Resources" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_115mdln</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0yztz2p</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new  DoUpdateE2EServiceInstance()
+csi.preProcessForAddResource(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:callActivity id="Task_1wyyy33" 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_0yztz2p</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0lblyhi</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:scriptTask id="Task_0ag30bf" name="PostProcess for Add Resource" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0lblyhi</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1fr4uwt</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new  DoUpdateE2EServiceInstance()
+csi.postProcessForAddResource(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="ScriptTask_04rn9mp" name="Post Config Service Instance Update" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0cnuo36</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1lkpfe2</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new  DoUpdateE2EServiceInstance()
+csi.postConfigRequest(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:intermediateCatchEvent id="StartEvent_StartResource" name="StartAddResources">
+      <bpmn2:outgoing>SequenceFlow_115mdln</bpmn2:outgoing>
+      <bpmn2:linkEventDefinition name="StartAddResource" />
+    </bpmn2:intermediateCatchEvent>
+    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_1dwg5lz" name="GoToStartCompareModelVersions">
+      <bpmn2:incoming>SequenceFlow_1i45vfx</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="StartCompareModelVersions" />
+    </bpmn2:intermediateThrowEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_1rebkae" sourceRef="StartEvent_0jhv664" targetRef="ScriptTask_1wk7zcu" />
+    <bpmn2:intermediateCatchEvent id="StartEvent_0jhv664" name="FinishProcess">
+      <bpmn2:outgoing>SequenceFlow_1rebkae</bpmn2:outgoing>
+      <bpmn2:linkEventDefinition name="FinishProcess" />
+    </bpmn2:intermediateCatchEvent>
+    <bpmn2:endEvent id="EndEvent_0x8im5g">
+      <bpmn2:incoming>SequenceFlow_1lkpfe2</bpmn2:incoming>
+    </bpmn2:endEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_1lkpfe2" sourceRef="ScriptTask_04rn9mp" targetRef="EndEvent_0x8im5g" />
+    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_GoToFinishProcess" name="GoTo StartDeleteResources">
+      <bpmn2:incoming>SequenceFlow_1fr4uwt</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="StartDeleteResources" />
+    </bpmn2:intermediateThrowEvent>
+    <bpmn2:intermediateCatchEvent id="StartEvent_1p7w4fj" name="Update Resource Oper Status">
+      <bpmn2:outgoing>SequenceFlow_0e8oxe4</bpmn2:outgoing>
+      <bpmn2:linkEventDefinition name="UpdateResourceOperStatus" />
+    </bpmn2:intermediateCatchEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_0e8oxe4" sourceRef="StartEvent_1p7w4fj" targetRef="ScriptTask_1pwo0jp" />
+    <bpmn2:scriptTask id="ScriptTask_1wk7zcu" name="Prepare Update Service Oper Status(100%)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1rebkae</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0gr3l25</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+execution.setVariable("progress", "100")
+execution.setVariable("operationStatus", "End")
+def ddsi = new DoUpdateE2EServiceInstance()
+ddsi.preUpdateServiceOperationStatus(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:serviceTask id="ServiceTask_1a6cmdu" name="Update Service Oper Status">
+      <bpmn2:extensionElements>
+        <camunda:connector>
+          <camunda:inputOutput>
+            <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="headers">
+              <camunda:map>
+                <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">Basic QlBFTENsaWVudDpwYXNzd29yZDEk</camunda:entry>
+              </camunda:map>
+            </camunda:inputParameter>
+            <camunda:inputParameter name="payload">${CVFMI_updateServiceOperStatusRequest}</camunda:inputParameter>
+            <camunda:inputParameter name="method">POST</camunda:inputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponseCode">${statusCode}</camunda:outputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponse">${response}</camunda:outputParameter>
+          </camunda:inputOutput>
+          <camunda:connectorId>http-connector</camunda:connectorId>
+        </camunda:connector>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_0gr3l25</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0cnuo36</bpmn2:outgoing>
+    </bpmn2:serviceTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0gr3l25" sourceRef="ScriptTask_1wk7zcu" targetRef="ServiceTask_1a6cmdu" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0cnuo36" sourceRef="ServiceTask_1a6cmdu" targetRef="ScriptTask_04rn9mp" />
+    <bpmn2:scriptTask id="ScriptTask_1pwo0jp" name="Prepare Resource Oper Status" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0e8oxe4</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0aylb6e</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def ddsi = new DoUpdateE2EServiceInstance()
+ddsi.preInitResourcesOperStatus(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0aylb6e" sourceRef="ScriptTask_1pwo0jp" targetRef="ServiceTask_1dqzdko" />
+    <bpmn2:serviceTask id="ServiceTask_1dqzdko" name="Init Resource Oper Status">
+      <bpmn2:extensionElements>
+        <camunda:connector>
+          <camunda:inputOutput>
+            <camunda:inputParameter name="url">${CVFMI_dbAdapterEndpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="headers">
+              <camunda:map>
+                <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">Basic QlBFTENsaWVudDpwYXNzd29yZDEk</camunda:entry>
+              </camunda:map>
+            </camunda:inputParameter>
+            <camunda:inputParameter name="payload">${CVFMI_initResOperStatusRequest}</camunda:inputParameter>
+            <camunda:inputParameter name="method">POST</camunda:inputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponseCode">${statusCode}</camunda:outputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponse">${response}</camunda:outputParameter>
+          </camunda:inputOutput>
+          <camunda:connectorId>http-connector</camunda:connectorId>
+        </camunda:connector>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_0aylb6e</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1r1hl23</bpmn2:outgoing>
+    </bpmn2:serviceTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1r1hl23" sourceRef="ServiceTask_1dqzdko" targetRef="ScriptTask_17ssed5" />
+    <bpmn2:sequenceFlow id="SequenceFlow_115mdln" sourceRef="StartEvent_StartResource" targetRef="Task_09laxun" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0yztz2p" sourceRef="Task_09laxun" targetRef="Task_1wyyy33" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0lblyhi" sourceRef="Task_1wyyy33" targetRef="Task_0ag30bf" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1fr4uwt" sourceRef="Task_0ag30bf" targetRef="IntermediateThrowEvent_GoToFinishProcess" />
+    <bpmn2:scriptTask id="ScriptTask_1xxvnst" name="PreProcess for Delete Resources" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1qn0865</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_14rubz2</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new  DoUpdateE2EServiceInstance()
+csi.preProcessForDeleteResource(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:callActivity id="CallActivity_0yphqzk" 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_14rubz2</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0tm9bw9</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:scriptTask id="ScriptTask_00wgfrc" name="PostProcess for Delete Resource" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0tm9bw9</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0ynd3rm</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new  DoUpdateE2EServiceInstance()
+csi.postProcessForDeleteResource(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_0h6d9jb" name="StartDeleteResources">
+      <bpmn2:outgoing>SequenceFlow_1qn0865</bpmn2:outgoing>
+      <bpmn2:linkEventDefinition name="StartDeleteResources" />
+    </bpmn2:intermediateCatchEvent>
+    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_1er2v7q" name="GoTo FinishProcess">
+      <bpmn2:incoming>SequenceFlow_0ynd3rm</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="FinishProcess" />
+    </bpmn2:intermediateThrowEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_1qn0865" sourceRef="IntermediateCatchEvent_0h6d9jb" targetRef="ScriptTask_1xxvnst" />
+    <bpmn2:sequenceFlow id="SequenceFlow_14rubz2" sourceRef="ScriptTask_1xxvnst" targetRef="CallActivity_0yphqzk" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0tm9bw9" sourceRef="CallActivity_0yphqzk" targetRef="ScriptTask_00wgfrc" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0ynd3rm" sourceRef="ScriptTask_00wgfrc" targetRef="IntermediateThrowEvent_1er2v7q" />
+    <bpmn2:subProcess id="SubProcess_0roysbg" name="Sub-process for UnexpectedErrors" triggeredByEvent="true">
+      <bpmn2:startEvent id="StartEvent_0xtpw6j">
+        <bpmn2:outgoing>SequenceFlow_19sogyb</bpmn2:outgoing>
+        <bpmn2:errorEventDefinition />
+      </bpmn2:startEvent>
+      <bpmn2:scriptTask id="ScriptTask_0xk9fk3" name="Log / Print Unexpected Error" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_19sogyb</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_0ofhz2u</bpmn2:outgoing>
+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*

+ExceptionUtil ex = new ExceptionUtil()

+ex.processJavaException(execution)]]></bpmn2:script>
+      </bpmn2:scriptTask>
+      <bpmn2:sequenceFlow id="SequenceFlow_19sogyb" name="" sourceRef="StartEvent_0xtpw6j" targetRef="ScriptTask_0xk9fk3" />
+      <bpmn2:endEvent id="EndEvent_05a2pr9">
+        <bpmn2:incoming>SequenceFlow_0ofhz2u</bpmn2:incoming>
+      </bpmn2:endEvent>
+      <bpmn2:sequenceFlow id="SequenceFlow_0ofhz2u" sourceRef="ScriptTask_0xk9fk3" targetRef="EndEvent_05a2pr9" />
+    </bpmn2:subProcess>
+    <bpmn2:scriptTask id="ScriptTask_0wl77h6" name="Post for Compare Model Versions" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_02d5ibj</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0l4gosl</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new  DoUpdateE2EServiceInstance()
+csi.postCompareModelVersions(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_0gk8ige" name="StartCompareModelVersions">
+      <bpmn2:outgoing>SequenceFlow_1vtlt1v</bpmn2:outgoing>
+      <bpmn2:linkEventDefinition name="StartCompareModelVersions" />
+    </bpmn2:intermediateCatchEvent>
+    <bpmn2:scriptTask id="ScriptTask_1afvv50" name="Prepare for Compare Model Versions" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1vtlt1v</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0h40pn8</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def ddsi = new DoUpdateE2EServiceInstance()
+ddsi.preCompareModelVersions(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_02d5ibj" sourceRef="ServiceTask_02u5iza" targetRef="ScriptTask_0wl77h6" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1vtlt1v" sourceRef="IntermediateCatchEvent_0gk8ige" targetRef="ScriptTask_1afvv50" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0h40pn8" sourceRef="ScriptTask_1afvv50" targetRef="ServiceTask_02u5iza" />
+    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_09ur9ds" name="GoTo StartAddResources">
+      <bpmn2:incoming>SequenceFlow_0l4gosl</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="StartAddResource" />
+    </bpmn2:intermediateThrowEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_0l4gosl" sourceRef="ScriptTask_0wl77h6" targetRef="IntermediateThrowEvent_09ur9ds" />
+    <bpmn2:callActivity id="ServiceTask_02u5iza" name="Call DoCompareModelVersions" calledElement="DoCompareModelVersions">
+      <bpmn2:incoming>SequenceFlow_0h40pn8</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_02d5ibj</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0cabwkq" name="GoTo UpdateResourceOperStatus">
+      <bpmn2:incoming>SequenceFlow_0wc7v9z</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="UpdateResourceOperStatus" />
+    </bpmn2:intermediateThrowEvent>
+    <bpmn2:callActivity id="CallActivity_18nvmnn" 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_2</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0qg0uyn</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_0qg0uyn" sourceRef="CallActivity_18nvmnn" targetRef="ScriptTask_0i8cqdy_PostProcessAAIGET" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0wc7v9z" sourceRef="ScriptTask_0i8cqdy_PostProcessAAIGET" targetRef="IntermediateThrowEvent_0cabwkq" />
+    <bpmn2:scriptTask id="ScriptTask_17ssed5" name="Post Resource Oper Status" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1r1hl23</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1i45vfx</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstance()
+dcsi.postResourcesOperStatus(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1i45vfx" sourceRef="ScriptTask_17ssed5" targetRef="IntermediateThrowEvent_1dwg5lz" />
+    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_1da7q01" name="GoToStartCompareModelVersions">
+      <bpmn2:incoming>SequenceFlow_16evvx4</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="StartCompareModelVersions" />
+    </bpmn2:intermediateThrowEvent>
+    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_1uv1dxj" name="Update Resource Oper Status">
+      <bpmn2:outgoing>SequenceFlow_1sphzdm</bpmn2:outgoing>
+      <bpmn2:linkEventDefinition name="UpdateResourceOperStatus" />
+    </bpmn2:intermediateCatchEvent>
+    <bpmn2:scriptTask id="ScriptTask_0acnvkp" name="Prepare Resource Oper Status(10%)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1sphzdm</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0r6c0ci</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+execution.setVariable("progress", "10")
+def ddsi = new DoUpdateE2EServiceInstance()
+ddsi.preUpdateServiceOperationStatus(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:serviceTask id="ServiceTask_17u9q9u" name="Init Resource Oper Status">
+      <bpmn2:extensionElements>
+        <camunda:connector>
+          <camunda:inputOutput>
+            <camunda:inputParameter name="url">${CVFMI_dbAdapterEndpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="headers">
+              <camunda:map>
+                <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">Basic QlBFTENsaWVudDpwYXNzd29yZDEk</camunda:entry>
+              </camunda:map>
+            </camunda:inputParameter>
+            <camunda:inputParameter name="payload">${CVFMI_initResOperStatusRequest}</camunda:inputParameter>
+            <camunda:inputParameter name="method">POST</camunda:inputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponseCode">${statusCode}</camunda:outputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponse">${response}</camunda:outputParameter>
+          </camunda:inputOutput>
+          <camunda:connectorId>http-connector</camunda:connectorId>
+        </camunda:connector>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_0r6c0ci</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1muxopq</bpmn2:outgoing>
+    </bpmn2:serviceTask>
+    <bpmn2:scriptTask id="ScriptTask_0r74c3c" name="Post Resource Oper Status" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1muxopq</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_16evvx4</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstance()
+dcsi.postResourcesOperStatus(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_16evvx4" sourceRef="ScriptTask_0r74c3c" targetRef="IntermediateThrowEvent_1da7q01" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1sphzdm" sourceRef="IntermediateCatchEvent_1uv1dxj" targetRef="ScriptTask_0acnvkp" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0r6c0ci" sourceRef="ScriptTask_0acnvkp" targetRef="ServiceTask_17u9q9u" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1muxopq" sourceRef="ServiceTask_17u9q9u" targetRef="ScriptTask_0r74c3c" />
+    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0vneaao" name="GoToStartCompareModelVersions">
+      <bpmn2:incoming>SequenceFlow_0s57qft</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="StartCompareModelVersions" />
+    </bpmn2:intermediateThrowEvent>
+    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_0a418ef" name="Update Resource Oper Status">
+      <bpmn2:outgoing>SequenceFlow_02taco0</bpmn2:outgoing>
+      <bpmn2:linkEventDefinition name="UpdateResourceOperStatus" />
+    </bpmn2:intermediateCatchEvent>
+    <bpmn2:scriptTask id="ScriptTask_1na4qzo" name="Prepare Resource Oper Status(60%)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_02taco0</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_07l3twh</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+execution.setVariable("progress", "60")
+def ddsi = new DoUpdateE2EServiceInstance()
+ddsi.preUpdateServiceOperationStatus(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:serviceTask id="ServiceTask_0c13nyt" name="Init Resource Oper Status">
+      <bpmn2:extensionElements>
+        <camunda:connector>
+          <camunda:inputOutput>
+            <camunda:inputParameter name="url">${CVFMI_dbAdapterEndpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="headers">
+              <camunda:map>
+                <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">Basic QlBFTENsaWVudDpwYXNzd29yZDEk</camunda:entry>
+              </camunda:map>
+            </camunda:inputParameter>
+            <camunda:inputParameter name="payload">${CVFMI_initResOperStatusRequest}</camunda:inputParameter>
+            <camunda:inputParameter name="method">POST</camunda:inputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponseCode">${statusCode}</camunda:outputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponse">${response}</camunda:outputParameter>
+          </camunda:inputOutput>
+          <camunda:connectorId>http-connector</camunda:connectorId>
+        </camunda:connector>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_07l3twh</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1eg944u</bpmn2:outgoing>
+    </bpmn2:serviceTask>
+    <bpmn2:scriptTask id="ScriptTask_0iq531p" name="Post Resource Oper Status" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1eg944u</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0s57qft</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstance()
+dcsi.postResourcesOperStatus(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0s57qft" sourceRef="ScriptTask_0iq531p" targetRef="IntermediateThrowEvent_0vneaao" />
+    <bpmn2:sequenceFlow id="SequenceFlow_02taco0" sourceRef="IntermediateCatchEvent_0a418ef" targetRef="ScriptTask_1na4qzo" />
+    <bpmn2:sequenceFlow id="SequenceFlow_07l3twh" sourceRef="ScriptTask_1na4qzo" targetRef="ServiceTask_0c13nyt" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1eg944u" sourceRef="ServiceTask_0c13nyt" targetRef="ScriptTask_0iq531p" />
+  </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="DoUpdateE2EServiceInstance">
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_47" bpmnElement="createSI_startEvent">
+        <dc:Bounds x="-14" y="334" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-20" y="375" width="50" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_61" bpmnElement="preProcessRequest_ScriptTask">
+        <dc:Bounds x="293" y="312" 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="22" y="352" />
+        <di:waypoint xsi:type="dc:Point" x="293" y="352" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="112.5" y="337" width="90" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_61" targetElement="CallActivity_18nvmnn_di">
+        <di:waypoint xsi:type="dc:Point" x="393" y="352" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="352" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="446" y="337" width="90" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0i8cqdy_di" bpmnElement="ScriptTask_0i8cqdy_PostProcessAAIGET">
+        <dc:Bounds x="858" y="312" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1azssf7_di" bpmnElement="Task_09laxun">
+        <dc:Bounds x="293" y="828" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_1v57nb9_di" bpmnElement="Task_1wyyy33">
+        <dc:Bounds x="589" y="828" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1fj89ew_di" bpmnElement="Task_0ag30bf">
+        <dc:Bounds x="858" y="828" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_04rn9mp_di" bpmnElement="ScriptTask_04rn9mp">
+        <dc:Bounds x="858" y="1208" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_0jks7by_di" bpmnElement="StartEvent_StartResource">
+        <dc:Bounds x="-14" y="850" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-38" y="895" width="84" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_0ys6800_di" bpmnElement="IntermediateThrowEvent_1dwg5lz">
+        <dc:Bounds x="1239" y="473" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1213" y="513" width="90" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1rebkae_di" bpmnElement="SequenceFlow_1rebkae">
+        <di:waypoint xsi:type="dc:Point" x="22" y="1248" />
+        <di:waypoint xsi:type="dc:Point" x="283" y="1248" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="107.5" y="1227" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_05z1jyy_di" bpmnElement="StartEvent_0jhv664">
+        <dc:Bounds x="-14" y="1230" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-31" y="1270" width="70" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_0x8im5g_di" bpmnElement="EndEvent_0x8im5g">
+        <dc:Bounds x="1239" y="1230" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1212" y="1270" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1lkpfe2_di" bpmnElement="SequenceFlow_1lkpfe2">
+        <di:waypoint xsi:type="dc:Point" x="958" y="1248" />
+        <di:waypoint xsi:type="dc:Point" x="1239" y="1248" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1053.5" y="1227" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_11jt9tx_di" bpmnElement="IntermediateThrowEvent_GoToFinishProcess">
+        <dc:Bounds x="1239" y="850" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1214" y="892" width="86" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_0v3ecwh_di" bpmnElement="StartEvent_1p7w4fj">
+        <dc:Bounds x="-14" y="473" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-38" y="513" width="86" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0e8oxe4_di" bpmnElement="SequenceFlow_0e8oxe4">
+        <di:waypoint xsi:type="dc:Point" x="22" y="491" />
+        <di:waypoint xsi:type="dc:Point" x="158" y="491" />
+        <di:waypoint xsi:type="dc:Point" x="158" y="491" />
+        <di:waypoint xsi:type="dc:Point" x="293" y="491" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="128" y="485" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1wk7zcu_di" bpmnElement="ScriptTask_1wk7zcu">
+        <dc:Bounds x="283" y="1208" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ServiceTask_1a6cmdu_di" bpmnElement="ServiceTask_1a6cmdu">
+        <dc:Bounds x="589" y="1208" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0gr3l25_di" bpmnElement="SequenceFlow_0gr3l25">
+        <di:waypoint xsi:type="dc:Point" x="383" y="1248" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="1248" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="441" y="1227" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0cnuo36_di" bpmnElement="SequenceFlow_0cnuo36">
+        <di:waypoint xsi:type="dc:Point" x="689" y="1248" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="1248" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="728.5" y="1227" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1pwo0jp_di" bpmnElement="ScriptTask_1pwo0jp">
+        <dc:Bounds x="293" y="451" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0aylb6e_di" bpmnElement="SequenceFlow_0aylb6e">
+        <di:waypoint xsi:type="dc:Point" x="393" y="491" />
+        <di:waypoint xsi:type="dc:Point" x="552" y="491" />
+        <di:waypoint xsi:type="dc:Point" x="552" y="491" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="491" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="522" y="485" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ServiceTask_1dqzdko_di" bpmnElement="ServiceTask_1dqzdko">
+        <dc:Bounds x="589" y="451" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1r1hl23_di" bpmnElement="SequenceFlow_1r1hl23">
+        <di:waypoint xsi:type="dc:Point" x="689" y="491" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="491" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="728.5" y="470" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_115mdln_di" bpmnElement="SequenceFlow_115mdln">
+        <di:waypoint xsi:type="dc:Point" x="22" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="293" y="868" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="112.5" y="847" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0yztz2p_di" bpmnElement="SequenceFlow_0yztz2p">
+        <di:waypoint xsi:type="dc:Point" x="393" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="868" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="446" y="847" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0lblyhi_di" bpmnElement="SequenceFlow_0lblyhi">
+        <di:waypoint xsi:type="dc:Point" x="689" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="868" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="728.5" y="847" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1fr4uwt_di" bpmnElement="SequenceFlow_1fr4uwt">
+        <di:waypoint xsi:type="dc:Point" x="958" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="1239" y="868" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1053.5" y="847" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1xxvnst_di" bpmnElement="ScriptTask_1xxvnst">
+        <dc:Bounds x="293" y="1081" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_0yphqzk_di" bpmnElement="CallActivity_0yphqzk">
+        <dc:Bounds x="589" y="1081" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_00wgfrc_di" bpmnElement="ScriptTask_00wgfrc">
+        <dc:Bounds x="858" y="1081" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_0h6d9jb_di" bpmnElement="IntermediateCatchEvent_0h6d9jb">
+        <dc:Bounds x="-14" y="1103" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-38" y="1143" width="86" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_1er2v7q_di" bpmnElement="IntermediateThrowEvent_1er2v7q">
+        <dc:Bounds x="1239" y="1103" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1224" y="1143" width="70" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1qn0865_di" bpmnElement="SequenceFlow_1qn0865">
+        <di:waypoint xsi:type="dc:Point" x="22" y="1121" />
+        <di:waypoint xsi:type="dc:Point" x="293" y="1121" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="112.5" y="1100" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_14rubz2_di" bpmnElement="SequenceFlow_14rubz2">
+        <di:waypoint xsi:type="dc:Point" x="393" y="1121" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="1121" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="446" y="1100" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0tm9bw9_di" bpmnElement="SequenceFlow_0tm9bw9">
+        <di:waypoint xsi:type="dc:Point" x="689" y="1121" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="1121" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="728.5" y="1100" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0ynd3rm_di" bpmnElement="SequenceFlow_0ynd3rm">
+        <di:waypoint xsi:type="dc:Point" x="958" y="1121" />
+        <di:waypoint xsi:type="dc:Point" x="1239" y="1121" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1053.5" y="1100" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="SubProcess_0roysbg_di" bpmnElement="SubProcess_0roysbg" isExpanded="true">
+        <dc:Bounds x="-50" y="1386" width="1361" height="147" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="StartEvent_0xtpw6j_di" bpmnElement="StartEvent_0xtpw6j">
+        <dc:Bounds x="-14" y="1453" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-131" y="1494" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_05a2pr9_di" bpmnElement="EndEvent_05a2pr9">
+        <dc:Bounds x="1229" y="1453" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1112" y="1494" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0xk9fk3_di" bpmnElement="ScriptTask_0xk9fk3">
+        <dc:Bounds x="585" y="1431" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_19sogyb_di" bpmnElement="SequenceFlow_19sogyb">
+        <di:waypoint xsi:type="dc:Point" x="22" y="1471" />
+        <di:waypoint xsi:type="dc:Point" x="304" y="1471" />
+        <di:waypoint xsi:type="dc:Point" x="304" y="1471" />
+        <di:waypoint xsi:type="dc:Point" x="585" y="1471" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="274" y="1465" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0wl77h6_di" bpmnElement="ScriptTask_0wl77h6">
+        <dc:Bounds x="858" y="600" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_0gk8ige_di" bpmnElement="IntermediateCatchEvent_0gk8ige">
+        <dc:Bounds x="-14" y="622" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-38" y="684" width="89" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1afvv50_di" bpmnElement="ScriptTask_1afvv50">
+        <dc:Bounds x="293" y="600" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_02d5ibj_di" bpmnElement="SequenceFlow_02d5ibj">
+        <di:waypoint xsi:type="dc:Point" x="689" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="774" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="774" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="640" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="744" y="593" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1vtlt1v_di" bpmnElement="SequenceFlow_1vtlt1v">
+        <di:waypoint xsi:type="dc:Point" x="22" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="293" y="640" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="112.5" y="578" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0h40pn8_di" bpmnElement="SequenceFlow_0h40pn8">
+        <di:waypoint xsi:type="dc:Point" x="393" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="640" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="446" y="578" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_09ur9ds_di" bpmnElement="IntermediateThrowEvent_09ur9ds">
+        <dc:Bounds x="1239" y="622" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1215" y="663" width="84" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0l4gosl_di" bpmnElement="SequenceFlow_0l4gosl">
+        <di:waypoint xsi:type="dc:Point" x="958" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="1098" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="1098" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="1239" y="640" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1068" y="593" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_00ftzjj_di" bpmnElement="ServiceTask_02u5iza">
+        <dc:Bounds x="589" y="600" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_0nf1193_di" bpmnElement="IntermediateThrowEvent_0cabwkq">
+        <dc:Bounds x="1235" y="334" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1215" y="374" width="83" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_18nvmnn_di" bpmnElement="CallActivity_18nvmnn">
+        <dc:Bounds x="589" y="312" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0qg0uyn_di" bpmnElement="SequenceFlow_0qg0uyn">
+        <di:waypoint xsi:type="dc:Point" x="689" y="352" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="352" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="728.5" y="331" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0wc7v9z_di" bpmnElement="SequenceFlow_0wc7v9z">
+        <di:waypoint xsi:type="dc:Point" x="958" y="352" />
+        <di:waypoint xsi:type="dc:Point" x="1235" y="352" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1096.5" y="331" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_17ssed5_di" bpmnElement="ScriptTask_17ssed5">
+        <dc:Bounds x="858" y="451" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1i45vfx_di" bpmnElement="SequenceFlow_1i45vfx">
+        <di:waypoint xsi:type="dc:Point" x="958" y="491" />
+        <di:waypoint xsi:type="dc:Point" x="1239" y="491" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1098.5" y="470" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_1da7q01_di" bpmnElement="IntermediateThrowEvent_1da7q01">
+        <dc:Bounds x="1239" y="718" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1212" y="760" width="90" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_1uv1dxj_di" bpmnElement="IntermediateCatchEvent_1uv1dxj">
+        <dc:Bounds x="-14" y="718" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-36" y="760" width="86" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0acnvkp_di" bpmnElement="ScriptTask_0acnvkp">
+        <dc:Bounds x="293" y="696" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ServiceTask_17u9q9u_di" bpmnElement="ServiceTask_17u9q9u">
+        <dc:Bounds x="589" y="696" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0r74c3c_di" bpmnElement="ScriptTask_0r74c3c">
+        <dc:Bounds x="858" y="696" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_16evvx4_di" bpmnElement="SequenceFlow_16evvx4">
+        <di:waypoint xsi:type="dc:Point" x="958" y="736" />
+        <di:waypoint xsi:type="dc:Point" x="1239" y="736" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1098.5" y="753" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1sphzdm_di" bpmnElement="SequenceFlow_1sphzdm">
+        <di:waypoint xsi:type="dc:Point" x="22" y="736" />
+        <di:waypoint xsi:type="dc:Point" x="158" y="736" />
+        <di:waypoint xsi:type="dc:Point" x="158" y="736" />
+        <di:waypoint xsi:type="dc:Point" x="293" y="736" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="173" y="768" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0r6c0ci_di" bpmnElement="SequenceFlow_0r6c0ci">
+        <di:waypoint xsi:type="dc:Point" x="393" y="736" />
+        <di:waypoint xsi:type="dc:Point" x="552" y="736" />
+        <di:waypoint xsi:type="dc:Point" x="552" y="736" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="736" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="567" y="768" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1muxopq_di" bpmnElement="SequenceFlow_1muxopq">
+        <di:waypoint xsi:type="dc:Point" x="689" y="736" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="736" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="773.5" y="753" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_0vneaao_di" bpmnElement="IntermediateThrowEvent_0vneaao">
+        <dc:Bounds x="1239" y="948" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1213" y="988" width="90" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_0a418ef_di" bpmnElement="IntermediateCatchEvent_0a418ef">
+        <dc:Bounds x="-14" y="948" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-38" y="988" width="86" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1na4qzo_di" bpmnElement="ScriptTask_1na4qzo">
+        <dc:Bounds x="293" y="926" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ServiceTask_0c13nyt_di" bpmnElement="ServiceTask_0c13nyt">
+        <dc:Bounds x="589" y="926" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0iq531p_di" bpmnElement="ScriptTask_0iq531p">
+        <dc:Bounds x="858" y="926" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0s57qft_di" bpmnElement="SequenceFlow_0s57qft">
+        <di:waypoint xsi:type="dc:Point" x="958" y="966" />
+        <di:waypoint xsi:type="dc:Point" x="1239" y="966" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1098.5" y="945" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_02taco0_di" bpmnElement="SequenceFlow_02taco0">
+        <di:waypoint xsi:type="dc:Point" x="22" y="966" />
+        <di:waypoint xsi:type="dc:Point" x="158" y="966" />
+        <di:waypoint xsi:type="dc:Point" x="158" y="966" />
+        <di:waypoint xsi:type="dc:Point" x="293" y="966" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="128" y="960" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_07l3twh_di" bpmnElement="SequenceFlow_07l3twh">
+        <di:waypoint xsi:type="dc:Point" x="393" y="966" />
+        <di:waypoint xsi:type="dc:Point" x="552" y="966" />
+        <di:waypoint xsi:type="dc:Point" x="552" y="966" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="966" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="522" y="960" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1eg944u_di" bpmnElement="SequenceFlow_1eg944u">
+        <di:waypoint xsi:type="dc:Point" x="689" y="966" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="966" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="728.5" y="945" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0ofhz2u_di" bpmnElement="SequenceFlow_0ofhz2u">
+        <di:waypoint xsi:type="dc:Point" x="685" y="1471" />
+        <di:waypoint xsi:type="dc:Point" x="1229" y="1471" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="957" y="1450" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn2:definitions>
diff --git a/common/src/main/resources/ASDC.properties b/common/src/main/resources/ASDC.properties
index 4f3864d..5f4f0ba 100644
--- a/common/src/main/resources/ASDC.properties
+++ b/common/src/main/resources/ASDC.properties
@@ -51,7 +51,7 @@
                   MSO-ASDC-5301W|\
                   WARNING: {0}|\
                   Please check other logs for more detailed info|\
-                  General warning 
+                  General warning
 ASDC_AUDIT_EXEC=\
                   MSO-ASDC-5302I|\
                   Executing method: {0}. {1}|\
@@ -61,77 +61,77 @@
                   MSO-ASDC-5305I|\
                   Executed method: {0}. {1}|\
                   No resolution needed|\
-                  Generate information for Metric events 
+                  Generate information for Metric events
 ASDC_CREATE_SERVICE=\
                   MSO-ASDC-5306I|\
                   Creating new VNF Resource for service {0} with id {1} and version {2}|\
                   No resolution needed|\
-                  Method triggered to create new VNF Resource                                                                                                                                                                                                                                                                                                                                     
+                  Method triggered to create new VNF Resource
 ASDC_CREATE_ARTIFACT=\
                   MSO-ASDC-5307I|\
                   Installing new {0} for service {1} with id {2} and version {3}|\
                   No resolution needed|\
-                  Method triggered to create new VNF Resource   
+                  Method triggered to create new VNF Resource
 ASDC_ARTIFACT_ALREADY_DEPLOYED=\
                   MSO-ASDC-5308W|\
                   Constraint violation caught, artifact is already deployed {0} and version {1}|\
                   No resolution needed|\
-                  Artifact is already deployed   
+                  Artifact is already deployed
 ASDC_ARTIFACT_INSTALL_EXC=\
                   MSO-ASDC-5309E|\
                   Exception caught during installation of the {0}. Transaction rollback.|\
                   Please check other logs for more detailed info|\
-                  Exception caught during installation of the artifact   
+                  Exception caught during installation of the artifact
 ASDC_CHECK_HEAT_TEMPLATE=\
                   MSO-ASDC-5310I|\
                   Start to verify whether {0} with name {1} and version {2} is already deployed|\
                   No resolution needed|\
-                  Check artifact  
+                  Check artifact
 ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL=\
                   MSO-ASDC-5311I|\
                   ResourceInstanceName:{0} (ResourceUUID:{1}) is already deployed for this Service:{2}/{3}(ServiceUUID:{4}) (ResourceName: {5})|\
                   No resolution needed|\
-                  Resource is already deployed  
+                  Resource is already deployed
 ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL=\
                   MSO-ASDC-5312I|\
                  ResourceInstanceName:{0} (ResourceUUID:{1}) is not yet deployed for this Service:{2}/{3}(ServiceUUID:{4}) (ResourceName: {5})|\
                   No resolution needed|\
-                  Resource is not yet deployed  
+                  Resource is not yet deployed
 ASDC_INIT_ASDC_CLIENT_EXC=\
                   MSO-ASDC-5314W|\
                   ASDControllerException caught during the Init/closing of ASDC Client with address {0} and environment {1}|\
                   Please check other logs for more detailed info|\
-                  ASDControllerException caught during the Init/closing of ASDC Client      
+                  ASDControllerException caught during the Init/closing of ASDC Client
 ASDC_LOAD_ASDC_CLIENT_EXC=\
                   MSO-ASDC-5315W|\
                   ASDCParametersException caught during loading/reloading of the ASDC Client with address {0} and environment {1}|\
                   Please check other logs for more detailed info|\
-                  ASDCParametersException caught during loading/reloading of the ASDC Client                    
+                  ASDCParametersException caught during loading/reloading of the ASDC Client
 ASDC_SHUTDOWN_ASDC_CLIENT_EXC=\
                   MSO-ASDC-5317W|\
                   {0} caught during the ASDC Controller with address {1} and environment {2} shutdown|\
                   Please check other logs for more detailed info|\
-                  Exception caught during the ASDC Controller shutdown  
+                  Exception caught during the ASDC Controller shutdown
 ASDC_START_INSTALL_ARTIFACT=\
                   MSO-ASDC-5318I|\
                   Trying to install the artifact:{0}|\
                   No resolution needed|\
-                  Trying to install the artifact  
+                  Trying to install the artifact
 ASDC_ARTIFACT_TYPE_NOT_SUPPORT=\
                   MSO-ASDC-5319W|\
                   This artifact type is not supported:{0}|\
                   No resolution needed|\
-                  Artifact type is not supported  
+                  Artifact type is not supported
 ASDC_ARTIFACT_ALREADY_EXIST=\
                   MSO-ASDC-5320I|\
                   No need to download the artifact as it exists already in MSO:{0} (UUID:{1}) associated to ResourceName {2}|\
                   No resolution needed|\
-                  Artifact already exists                   
+                  Artifact already exists
 ASDC_ARTIFACT_DOWNLOAD_SUC=\
                   MSO-ASDC-5321I|\
                   Artifact successfully downloaded:{0} (UUID:{1}) (SIZE in Bytes:{2})|\
                   No resolution needed|\
-                  Artifact successfully downloaded   
+                  Artifact successfully downloaded
 ASDC_ARTIFACT_DOWNLOAD_FAIL=\
                   MSO-ASDC-5322E|\
                   Artifact :{0} could not be downloaded correctly from ASDC URL {1} (UUID:{2}) Error message is {3})|\
@@ -141,47 +141,47 @@
                   MSO-ASDC-5323I|\
                   Trying to deploy the artifact:{0} (UUID:{1})|\
                   No resolution needed|\
-                  Trying to deploy the artifact                                       
+                  Trying to deploy the artifact
 ASDC_ARTIFACT_DEPLOY_SUC=\
                   MSO-ASDC-5324I|\
                   Resource successfully installed:{0} (UUID:{1}) (Nb of Modules:{2})|\
                   No resolution needed|\
-                  Resource successfully installed  
+                  Resource successfully installed
 ASDC_SEND_NOTIF_ASDC=\
                   MSO-ASDC-5325I|\
                   Sending {0} ({1}) notification to ASDC for artifact:{2}|\
                   No resolution needed|\
-                  Sending notif to ASDC  
+                  Sending notif to ASDC
 ASDC_SEND_NOTIF_ASDC_EXEC=\
                   MSO-ASDC-5326W|\
                   Exception caught when trying to notify ASDC|\
                   Please check other logs for more detailed info|\
-                  Exception caught when trying to notify ASDC 
+                  Exception caught when trying to notify ASDC
 ASDC_RECEIVE_CALLBACK_NOTIF=\
                   MSO-ASDC-5327I|\
                   Receive a callback notification in ASDC, nb of artifacts: {0} (ServiceUUID:{1})|\
                   No resolution needed|\
-                  Receive a callback notification in ASDC  
+                  Receive a callback notification in ASDC
 ASDC_RECEIVE_SERVICE_NOTIF=\
                   MSO-ASDC-5328I|\
                   Notification is ServiceVNF, (ServiceUUID:{0})|\
                   No resolution needed|\
-                  Receive a callback notification for ServiceVNF 
+                  Receive a callback notification for ServiceVNF
 ASDC_ARTIFACT_NULL=\
                   MSO-ASDC-5329I|\
                   Nothing to deploy artifact is NULL, (ServiceUUID:{0})|\
                   No resolution needed|\
-                  Nothing to deploy artifact is NULL 
+                  Nothing to deploy artifact is NULL
 ASDC_SERVICE_NOT_SUPPORT=\
                   MSO-ASDC-5330W|\
                   Notification received, (ServiceUUID:{0}) is not a ServiceVNF and is therefore skipped|\
                   No resolution needed|\
-                  Service not support 
+                  Service not support
 ASDC_INIT_ASDC_CLIENT_SUC=\
                   MSO-ASDC-5331I|\
                   ASDC Controller successfully initialized|\
                   No resolution needed|\
-                  ASDC client initialized  
+                  ASDC client initialized
 ASDC_GENERAL_EXCEPTION_ARG=\
                   MSO-ASDC-9300E|\
                   Exception: {0}|\
@@ -212,4 +212,4 @@
                   MSO-ASDC-9305I|\
                   INFO: {0}|\
                   No resolution needed|\
-                  General Info 
+                  General Info
diff --git a/common/src/main/resources/ApiHandler.properties b/common/src/main/resources/ApiHandler.properties
index 82d452a..60ecf94 100644
--- a/common/src/main/resources/ApiHandler.properties
+++ b/common/src/main/resources/ApiHandler.properties
@@ -81,12 +81,12 @@
                   MSO-APIH-3008E|\
                   Unable to update record to DB: {0}|\
                   Please check other logs for more detailed info|\
-                  Unable to insert record to DB                                                                              
+                  Unable to insert record to DB
 APIH_VALIDATION_ERROR=\
                   MSO-APIH-4000E|\
                   Validation failed|\
                   Please check other logs for more detailed info|\
-                  Validation failed   
+                  Validation failed
 APIH_REQUEST_VALIDATION_ERROR=\
                   MSO-APIH-4001E|\
                   Validation of the input request failed, for incoming request:{0}|\
@@ -96,17 +96,17 @@
                   MSO-APIH-4002E|\
                   Service params failed schema validation|\
                   Please check other logs for more detailed info|\
-                  Service params failed schema validation  
+                  Service params failed schema validation
 APIH_REQUEST_VALIDATION_ERROR_REASON=\
                   MSO-APIH-4003E|\
                   Validation of the input request failed:{0}|\
                   Please verify the input request|\
-                  Validation of the input request failed 
+                  Validation of the input request failed
 APIH_VNFREQUEST_VALIDATION_ERROR=\
                   MSO-APIH-4004E|\
                   Validation of the VNF Request failed|\
                   Please verify the VNF Request|\
-                  Validation of the VNF Request failed                                                           
+                  Validation of the VNF Request failed
 APIH_QUERY_PARAM_WRONG=\
                   MSO-APIH-5003W|\
                   Bad Request: {0}|\
@@ -116,7 +116,7 @@
                   MSO-APIH-5004W|\
                   WARNING: {0}|\
                   Please check other logs for more detailed info|\
-                  General warning 
+                  General warning
 APIH_AUDIT_EXEC=\
                   MSO-APIH-5005I|\
                   Executing request: {0}. {1}|\
@@ -126,32 +126,32 @@
                   MSO-APIH-5008I|\
                   Executed method: {0}. {1}|\
                   No resolution needed|\
-                  Generate information for Metric events   
+                  Generate information for Metric events
 APIH_REQUEST_NULL=\
 				          MSO-APIH-5009W|\
                   The request received by MSO is null|\
                   Please check other logs for more detailed info|\
-                  The request received by MSO is null  
+                  The request received by MSO is null
 APIH_DUPLICATE_FOUND=\
 				          MSO-APIH-5011W|\
                   Duplicated request found: {0}|\
                   Please check other logs for more detailed info|\
-                  Duplicated request found 
+                  Duplicated request found
 APIH_BAD_ORDER=\
 				          MSO-APIH-5012W|\
                   Request received with wrong order: {0}|\
                   Please check other logs for more detailed info|\
-                  Request received with wrong order                        
+                  Request received with wrong order
 APIH_BPEL_RESPONSE_ERROR=\
 				          MSO-APIH-5014E|\
                   Abnormal response received from BPEL server: {0}|\
                   Please check other logs for more detailed info|\
-                  Abnormal response received from BPEL server  
+                  Abnormal response received from BPEL server
 APIH_WARP_REQUEST=\
 				          MSO-APIH-5015E|\
                   Error wrapping request|\
                   Please check other logs for more detailed info|\
-                  Error wrapping request to be sent to BPEL server   
+                  Error wrapping request to be sent to BPEL server
 APIH_ERROR_FROM_BPEL_SERVER=\
 				          MSO-APIH-5016E|\
                   Error from {0} with status:{1} and responseBody:{2}|\
@@ -161,12 +161,12 @@
 				          MSO-APIH-5017E|\
                   MSO Configuration Error - Unable to read the schema file|\
                   Please check other logs for more detailed info|\
-                  MSO Configuration Error - Unable to read the schema file  
+                  MSO Configuration Error - Unable to read the schema file
 APIH_PROPERTY_LOAD_SUC=\
 				          MSO-APIH-5018I|\
                   Properties file loaded successfully|\
                   No resolution needed|\
-                  Properties file loaded successfully   
+                  Properties file loaded successfully
 APIH_NO_PROPERTIES=\
 				          MSO-APIH-5019E|\
                   Missing or invalid properties file: {0}|\
@@ -201,7 +201,7 @@
                   MSO-APIH-9001E|\
                   Exception encountered|\
                   Please check other logs for more detailed info|\
-                  Exception encountered   
+                  Exception encountered
 APIH_HEALTH_CHECK_EXCEPTION=\
                   MSO-APIH-9002E|\
                   Exception during health check|\
@@ -221,27 +221,27 @@
 				          MSO-APIH-9005E|\
                   Exception during BPEL POST|\
                   Please check other logs for more detailed info|\
-                  Exception during BPEL POST 
+                  Exception during BPEL POST
 APIH_SDNC_COMMUNICATE_ERROR=\
 				          MSO-APIH-9006E|\
                   Exception when sending HTTP POST request to SDNC Adapter|\
                   Please check other logs for more detailed info|\
-                  Exception when sending HTTP POST request to SDNC Adapter 
+                  Exception when sending HTTP POST request to SDNC Adapter
 APIH_SDNC_RESPONSE_ERROR=\
 				          MSO-APIH-9007E|\
                   IOException getting SDNC Adapter response body|\
                   Please check other logs for more detailed info|\
-                  IOException getting SDNC Adapter response body 
+                  IOException getting SDNC Adapter response body
 APIH_JAXB_MARSH_ERROR=\
 				          MSO-APIH-9008E|\
                   Exception when translating query results into string with Jaxb|\
                   Please check other logs for more detailed info|\
-                  Exception when translating query results into string with Jaxb 
+                  Exception when translating query results into string with Jaxb
 APIH_JAXB_UNMARSH_ERROR=\
 				          MSO-APIH-9009E|\
                   Exception when formatting for VNF outputs with Jaxb|\
                   Please check other logs for more detailed info|\
-                  Exception when formatting for VNF outputs  
+                  Exception when formatting for VNF outputs
 APIH_DOM2STR_ERROR=\
 				          MSO-APIH-9010E|\
                   Error converting xml Document to String|\
diff --git a/common/src/main/resources/BPMN.properties b/common/src/main/resources/BPMN.properties
index 9e8a7e7..848135e 100644
--- a/common/src/main/resources/BPMN.properties
+++ b/common/src/main/resources/BPMN.properties
@@ -51,12 +51,12 @@
                   MSO-BPEL-5100I|\
                   INFO: {0}|\
                   No resolution needed|\
-                  General info 
+                  General info
 BPMN_GENERAL_WARNING=\
                   MSO-BPEL-5101W|\
                   WARNING: {0}|\
                   Please check other logs for more information|\
-                  General warning 
+                  General warning
 BPMN_AUDIT_EXEC=\
                   MSO-BPEL-5102I|\
                   Executing method: {0}. {1}|\
@@ -76,7 +76,7 @@
                   MSO-BPEL-5107W|\
                   Variable {0} is null; skipped|\
                   No resolution needed|\
-                  Variable is null                                                                                                                                            
+                  Variable is null
 BPMN_GENERAL_EXCEPTION_ARG=\
                   MSO-BPEL-9100E|\
                   Exception: {0}|\
@@ -86,7 +86,7 @@
                   MSO-BPEL-9101E|\
                   Exception encountered|\
                   Please check other logs for more information|\
-                  Exception encountered        
+                  Exception encountered
 BPMN_CALLBACK_EXCEPTION=\
                   MSO-BPEL-9102E|\
                   {0} Exception occurred processing callback to BPMN process {1}|\
diff --git a/common/src/main/resources/GenericMessages.properties b/common/src/main/resources/GenericMessages.properties
index 2640323..a9aa13f 100644
--- a/common/src/main/resources/GenericMessages.properties
+++ b/common/src/main/resources/GenericMessages.properties
@@ -51,52 +51,52 @@
                   MSO-GENERAL-5401W|\
                   WARNING: {0}|\
                   Please check other logs for more detailed info|\
-                  General warning 
+                  General warning
 AUDIT_EXEC=\
                   MSO-GENERAL-5402I|\
                   Executing method: {0}. {1}|\
                   No resolution needed|\
-                  Executing method 
+                  Executing method
 GENERAL_METRICS=\
                   MSO-GENERAL-5405I|\
                   Executed method: {0}. {1}|\
                   No resolution needed|\
-                  Generate information for Metric events       
+                  Generate information for Metric events
 LOGGER_SETUP=\
                   MSO-GENERAL-5406I|\
                   Request received to update logger level|\
                   No resolution needed|\
-                  Request received to update logger level 
+                  Request received to update logger level
 LOGGER_NOT_FOUND=\
                   MSO-GENERAL-5407I|\
                   Logger Servlet: Logger not found: : {0}|\
                   No resolution needed|\
-                  Logger not found 
+                  Logger not found
 LOGGER_UPDATE_SUC=\
                   MSO-GENERAL-5408I|\
                   Successfully update Logger: {0} from level {1} to level {2}|\
                   No resolution needed|\
-                  Generate information for Metric events    
+                  Generate information for Metric events
 LOGGER_UPDATE_DEBUG=\
                   MSO-GENERAL-5409I|\
                   Request received to update debug mode|\
                   No resolution needed|\
-                  Request received to update debug mode   
+                  Request received to update debug mode
 LOGGER_UPDATE_DEBUG_SUC=\
                   MSO-GENERAL-5410I|\
                   Successfully {0} debug mode|\
                   No resolution needed|\
-                  Successfully updated debug mode    
+                  Successfully updated debug mode
 LOAD_PROPERTIES_SUC=\
                   MSO-GENERAL-5411I|\
                   Properties file loaded successfully from file {0}|\
                   No resolution needed|\
-                  Properties file loaded successfully   
+                  Properties file loaded successfully
 NO_PROPERTIES=\
                   MSO-GENERAL-5412E|\
                   Missing or invalid properties file: {0}|\
                   Please verify whether properties file exist or readable|\
-                  Missing or invalid properties file   
+                  Missing or invalid properties file
 LOAD_PROPERTIES_FAIL=\
                   MSO-GENERAL-5413E|\
                   Failed loading properties file: {0}|\
@@ -106,17 +106,17 @@
                   MSO-GENERAL-5414I|\
                   Prepare to initialize loggers from {0}|\
                   No resolution needed|\
-                  Prepare to initialize loggers    
+                  Prepare to initialize loggers
 MADATORY_PARAM_MISSING=\
                   MSO-GENERAL-5415E|\
                   Not able to get mandatory parameter: {0} from file {1}|\
                   No resolution needed|\
-                  Mandatory parameter missing                      
+                  Mandatory parameter missing
 IDENTITY_SERVICE_NOT_FOUND=\
                   MSO-GENERAL-5416E|\
                   Identity service not found: region={0} ,cloud={1}|\
                   Please check other logs for more detailed info|\
-                  Identity service not found                                                                                                                                                                                                                                                                                                                                     
+                  Identity service not found
 GENERAL_EXCEPTION_ARG=\
                   MSO-GENERAL-9400E|\
                   Exception: {0}|\
@@ -126,7 +126,7 @@
                   MSO-GENERAL-9401E|\
                   Exception encountered|\
                   Please check other logs for more detailed info|\
-                  Exception encountered 
+                  Exception encountered
 INIT_LOGGER_FAIL=\
                   MSO-GENERAL-9402E|\
                   Failed to initialize loggers|\
diff --git a/common/src/main/resources/ResourceAdapter.properties b/common/src/main/resources/ResourceAdapter.properties
index 0dbbb3c..8eed385 100644
--- a/common/src/main/resources/ResourceAdapter.properties
+++ b/common/src/main/resources/ResourceAdapter.properties
@@ -56,42 +56,42 @@
                   MSO-RA-2201E|\
                   Delete Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\
                   Please check other logs for more detailed info|\
-                  Delete Stack timeout  
+                  Delete Stack timeout
 RA_UPDATE_STACK_TIMEOUT=\
                   MSO-RA-2202E|\
                   Update Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\
                   Please check other logs for more detailed info|\
-                  Delete Stack timeout   
+                  Delete Stack timeout
 RA_MISSING_PARAM=\
                   MSO-RA-4200I|\
                   Missing Required parameter: {0}|\
                   No resolution needed|\
-                  Mandatory Parameter Missing  
+                  Mandatory Parameter Missing
 RA_PARSING_ERROR=\
                   MSO-RA-4201E|\
                   Error parsing file {0}|\
                   No resolution needed|\
-                  Error parsing file                     
+                  Error parsing file
 RA_MARSHING_ERROR=\
                   MSO-RA-4202E|\
                   Error marshalling callback request with JaxB|\
                   Please check other logs for more detailed info|\
-                  Error marshalling callback request 
+                  Error marshalling callback request
 RA_PARSING_REQUEST_ERROR=\
                   MSO-RA-4203E|\
                   Error parsing request:{0}|\
                   Please check other logs for more detailed info|\
-                  Error parsing request                                                        
+                  Error parsing request
 RA_VLAN_PARSE=\
                   MSO-RA-4204E|\
                   Error parsing VLAN parameter in network stack {0}:{1}|\
                   Please check other logs for more detailed info|\
-                  Error parsing VLAN parameter in network stack 
+                  Error parsing VLAN parameter in network stack
 RA_GENERAL_WARNING=\
                   MSO-RA-5201W|\
                   WARNING: {0}|\
                   Please check other logs for more detailed info|\
-                  General warning 
+                  General warning
 RA_AUDIT_EXEC=\
                   MSO-RA-5202I|\
                   Executing method: {0}. {1}|\
@@ -101,52 +101,52 @@
                   MSO-RA-5205I|\
                   Executed method: {0}. {1}|\
                   No resolution needed|\
-                  Generate information for Metric events  
+                  Generate information for Metric events
 RA_PROPERTIES_NOT_FOUND=\
                   MSO-RA-5206E|\
                   Properties file: {0} not found|\
                   Please verify whether properties file exist or readable|\
-                  Properties file not found 
+                  Properties file not found
 RA_LOAD_PROPERTIES_SUC=\
                   MSO-RA-5207I|\
                   Properties file loaded successfully from file {0}|\
                   No resolution needed|\
-                  Properties file loaded successfully     
+                  Properties file loaded successfully
 RA_PARAM_NOT_FOUND=\
                   MSO-RA-5208E|\
                   Attribute {0} not found in DB. For {1}={2}|\
                   No resolution needed|\
-                  Attribute not found in DB    
+                  Attribute not found in DB
 RA_UNKOWN_PARAM=\
                   MSO-RA-5209E|\
                   Unknown {0}:{1}|\
                   Please check other logs for more detailed info|\
-                  Unknown attribute  
+                  Unknown attribute
 RA_CONFIG_EXC=\
                   MSO-RA-5210E|\
                   Configuration error:{0}|\
                   Please check other logs for more detailed info|\
-                  Configuration Error  
+                  Configuration Error
 RA_CONFIG_NOT_FOUND=\
                   MSO-RA-5211E|\
                   Could not found configuration file:{0}|\
                   Please verify whether configuration file exist or readable|\
-                  Configuration file not found                    
+                  Configuration file not found
 RA_SEND_REQUEST_SDNC=\
                   MSO-RA-5212I|\
                   Sending request to SDNC:{0}|\
                   No resolution needed|\
-                  Sending request to SDNC      
+                  Sending request to SDNC
 RA_RESPONSE_FROM_SDNC=\
                   MSO-RA-5213I|\
                   Response received from SDNC:{0}|\
                   No resolution needed|\
-                  Response received from SDNC     
+                  Response received from SDNC
 RA_CALLBACK_BPEL=\
                   MSO-RA-5218E|\
                   Callback to BPEL:{0} |\
                   Please check other logs for more detailed info|\
-                  Callback to BPEL       
+                  Callback to BPEL
 RA_NETWORK_ALREADY_EXIST=\
                   MSO-RA-5240W|\
                   Network already exists: {0} in {1}/{2}|\
@@ -156,117 +156,117 @@
                   MSO-RA-5241E|\
                   Network doesn't exist: {0} in {1}/{2}|\
                   Please check other logs for more detailed info|\
-                  Network doesn't exist  
+                  Network doesn't exist
 RA_NETWORK_ORCHE_MODE_NOT_SUPPORT=\
                   MSO-RA-5243E|\
                   Network Type Orchestrated mode:{0} is not supported|\
                   Please check other logs for more detailed info|\
-                  Network Type Orchestrated mode                                                                                                                          
+                  Network Type Orchestrated mode
 RA_ROLLBACK_NULL=\
                   MSO-RA-5249W|\
                   Rollback: No action to perform|\
                   No resolution needed|\
-                  Rollback: No action to perform                                                                 
+                  Rollback: No action to perform
 RA_ASYNC_ROLLBACK=\
                   MSO-RA-5251I|\
                   Async Rollback Network {0}|\
                   No resolution needed|\
-                  Async Rollback Network  
+                  Async Rollback Network
 RA_WSDL_NOT_FOUND=\
                   MSO-RA-5252E|\
                   Unable to find wsdl file {0} in classpath|\
                   No resolution needed|\
-                  Unable to find wsdl file in classpath                                                                                       
+                  Unable to find wsdl file in classpath
 RA_CALLBACK_BPEL_COMPLETE=\
                   MSO-RA-5258I|\
                   Completed processing BPEL request|\
                   No resolution needed|\
-                  Completed processing BPEL request  
+                  Completed processing BPEL request
 RA_SDNC_MISS_CONFIG_PARAM=\
                   MSO-RA-5259E|\
                   Missing configuration for:{0}|\
                   Please check other logs for more detailed info|\
-                  Missing configuration for  
+                  Missing configuration for
 RA_SDNC_INVALID_CONFIG=\
                   MSO-RA-5260W|\
                   Invalid configuration(most requests require atleast 3 params:method,timeout,action) for Key:{0} Value:{1}|\
                   Please check other logs for more detailed info|\
-                  Invalid configuration                    
+                  Invalid configuration
 RA_TENANT_NOT_FOUND=\
                   MSO-RA-5263E|\
                   Tenant not found: tenant={0}, cloudSiteId={1}|\
                   Please check other logs for more detailed info|\
-                  Tenant not found     
+                  Tenant not found
 RA_PRINT_URL=\
                   MSO-RA-5264I|\
                   {0} URL:{1}|\
                   No resolution needed|\
-                  Log the URL    
+                  Log the URL
 RA_RECEIVE_SDNC_NOTIF=\
                   MSO-RA-5268I|\
                   Received SDNC Notification. XML:{0}|\
                   No resolution needed|\
-                  Received SDNC Notification   
+                  Received SDNC Notification
 RA_INIT_SDNC_ADAPTER=\
                   MSO-RA-5269I|\
                   Initializing mso-sdnc-adapter|\
                   No resolution needed|\
-                  Initializing mso-sdnc-adapter     
+                  Initializing mso-sdnc-adapter
 RA_RECEIVE_BPEL_REQUEST=\
                   MSO-RA-5270I|\
                   BPEL request received [{0}] with callback URL [{1}]|\
                   No resolution needed|\
-                  BPEL request received  
+                  BPEL request received
 RA_SEND_REQUEST_SDNC_ERR=\
                   MSO-RA-5271E|\
                   Error sending request to SDNC. Failed to start SDNC Client thread|\
                   Please check other logs for more detailed info|\
-                  Error sending request to SDNC         
+                  Error sending request to SDNC
 RA_TENANT_ALREADY_EXIST=\
                   MSO-RA-5272E|\
                   Tenant {0} already exists in {1}|\
                   No resolution needed|\
-                  Tenant alaredy exists                    
+                  Tenant alaredy exists
 RA_SEND_REQUEST_APPC_ERR=\
                   MSO-RA-5273E|\
                   Error sending request to APPC|\
                   Please check other logs for more detailed info|\
-                  Error sending request to APPC     
+                  Error sending request to APPC
 RA_VNF_ALREADY_EXIST=\
                   MSO-RA-5275E|\
                   Stack {0} already exists in {1}/{2}|\
                   No resolution needed|\
-                  VNF already exists   
+                  VNF already exists
 RA_VNF_UNKNOWN_PARAM=\
                   MSO-RA-5276E|\
                   Unknown  {0}:{1}|\
                   No resolution needed|\
-                  Uknown parameter  
+                  Uknown parameter
 RA_VNF_EXTRA_PARAM=\
                   MSO-RA-5277E|\
                   Create Stack ({0}) extra input params received:{1}|\
                   Please check other logs for more detailed info|\
-                  Extra input params received   
+                  Extra input params received
 RA_VNF_NOT_EXIST=\
                   MSO-RA-5278E|\
                   Stack {0} does not exist in {1}/{2}|\
                   No resolution needed|\
-                  Stack does not exist                                                                                                                                                                                                                                            
+                  Stack does not exist
 RA_ASYNC_CREATE_VNF=\
                   MSO-RA-5282I|\
                   Async Create VNF :{0} of type {1} in {2}/{3}|\
                   No resolution needed|\
-                  Async Create VNF 
+                  Async Create VNF
 RA_SEND_VNF_NOTIF_ERR=\
                   MSO-RA-5283E|\
                   Error sending createVnf notification|\
                   Please check other logs for more detailed info|\
-                  Error sending createVnf notification                                                                                                                                                                                                                                                                                         
+                  Error sending createVnf notification
 RA_ASYNC_CREATE_VNF_COMPLETE=\
                   MSO-RA-5284I|\
                   Completed createVnfA|\
                   No resolution needed|\
-                  Completed createVnfA 
+                  Completed createVnfA
 RA_ASYNC_UPDATE_VNF=\
                   MSO-RA-5285I|\
                   Async Update VNF :{0} of type {1} in {2}/{3}|\
@@ -276,7 +276,7 @@
                   MSO-RA-5286I|\
                   Completed updateVnfA|\
                   No resolution needed|\
-                  Completed updateVnfA                    
+                  Completed updateVnfA
 RA_ASYNC_QUERY_VNF=\
                   MSO-RA-5287I|\
                   Async Query VNF :{0} of type {1} in {2}/{3}|\
@@ -286,7 +286,7 @@
                   MSO-RA-5288I|\
                   Completed queryVnfA|\
                   No resolution needed|\
-                  Completed queryVnfA    
+                  Completed queryVnfA
 RA_ASYNC_DELETE_VNF=\
                   MSO-RA-5289I|\
                   Async Delete VNF :{0} of type {1} in {2}/{3}|\
@@ -296,7 +296,7 @@
                   MSO-RA-5290I|\
                   Completed deleteVnfA|\
                   No resolution needed|\
-                  Completed deleteVnfA    
+                  Completed deleteVnfA
 RA_ASYNC_ROLLBACK_VNF=\
                   MSO-RA-5291I|\
                   Async Rollback VNF|\
@@ -306,7 +306,7 @@
                   MSO-RA-5292I|\
                   Completed rollbackVnfA|\
                   No resolution needed|\
-                  Completed rollbackVnfA     
+                  Completed rollbackVnfA
 RA_DB_INVALID_STATUS=\
                   MSO-RA-5293E|\
                   Invalid status value|\
@@ -316,12 +316,12 @@
                   MSO-RA-5294E|\
                   Request ID={0} does not exist in DB|\
                   Please check other logs for more detailed info|\
-                  Record does not exist in DB                  
+                  Record does not exist in DB
 RA_CANT_UPDATE_REQUEST=\
                   MSO-RA-5295E|\
                   Enable to update {0} in DB for Request ID={1}|\
                   Please check other logs for more detailed info|\
-                  Enable to update DB    
+                  Enable to update DB
 RA_CONFIG_LOAD=\
                   MSO-RA-5296I|\
                   Configuration loaded from {0}|\
@@ -331,42 +331,42 @@
                   MSO-RA-5297I|\
                   Received Workflow Message: {0}|\
                   No resolution needed|\
-                  Received Workflow Message   
+                  Received Workflow Message
 RA_NS_EXC=\
                   MSO-RA-5298I|\
                   VFC Adatper Message: {0}|\
                   No resolution needed|\
-                  VFC Adatper Message                                                                                   
+                  VFC Adatper Message
 RA_GENERAL_EXCEPTION_ARG=\
                   MSO-RA-9200E|\
                   Exception: {0}|\
                   Please check other logs for more detailed info|\
-                  General exception with reason 
+                  General exception with reason
 RA_GENERAL_EXCEPTION=\
                   MSO-RA-9201E|\
                   Exception encountered|\
                   Please check other logs for more detailed info|\
-                  Exception encountered     
+                  Exception encountered
 RA_CONNECTION_EXCEPTION=\
                   MSO-RA-9202E|\
                   Exception communicating with {0}: {1}|\
                   Please check other logs for more detailed info|\
-                  Communication Exception 
+                  Communication Exception
 RA_EXCEPTION_COMMUNICATE_SDNC=\
                   MSO-RA-9203E|\
                   Exception while processing request to SDNC|\
                   Please check other logs for more detailed info|\
-                  Exception while processing request to SDNC   
+                  Exception while processing request to SDNC
 RA_EVALUATE_XPATH_ERROR=\
                   MSO-RA-9204E|\
                   Error while evaluating xpath {0} - {1}|\
                   Please check other logs for more detailed info|\
-                  Error while evaluating xpath   
+                  Error while evaluating xpath
 RA_ANALYZE_ERROR_EXC=\
                   MSO-RA-9205E|\
                   Problem analyzing error returned by SDN-C|\
                   Please check other logs for more detailed info|\
-                  Problem analyzing error returned by SDN-C  
+                  Problem analyzing error returned by SDN-C
 RA_ERROR_GET_RESPONSE_SDNC=\
                   MSO-RA-9206E|\
                   Error getting response code from errored SDNC request|\
@@ -381,7 +381,7 @@
                   MSO-RA-9208E|\
                   Create Stack Error: {0}|\
                   Please check other logs for more detailed info|\
-                  Create Stack Error  
+                  Create Stack Error
 RA_UPDATE_STACK_ERR=\
                   MSO-RA-9209E|\
                   Update Stack Error - Polling complete with non-success status: {0}, {1}|\
@@ -391,17 +391,17 @@
                   MSO-RA-9210E|\
                   Exception while update network, {0} in {1}/{2}|\
                   Please check other logs for more detailed info |\
-                  Update Network Error  
+                  Update Network Error
 RA_QUERY_NETWORK_EXC=\
                   MSO-RA-9211E|\
                   Exception while query network: {0} in {1}/{2}|\
                   Please check other logs for more detailed info|\
-                  Exception while query network:    
+                  Exception while query network:
 RA_CREATE_NETWORK_EXC=\
                   MSO-RA-9212E|\
                   Exception while create network: {0} in {1}/{2}|\
                   Please check other logs for more detailed info|\
-                  Create Network Error  
+                  Create Network Error
 RA_DELETE_NETWORK_EXC=\
                   MSO-RA-9213E|\
                   Exception while delete network: {0} in {1}/{2}|\
@@ -416,12 +416,12 @@
                   MSO-RA-9215E|\
                   {0} URL converion failed|\
                   Please check other logs for more detailed info|\
-                  WSDL URL converion failed 
+                  WSDL URL converion failed
 RA_INIT_NOTIF_EXC=\
                   MSO-RA-9216E|\
                   Caught exception initializing Notification Url|\
                   Please check other logs for more detailed info|\
-                  Caught exception initializing Notification Url  
+                  Caught exception initializing Notification Url
 RA_SET_CALLBACK_AUTH_EXC=\
                   MSO-RA-9217E|\
                   Unable to set authorization in callback request|\
@@ -431,7 +431,7 @@
                   MSO-RA-9218E|\
                   Exception caught while getting fault info|\
                   Please check other logs for more detailed info|\
-                  Exception caught while getting fault info 
+                  Exception caught while getting fault info
 RA_CALLBACK_BPEL_EXC=\
                   MSO-RA-9219E|\
                   Error sending BPEL Callback request|\
@@ -441,7 +441,7 @@
                   MSO-RA-9220E|\
                   Create Tenant Error: {0}|\
                   Please check other logs for more detailed info|\
-                  Create Tenant Error  
+                  Create Tenant Error
 RA_DELETE_TEMAMT_ERR=\
                   MSO-RA-9221E|\
                   Delete Tenant Error: {0}|\
@@ -451,12 +451,12 @@
                   MSO-RA-9222E|\
                   Error creating SDNC request|\
                   Please check other logs for more detailed info|\
-                  Error creating SDNC request  
+                  Error creating SDNC request
 RA_ERROR_CREATE_SDNC_RESPONSE=\
                   MSO-RA-9223E|\
                   Error creating SDNC response|\
                   Please check other logs for more detailed info|\
-                  Error creating SDNC response   
+                  Error creating SDNC response
 RA_ERROR_CONVERT_XML2STR=\
                   MSO-RA-9224E|\
                   Error converting xml Document to String|\
@@ -466,12 +466,12 @@
                   MSO-RA-9225E|\
                   Update Tenant Error: {0}|\
                   Please check other logs for more detailed info|\
-                  Update Tenant Error  
+                  Update Tenant Error
 RA_ROLLBACK_TENANT_ERR=\
                   MSO-RA-9226E|\
                   Rollback Tenant Error: {0}|\
                   Please check other logs for more detailed info|\
-                  Rollback Tenant Error  
+                  Rollback Tenant Error
 RA_QUERY_VNF_ERR=\
                   MSO-RA-9227E|\
                   Exception while query VNF:{0} in {1}/{2}|\
@@ -481,12 +481,12 @@
                   MSO-RA-9228E|\
                   Exception while update VNF:{0} in {1}/{2}|\
                   Please check other logs for more detailed info|\
-                  Exception while update VNF 
+                  Exception while update VNF
 RA_DELETE_VNF_ERR=\
                   MSO-RA-9229E|\
                   Exception while delete VNF:{0} in {1}/{2}|\
                   Please check other logs for more detailed info|\
-                  Exception while delete VNF     
+                  Exception while delete VNF
 RA_CREATE_VNF_ERR=\
                   MSO-RA-9230E|\
                   Exception while create VNF:{0} in {1}/{2}|\
@@ -496,4 +496,4 @@
                   MSO-RA-9231E|\
                   Exception while rollback VNF|\
                   Please check other logs for more detailed info|\
-                  Exception while rollback VNF                                                                                                                                                                                                                                                                                                                                                                   
+                  Exception while rollback VNF