Merge "Remove redundant type cast"
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/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/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-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/exceptions/ApplicationException.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/exceptions/ApplicationException.java
index 30d42ae..039c160 100644
--- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/exceptions/ApplicationException.java
+++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/exceptions/ApplicationException.java
@@ -20,7 +20,7 @@
 
 package org.openecomp.mso.adapters.vfc.exceptions;
 
-import javax.ws.rs.core.Response;;
+import javax.ws.rs.core.Response;
 
 public class ApplicationException extends Exception {
 
diff --git a/bpmn/MSOCommonBPMN/pom.xml b/bpmn/MSOCommonBPMN/pom.xml
index 71626f5..e4e1fd6 100644
--- a/bpmn/MSOCommonBPMN/pom.xml
+++ b/bpmn/MSOCommonBPMN/pom.xml
@@ -302,6 +302,11 @@
 			<version>${spring.version}</version>
 		</dependency>
 		<dependency>
+			<groupId>org.openecomp.sdc.sdc-tosca</groupId>
+			<artifactId>sdc-tosca</artifactId>
+			<version>1.1.32</version>
+		</dependency>
+		<dependency>
 			<groupId>com.github.tomakehurst</groupId>
 			<artifactId>wiremock</artifactId>
 			<version>1.56</version>
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
new file mode 100644
index 0000000..78eb2f6
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java
@@ -0,0 +1,131 @@
+/*-
+ * ============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.bpmn.common.resource;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import org.jboss.resteasy.client.jaxrs.ResteasyClient;
+import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
+import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
+import org.openecomp.mso.logger.MsoLogger;
+import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper;
+import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
+import org.openecomp.sdc.tosca.parser.impl.SdcToscaParserFactory;
+import org.openecomp.sdc.toscaparser.api.NodeTemplate;
+import org.openecomp.sdc.toscaparser.api.Property;
+import org.openecomp.sdc.toscaparser.api.functions.GetInput;
+import org.openecomp.sdc.toscaparser.api.parameters.Input;
+
+import javax.ws.rs.core.Response;
+import java.io.File;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+public class ResourceRequestBuilder {
+
+    public static String CUSTOMIZATION_UUID = "customizationUUID";
+    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);
+
+    public static Map<String, Object> buildResouceRequest(String serviceUuid,
+                                              String resourceCustomizationUuid,
+                                              Map<String, Object> serviceInputs) throws SdcToscaParserException {
+
+        Map<String, Object> resouceRequest = new HashMap<>();
+
+        String csarpath = null;
+        try {
+            csarpath = getCsarFromUuid(serviceUuid);
+        } catch (Exception e) {
+            LOGGER.debug("csar file is not available for service uuid:" + serviceUuid, e);
+            return resouceRequest;
+        }
+
+        SdcToscaParserFactory toscaParser = SdcToscaParserFactory.getInstance();
+        ISdcCsarHelper iSdcCsarHelper = toscaParser.getSdcCsarHelper(csarpath);
+
+        List<Input> serInput = iSdcCsarHelper.getServiceInputs();
+        Optional<NodeTemplate> nodeTemplateOpt = iSdcCsarHelper.getServiceNodeTemplates().stream()
+                .filter(e -> e.getMetaData().getValue(CUSTOMIZATION_UUID).equals(resourceCustomizationUuid))
+                .findFirst();
+
+        if (nodeTemplateOpt.isPresent()) {
+            NodeTemplate nodeTemplate = nodeTemplateOpt.get();
+            LinkedHashMap<String, Property> resourceProperties = nodeTemplate.getProperties();
+
+            for (String key: resourceProperties.keySet()) {
+                Property property = resourceProperties.get(key);
+
+                Object value = getValue(property.getValue(), serviceInputs, serInput);
+                resouceRequest.put(key, value);
+            }
+        }
+        return resouceRequest;
+    }
+
+    private static Object getValue(Object value, Map<String, Object> serviceInputs,
+                                   List<Input> servInputs) {
+        if (value instanceof Map) {
+            Map<String, Object> valueMap = new HashMap<>();
+
+            Map<String, Object> propertyMap = (Map<String, Object>) value;
+
+            for (String key: propertyMap.keySet()) {
+                valueMap.put(key, getValue(propertyMap.get(key), serviceInputs, servInputs));
+            }
+            return valueMap; // return if the value is nested hashmap
+        } else if (value instanceof GetInput) {
+            String inputName = ((GetInput) value).getInputName();
+
+            if (serviceInputs.get(inputName) != null) {
+                value = serviceInputs.get(inputName);
+            } else {
+                for (Input input: servInputs) {
+                    if (input.getName().equals(inputName)) {
+                        return input.getDefault();  // return default value
+                    }
+                }
+            }
+        }
+        return value; // return property value
+    }
+
+    private static String getCsarFromUuid(String uuid) throws Exception {
+
+        ResteasyClient client = new ResteasyClientBuilder().build();
+        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"));
+
+        if (!csarFile.exists()) {
+            throw new Exception("csar file does not exist.");
+        }
+
+        return csarFile.getAbsolutePath();
+    }
+}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/RestClient.java b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/RestClient.java
index 74b1c3f..1436d83 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/RestClient.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/RestClient.java
@@ -157,14 +157,9 @@
 		}
 		client.register(this.getMapper());
 		Optional<ClientResponseFilter> responseFilter = this.addResponseFilter();
-		if (responseFilter.isPresent()) {
-			client.register(responseFilter.get());
-		}
-		if (!path.isPresent()) {
-			webTarget = client.target(host.toString());
-		} else {
-			webTarget = client.target(UriBuilder.fromUri(host + path.get().toString()));
-		}
+		responseFilter.ifPresent(clientResponseFilter -> client.register(clientResponseFilter));
+		webTarget = path.<WebTarget>map(uri -> client.target(UriBuilder.fromUri(host + uri.toString())))
+			.orElseGet(() -> client.target(host.toString()));
 		this.accept = MediaType.APPLICATION_JSON;
 		this.contentType = MediaType.APPLICATION_JSON;
 	}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java
index b5ab63c..01f6738 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java
@@ -36,7 +36,7 @@
 	
 	private final String name;
 	
-	private PolicyServiceType(String name) {
+	PolicyServiceType(String name) {
 		this.name = name;
 	}
 	
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
new file mode 100644
index 0000000..262c12e
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilderTest.java
@@ -0,0 +1,35 @@
+/*-
+ * ============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.bpmn.common.resource;
+
+import org.junit.Test;
+
+import java.util.HashMap;
+
+public class ResourceRequestBuilderTest {
+
+    @Test
+    public void buildResouceRequestTest() throws Exception {
+
+        ResourceRequestBuilder.buildResouceRequest("aa4535",
+                "a1074969-944f-4ddc-b687-9550b0c8cd57", new HashMap<>());
+    }
+
+}
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/mock/MockResource.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/mock/MockResource.java
index 74f50ba..9ead882 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/mock/MockResource.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/mock/MockResource.java
@@ -108,7 +108,7 @@
 	@Produces("application/json")
 	public Response start(@PathParam("portNumber") Integer portNumber) {
 		if (portNumber == null) portNumber = defaultPort;
-		return startMockServer(portNumber.intValue());
+		return startMockServer(portNumber);
 	}
 
 
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/domain/InventoryType.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/domain/InventoryType.java
index 653f75c..fbc312e 100644
--- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/domain/InventoryType.java
+++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/domain/InventoryType.java
@@ -27,7 +27,7 @@
 

 	private String type;

 

-	private InventoryType(String type){

+	InventoryType(String type){

 		this.type = type;

 	}

 

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
new file mode 100644
index 0000000..44eaa34
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
@@ -0,0 +1,269 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved. 
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.infrastructure.scripts;
+
+import static org.apache.commons.lang3.StringUtils.*;
+import groovy.xml.XmlUtil
+import groovy.json.*
+import org.openecomp.mso.bpmn.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.List;
+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
+
+/**
+ * This groovy class supports the <class>UpdateCustomE2EServiceInstance.bpmn</class> process.
+ * AlaCarte flow for 1702 ServiceInstance Update
+ *
+ */
+public class UpdateCustomE2EServiceInstance extends AbstractServiceTaskProcessor {
+	String Prefix="UPDSI_"
+	ExceptionUtil exceptionUtil = new ExceptionUtil()
+	JsonUtils jsonUtil = new JsonUtils()
+
+
+	public void preProcessRequest (Execution execution) {
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		execution.setVariable("prefix",Prefix)
+		String msg = ""
+		utils.log("INFO", " *** preProcessRequest() *** ", isDebugEnabled)
+
+		try {
+
+			String siRequest = execution.getVariable("bpmnRequest")
+			utils.logAudit(siRequest)
+
+			String requestId = execution.getVariable("mso-request-id")
+			execution.setVariable("msoRequestId", requestId)
+			utils.log("INFO", "Input Request:" + siRequest + " reqId:" + requestId, isDebugEnabled)
+
+			String serviceInstanceId = execution.getVariable("serviceInstanceId")
+			if (isBlank(serviceInstanceId)) {
+				msg = "Input serviceInstanceId' is null"
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			}
+						
+			//subscriberInfo
+			String globalSubscriberId = jsonUtil.getJsonValue(siRequest, "requestDetails.subscriberInfo.globalSubscriberId")
+			if (isBlank(globalSubscriberId)) {
+				msg = "Input globalSubscriberId' is null"
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			} else {
+				execution.setVariable("globalSubscriberId", globalSubscriberId)
+			}
+
+			//requestInfo
+			execution.setVariable("source", jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.source"))
+			execution.setVariable("serviceInstanceName", jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.instanceName"))
+			execution.setVariable("disableRollback", jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.suppressRollback"))
+			String productFamilyId = jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.productFamilyId")
+			if (isBlank(productFamilyId))
+			{
+				msg = "Input productFamilyId is null"
+				utils.log("INFO", msg, isDebugEnabled)
+				//exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			} else {
+				execution.setVariable("productFamilyId", productFamilyId)
+			}
+	         String userParams = jsonUtil.getJsonValue(siRequest, "requestDetails.requestParameters.userParams")      
+             utils.log("INFO", "userParams:" + userParams, isDebugEnabled)
+	         List<String> paramList = jsonUtil.StringArrayToList(execution, userParams)
+	         String uuiRequest = jsonUtil.getJsonValue(paramList.get(0), "UUIRequest")
+			//modelInfo
+			if (isBlank(uuiRequest)) {
+				msg = "Input uuiRequest is null"
+				utils.log("INFO", msg, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			} else
+			{
+				execution.setVariable("uuiRequest", uuiRequest)
+			}
+
+			utils.log("INFO", "uuiRequest:\n" + uuiRequest,  isDebugEnabled)
+
+			//requestParameters
+			String serviceType = jsonUtil.getJsonValue(uuiRequest, "service.parameters.serviceType")
+			if (isBlank(serviceType)) {
+				msg = "Input serviceType is null"
+				utils.log("INFO", msg, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			} 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) {
+			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)
+	}
+
+	public void sendSyncResponse (Execution execution) {
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO", " *** sendSyncResponse *** ", isDebugEnabled)
+
+		try {
+			String operationId = execution.getVariable("operationId")
+			String serviceInstanceId = execution.getVariable("serviceInstanceId")
+			// RESTResponse for API Handler (APIH) Reply Task
+			String updateServiceRestRequest = """{"service":{"serviceId":"${serviceInstanceId}","operationId":"${operationId}"}}""".trim()
+			utils.log("INFO", " sendSyncResponse to APIH:" + "\n" + updateServiceRestRequest, isDebugEnabled)
+			sendWorkflowResponse(execution, 202, updateServiceRestRequest)
+			execution.setVariable("sentSyncResponse", true)
+
+		} catch (Exception ex) {
+			String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
+			utils.log("INFO", msg, isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+		}
+		utils.log("INFO"," ***** Exit sendSyncResopnse *****",  isDebugEnabled)
+	}
+
+
+	public void sendSyncError (Execution execution) {
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO", " *** sendSyncError *** ", isDebugEnabled)
+
+		try {
+			String errorMessage = ""
+			if (execution.getVariable("WorkflowException") instanceof WorkflowException) {
+				WorkflowException wfe = execution.getVariable("WorkflowException")
+				errorMessage = wfe.getErrorMessage()
+			} else {
+				errorMessage = "Sending Sync Error."
+			}
+
+			String buildworkflowException =
+					"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+					<aetgt:ErrorMessage>${errorMessage}</aetgt:ErrorMessage>
+					<aetgt:ErrorCode>7000</aetgt:ErrorCode>
+				   </aetgt:WorkflowException>"""
+
+			utils.logAudit(buildworkflowException)
+			sendWorkflowResponse(execution, 500, buildworkflowException)
+
+		} catch (Exception ex) {
+			utils.log("INFO", " Sending Sync Error Activity Failed. " + "\n" + ex.getMessage(), isDebugEnabled)
+		}
+
+	}
+
+	public void prepareCompletionRequest (Execution execution) {
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO", " *** prepareCompletion *** ", isDebugEnabled)
+
+		try {
+			String requestId = execution.getVariable("msoRequestId")
+			String serviceInstanceId = execution.getVariable("serviceInstanceId")
+			String source = execution.getVariable("source")
+			
+			String msoCompletionRequest =
+					"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+								xmlns:ns="http://org.openecomp/mso/request/types/v1">

+						<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+							<request-id>${requestId}</request-id>
+							<action>UPDATE</action>
+							<source>${source}</source>
+			   			</request-info>
+						<status-message>Service Instance was updated successfully.</status-message>
+						<serviceInstanceId>${serviceInstanceId}</serviceInstanceId>
+			   			<mso-bpel-name>UpdateGenericALaCarteServiceInstance</mso-bpel-name>
+					</aetgt:MsoCompletionRequest>"""
+
+			// Format Response
+			String xmlMsoCompletionRequest = utils.formatXml(msoCompletionRequest)
+
+			execution.setVariable("completionRequest", xmlMsoCompletionRequest)
+			utils.log("INFO", " Overall SUCCESS Response going to CompleteMsoProcess - " + "\n" + xmlMsoCompletionRequest, isDebugEnabled)
+
+		} catch (Exception ex) {
+			String msg = " Exception in prepareCompletion:" + ex.getMessage()
+			utils.log("INFO", msg, isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+		}
+		utils.log("INFO", "*** Exit prepareCompletionRequest ***", isDebugEnabled)
+	}
+
+	public void prepareFalloutRequest(Execution execution){
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO", " *** prepareFalloutRequest *** ", isDebugEnabled)
+
+		try {
+			WorkflowException wfex = execution.getVariable("WorkflowException")
+			utils.log("INFO", " Input Workflow Exception: " + wfex.toString(), isDebugEnabled)
+			String requestId = execution.getVariable("msoRequestId")
+			String source = execution.getVariable("source")
+			String requestInfo =
+					"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					<request-id>${requestId}</request-id>
+					<action>UPDATE</action>
+					<source>${source}</source>
+				   </request-info>"""
+
+			String falloutRequest = exceptionUtil.processMainflowsBPMNException(execution, requestInfo)
+			execution.setVariable("falloutRequest", falloutRequest)
+		} catch (Exception ex) {
+			utils.log("INFO", "Exception prepareFalloutRequest:" + ex.getMessage(), isDebugEnabled)
+			String errorException = "  Bpmn error encountered in UpdateGenericALaCarteServiceInstance flow. FalloutHandlerRequest,  buildErrorResponse() - " + ex.getMessage()
+			String requestId = execution.getVariable("msoRequestId")
+			String falloutRequest =
+					"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"

+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">

+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					      <request-id>${requestId}</request-id>
+					      <action>UPDATE</action>
+					      <source>UUI</source>
+					   </request-info>
+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+							<aetgt:ErrorMessage>${errorException}</aetgt:ErrorMessage>
+							<aetgt:ErrorCode>7000</aetgt:ErrorCode>
+						</aetgt:WorkflowException>
+					</aetgt:FalloutHandlerRequest>"""
+
+			execution.setVariable("falloutRequest", falloutRequest)
+		}
+		utils.log("INFO", "*** Exit prepareFalloutRequest ***", isDebugEnabled)
+	}	
+}
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..5f3caf5
--- /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.postCreateSDNC(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/subprocess/DoCreateVFCNetworkServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVFCNSResource.bpmn
similarity index 98%
rename from bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVFCNetworkServiceInstance.bpmn
rename to bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVFCNSResource.bpmn
index 67b0f96..29dbca4 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVFCNetworkServiceInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVFCNSResource.bpmn
@@ -1,6 +1,6 @@
 <?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" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0">
-  <bpmn:process id="DoCreateVFCNetworkServiceInstance" name="DoCreateVFCNetworkServiceInstance" isExecutable="true">
+  <bpmn:process id="CreateVFCNSResource" name="CreateVFCNSResource" isExecutable="true">
     <bpmn:startEvent id="createNS_StartEvent" name="createNS_StartEvent">
       <bpmn:outgoing>SequenceFlow_1qo2pln</bpmn:outgoing>
     </bpmn:startEvent>
@@ -258,4 +258,4 @@
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn:definitions>
+</bpmn:definitions>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn
new file mode 100644
index 0000000..e7a88be
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn
@@ -0,0 +1,337 @@
+<?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.11.3">
+  <bpmn:process id="UpdateCustomE2EServiceInstance" name="UpdateCustomE2EServiceInstance" isExecutable="true">
+    <bpmn:startEvent id="StartEvent_00qj6ro" name="Update SI Start Flow">
+      <bpmn:outgoing>SequenceFlow_0s2spoq</bpmn:outgoing>
+    </bpmn:startEvent>
+    <bpmn:subProcess id="SubProcess_0ka59nc" name="Sub-process for UnexpectedErrors" triggeredByEvent="true">
+      <bpmn:scriptTask id="ScriptTask_0u3lw39" name="Handle Unexpected Error" scriptFormat="groovy">
+        <bpmn:incoming>SequenceFlow_1dsbjjb</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_1yay321</bpmn:outgoing>
+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*

+ExceptionUtil ex = new ExceptionUtil()

+ex.processJavaException(execution)]]></bpmn:script>
+      </bpmn:scriptTask>
+      <bpmn:startEvent id="StartEvent_0v1ffn4">
+        <bpmn:outgoing>SequenceFlow_1dsbjjb</bpmn:outgoing>
+        <bpmn:errorEventDefinition />
+      </bpmn:startEvent>
+      <bpmn:endEvent id="EndEvent_0eznq6x">
+        <bpmn:incoming>SequenceFlow_1yay321</bpmn:incoming>
+      </bpmn:endEvent>
+      <bpmn:sequenceFlow id="SequenceFlow_1dsbjjb" name="" sourceRef="StartEvent_0v1ffn4" targetRef="ScriptTask_0u3lw39" />
+      <bpmn:sequenceFlow id="SequenceFlow_1yay321" name="" sourceRef="ScriptTask_0u3lw39" targetRef="EndEvent_0eznq6x" />
+    </bpmn:subProcess>
+    <bpmn:callActivity id="DoUpdateE2EServiceInstance" name="Call DoUpdateE2EServiceInstance&#10;" calledElement="DoUpdateE2EServiceInstance">
+      <bpmn:extensionElements>
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="msoRequestId" target="msoRequestId" />
+        <camunda:out source="rollbackData" target="rollbackData" />
+        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="serviceInstanceName" target="serviceInstanceName" />
+        <camunda:in source="productFamilyId" target="productFamilyId" />
+        <camunda:in source="disableRollback" target="disableRollback" />
+        <camunda:in source="uuiRequest" target="uuiRequest" />
+        <camunda:out source="rolledBack" target="rolledBack" />
+        <camunda:out source="serviceInstanceName" target="serviceInstanceName" />
+        <camunda:in source="failIfExists" target="failIfExists" />
+        <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
+        <camunda:in source="serviceType" target="serviceType" />
+        <camunda:in source="initialStatus" target="initialStatus" />
+        <camunda:in source="operationId" target="operationId" />
+        <camunda:in source="operationType" target="operationType" />
+        <camunda:in source="URN_mso_adapters_openecomp_db_endpoint" target="URN_mso_adapters_openecomp_db_endpoint" />
+      </bpmn:extensionElements>
+      <bpmn:incoming>SequenceFlow_19eilro</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0klbpxx</bpmn:outgoing>
+    </bpmn:callActivity>
+    <bpmn:endEvent id="EndEvent_0bpd6c0" name="End">
+      <bpmn:incoming>SequenceFlow_0yayvrf</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:scriptTask id="ScriptTask_1s09c7d" name="Pre Process Incoming Request" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0s2spoq</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0z4faf9</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def csi= new UpdateCustomE2EServiceInstance()

+csi.preProcessRequest(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:scriptTask id="ScriptTask_0ttvn8r" name="Prepare Completion Request" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_14zu6wr</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0je30si</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def csi = new UpdateCustomE2EServiceInstance()

+csi.prepareCompletionRequest(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:callActivity id="CallActivity_02fyxz0" name="Call CompleteMsoProcess" calledElement="CompleteMsoProcess">
+      <bpmn:extensionElements>
+        <camunda:in source="completionRequest" target="CompleteMsoProcessRequest" />
+        <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="CMSO_ResponseCode" target="CMSO_ResponseCode" />
+        <camunda:out source="CompleteMsoProcessResponse" target="CompleteMsoProcessResponse" />
+        <camunda:out source="CMSO_ErrorResponse" target="CMSO_ErrorResponse" />
+      </bpmn:extensionElements>
+      <bpmn:incoming>SequenceFlow_0je30si</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0yayvrf</bpmn:outgoing>
+    </bpmn:callActivity>
+    <bpmn:subProcess id="SubProcess_0vaws86" name="Sub-process for FalloutHandler and Rollback" triggeredByEvent="true">
+      <bpmn:startEvent id="StartEvent_0dug28e">
+        <bpmn:outgoing>SequenceFlow_0e1r62n</bpmn:outgoing>
+        <bpmn:errorEventDefinition />
+      </bpmn:startEvent>
+      <bpmn:endEvent id="EndEvent_03wysuk">
+        <bpmn:incoming>SequenceFlow_1ysapam</bpmn:incoming>
+      </bpmn:endEvent>
+      <bpmn:scriptTask id="ScriptTask_0u8o9p2" name="Prepare Fallout Request" scriptFormat="groovy">
+        <bpmn:incoming>SequenceFlow_0n9pexp</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_01umodj</bpmn:outgoing>
+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def csi = new UpdateCustomE2EServiceInstance()

+csi.prepareFalloutRequest(execution)]]></bpmn:script>
+      </bpmn:scriptTask>
+      <bpmn:callActivity id="CallActivity_1ang7q8" name="Call FalloutHandler" calledElement="FalloutHandler">
+        <bpmn:extensionElements>
+          <camunda:in source="falloutRequest" target="FalloutHandlerRequest" />
+          <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="FH_ResponseCode" target="FH_ResponseCode" />
+          <camunda:out source="FalloutHandlerResponse" target="FalloutHandlerResponse" />
+          <camunda:out source="FH_ErrorResponse" target="FH_ErrorResponse" />
+        </bpmn:extensionElements>
+        <bpmn:incoming>SequenceFlow_01umodj</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_1ysapam</bpmn:outgoing>
+      </bpmn:callActivity>
+      <bpmn:scriptTask id="ScriptTask_1rn6nqi" name="Send Error Response">
+        <bpmn:incoming>SequenceFlow_0e1r62n</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_0n9pexp</bpmn:outgoing>
+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def csi = new  UpdateCustomE2EServiceInstance()

+csi.sendSyncError(execution)]]></bpmn:script>
+      </bpmn:scriptTask>
+      <bpmn:sequenceFlow id="SequenceFlow_0e1r62n" sourceRef="StartEvent_0dug28e" targetRef="ScriptTask_1rn6nqi" />
+      <bpmn:sequenceFlow id="SequenceFlow_1ysapam" sourceRef="CallActivity_1ang7q8" targetRef="EndEvent_03wysuk" />
+      <bpmn:sequenceFlow id="SequenceFlow_0n9pexp" sourceRef="ScriptTask_1rn6nqi" targetRef="ScriptTask_0u8o9p2" />
+      <bpmn:sequenceFlow id="SequenceFlow_01umodj" sourceRef="ScriptTask_0u8o9p2" targetRef="CallActivity_1ang7q8" />
+    </bpmn:subProcess>
+    <bpmn:scriptTask id="ScriptTask_0xupxj9" name="Send Sync Ack Response" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0z4faf9</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_19eilro</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def csi = new  UpdateCustomE2EServiceInstance()

+csi.sendSyncResponse(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:exclusiveGateway id="ExclusiveGateway_0aqn64l" name="Success?">
+      <bpmn:incoming>SequenceFlow_0klbpxx</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_14zu6wr</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_1fueo69</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:endEvent id="EndEvent_07uk5iy">
+      <bpmn:incoming>SequenceFlow_1fueo69</bpmn:incoming>
+      <bpmn:errorEventDefinition errorRef="Error_0nbdy47" />
+    </bpmn:endEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_0s2spoq" sourceRef="StartEvent_00qj6ro" targetRef="ScriptTask_1s09c7d" />
+    <bpmn:sequenceFlow id="SequenceFlow_19eilro" sourceRef="ScriptTask_0xupxj9" targetRef="DoUpdateE2EServiceInstance" />
+    <bpmn:sequenceFlow id="SequenceFlow_0klbpxx" sourceRef="DoUpdateE2EServiceInstance" targetRef="ExclusiveGateway_0aqn64l" />
+    <bpmn:sequenceFlow id="SequenceFlow_0yayvrf" sourceRef="CallActivity_02fyxz0" targetRef="EndEvent_0bpd6c0" />
+    <bpmn:sequenceFlow id="SequenceFlow_0z4faf9" sourceRef="ScriptTask_1s09c7d" targetRef="ScriptTask_0xupxj9" />
+    <bpmn:sequenceFlow id="SequenceFlow_14zu6wr" name="yes" sourceRef="ExclusiveGateway_0aqn64l" targetRef="ScriptTask_0ttvn8r">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("WorkflowException") == null}]]></bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:sequenceFlow id="SequenceFlow_0je30si" sourceRef="ScriptTask_0ttvn8r" targetRef="CallActivity_02fyxz0" />
+    <bpmn:sequenceFlow id="SequenceFlow_1fueo69" name="no" sourceRef="ExclusiveGateway_0aqn64l" targetRef="EndEvent_07uk5iy">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("WorkflowException") != null}]]></bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+  </bpmn:process>
+  <bpmn:error id="Error_0nbdy47" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="UpdateCustomE2EServiceInstance">
+      <bpmndi:BPMNShape id="StartEvent_00qj6ro_di" bpmnElement="StartEvent_00qj6ro">
+        <dc:Bounds x="-6" y="180" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-24" y="221" width="73" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="SubProcess_0ka59nc_di" bpmnElement="SubProcess_0ka59nc" isExpanded="true">
+        <dc:Bounds x="463" y="632" width="394" height="188" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_0rhljy8_di" bpmnElement="DoUpdateE2EServiceInstance">
+        <dc:Bounds x="717" y="158" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_0bpd6c0_di" bpmnElement="EndEvent_0bpd6c0">
+        <dc:Bounds x="1258" y="286" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1268" y="322" width="22" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1s09c7d_di" bpmnElement="ScriptTask_1s09c7d">
+        <dc:Bounds x="214" y="158" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0ttvn8r_di" bpmnElement="ScriptTask_0ttvn8r">
+        <dc:Bounds x="1038" y="158" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_02fyxz0_di" bpmnElement="CallActivity_02fyxz0">
+        <dc:Bounds x="1226" y="158" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="SubProcess_0vaws86_di" bpmnElement="SubProcess_0vaws86" isExpanded="true">
+        <dc:Bounds x="348" y="370" width="679" height="194" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0xupxj9_di" bpmnElement="ScriptTask_0xupxj9">
+        <dc:Bounds x="459" y="158" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0aqn64l_di" bpmnElement="ExclusiveGateway_0aqn64l" isMarkerVisible="true">
+        <dc:Bounds x="903" y="173" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="903" y="145" width="50" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_07uk5iy_di" bpmnElement="EndEvent_07uk5iy">
+        <dc:Bounds x="910" y="286" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="883" y="322" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0s2spoq_di" bpmnElement="SequenceFlow_0s2spoq">
+        <di:waypoint xsi:type="dc:Point" x="30" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="214" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="77" y="177" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_19eilro_di" bpmnElement="SequenceFlow_19eilro">
+        <di:waypoint xsi:type="dc:Point" x="559" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="717" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="593" y="177" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0klbpxx_di" bpmnElement="SequenceFlow_0klbpxx">
+        <di:waypoint xsi:type="dc:Point" x="817" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="903" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="815" y="177" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0yayvrf_di" bpmnElement="SequenceFlow_0yayvrf">
+        <di:waypoint xsi:type="dc:Point" x="1276" y="238" />
+        <di:waypoint xsi:type="dc:Point" x="1276" y="286" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1246" y="262" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0z4faf9_di" bpmnElement="SequenceFlow_0z4faf9">
+        <di:waypoint xsi:type="dc:Point" x="314" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="459" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="341.5" y="177" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_14zu6wr_di" bpmnElement="SequenceFlow_14zu6wr">
+        <di:waypoint xsi:type="dc:Point" x="953" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="990" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="990" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="1038" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="987" y="195" width="20" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0je30si_di" bpmnElement="SequenceFlow_0je30si">
+        <di:waypoint xsi:type="dc:Point" x="1138" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="1226" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1137" y="183" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1fueo69_di" bpmnElement="SequenceFlow_1fueo69">
+        <di:waypoint xsi:type="dc:Point" x="928" y="223" />
+        <di:waypoint xsi:type="dc:Point" x="928" y="250" />
+        <di:waypoint xsi:type="dc:Point" x="928" y="250" />
+        <di:waypoint xsi:type="dc:Point" x="928" y="286" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="901" y="228" width="15" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0u3lw39_di" bpmnElement="ScriptTask_0u3lw39">
+        <dc:Bounds x="611" y="687" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="StartEvent_0v1ffn4_di" bpmnElement="StartEvent_0v1ffn4">
+        <dc:Bounds x="496" y="709" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="469" y="750" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_0eznq6x_di" bpmnElement="EndEvent_0eznq6x">
+        <dc:Bounds x="772" y="709" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="745" y="750" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="StartEvent_0dug28e_di" bpmnElement="StartEvent_0dug28e">
+        <dc:Bounds x="363" y="456" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="336" y="497" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_03wysuk_di" bpmnElement="EndEvent_03wysuk">
+        <dc:Bounds x="942" y="456" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="915" y="497" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0u8o9p2_di" bpmnElement="ScriptTask_0u8o9p2">
+        <dc:Bounds x="621" y="434" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_1ang7q8_di" bpmnElement="CallActivity_1ang7q8">
+        <dc:Bounds x="798" y="434" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1rn6nqi_di" bpmnElement="ScriptTask_1rn6nqi">
+        <dc:Bounds x="443" y="434" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1dsbjjb_di" bpmnElement="SequenceFlow_1dsbjjb">
+        <di:waypoint xsi:type="dc:Point" x="532" y="727" />
+        <di:waypoint xsi:type="dc:Point" x="611" y="727" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="529.5" y="727" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1yay321_di" bpmnElement="SequenceFlow_1yay321">
+        <di:waypoint xsi:type="dc:Point" x="711" y="727" />
+        <di:waypoint xsi:type="dc:Point" x="772" y="727" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="701.5" y="727" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0e1r62n_di" bpmnElement="SequenceFlow_0e1r62n">
+        <di:waypoint xsi:type="dc:Point" x="399" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="421" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="421" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="442" y="474" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="391" y="474" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1ysapam_di" bpmnElement="SequenceFlow_1ysapam">
+        <di:waypoint xsi:type="dc:Point" x="898" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="942" y="474" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="875" y="459" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0n9pexp_di" bpmnElement="SequenceFlow_0n9pexp">
+        <di:waypoint xsi:type="dc:Point" x="543" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="570" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="570" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="621" y="474" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="540" y="474" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_01umodj_di" bpmnElement="SequenceFlow_01umodj">
+        <di:waypoint xsi:type="dc:Point" x="721" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="798" y="474" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="715.5" y="459" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn:definitions>
diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java b/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java
index b8c4aed..6588995 100644
--- a/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java
+++ b/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java
@@ -98,11 +98,11 @@
 
     public enum Catalog {
         APIH, BPEL, RA, ASDC, GENERAL
-    };
+    }
 
     public enum StatusCode {
         COMPLETE, ERROR
-    };
+    }
 
     public enum ResponseCode {
         Suc(0), PermissionError(100), DataError(300), DataNotFound(301), BadRequest(302), SchemaError(
@@ -115,10 +115,10 @@
             return this.value;
         }
 
-        private ResponseCode(int value) {
+        ResponseCode(int value) {
             this.value = value;
         }
-    };
+    }
 
     public enum ErrorCode {
         PermissionError(100), AvailabilityError(200), DataError(300), SchemaError(400), BusinessProcesssError(
@@ -130,10 +130,10 @@
             return this.value;
         }
 
-        private ErrorCode(int value) {
+        ErrorCode(int value) {
             this.value = value;
         }
-    };
+    }
 
     private EELFLogger          logger, auditLogger, metricsLogger;
     private static final String CONFIG_FILE = System.getProperty("jboss.home.dir") + "/mso-config/uuid/uuid_"
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java
index 488bb35..b89a5d4 100644
--- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java
+++ b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java
@@ -23,8 +23,8 @@
 
 public class MsoPropertiesParameters {
 	
-	protected enum MsoPropertiesType {JSON_PROP,JAVA_PROP};
-	
+	protected enum MsoPropertiesType {JSON_PROP,JAVA_PROP}
+
 	protected MsoPropertiesType msoPropertiesType;
 	
 	protected int refreshCounter;
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