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-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/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java
index 33f64c8..78eb2f6 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java
@@ -44,7 +44,7 @@
 public class ResourceRequestBuilder {
 
     public static String CUSTOMIZATION_UUID = "customizationUUID";
-    public static String SERVICE_URL_TOSCA_CSAR = "http://localhost:3099/serviceToscaCsar?serviceModelUuid=";
+    public static String SERVICE_URL_TOSCA_CSAR = "http://localhost:8080/ecomp/mso/catalog/v3/serviceToscaCsar?serviceModelUuid=";
 
     private static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA);
 
@@ -114,13 +114,13 @@
     private static String getCsarFromUuid(String uuid) throws Exception {
 
         ResteasyClient client = new ResteasyClientBuilder().build();
-        ResteasyWebTarget target = client.target(SERVICE_URL_TOSCA_CSAR + uuid + "\"");
+        ResteasyWebTarget target = client.target(SERVICE_URL_TOSCA_CSAR + uuid);
         Response response = target.request().get();
         String value = response.readEntity(String.class);
 
         HashMap<String,String> map = new Gson().fromJson(value, new TypeToken<HashMap<String, String>>(){}.getType());
 
-        File csarFile = new File(System.getProperty("mso.config.path") + "ASDC/" + map.get("NAME"));
+        File csarFile = new File(System.getProperty("mso.config.path") + "ASDC/" + map.get("name"));
 
         if (!csarFile.exists()) {
             throw new Exception("csar file does not exist.");
diff --git a/bpmn/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/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
index c91f353..44eaa34 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
@@ -118,6 +118,15 @@
 			} else {
 				execution.setVariable("serviceType", serviceType)
 			}
+			
+			//operationId
+			String operationId = jsonUtil.getJsonValue(siRequest, "operationId")
+		 	if (isBlank(operationId)) {
+		 		operationId = UUID.randomUUID().toString()
+		 	 }   
+			execution.setVariable("operationId", operationId) 
+			execution.setVariable("operationType", "UPDATE")
+			
 			execution.setVariable("URN_mso_adapters_openecomp_db_endpoint","http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter")
 
 		} catch (BpmnError e) {
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateSDNCNetworkResource.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateSDNCNetworkResource.bpmn
new file mode 100644
index 0000000..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/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
