added generic fabric support to SO

Fix Autoincrement of ID field in table
Fix accidental removal of method
Update usage of requestdb client
removed unused imports in common tasks and test
Fix broken branch, have unit tests pass
references
the Epic branch
Fix broken branch from compiling
committing classpath for vfc adapter cause its not going away
added in the fail case for when there are no profiles
removed second set of adapters in application test yml
removed double adapters in request db application test
added jpa repo dependency to the so bpmn folder pom
add creation timestamp column to the table
added in null checks for Config returned from policy
switched to string in requestprocess with jenerate
switched to string in requestprocess with jenerate
updated aai version in common pom to 605 from 591
renamed the db scripts for flyway sync to register
added endpoint to application test yml for failing test
...

Change-Id: I800f837ea75d7cdff740dc3a387e4d7654cfd085
Issue-ID: SO-972
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
diff --git a/bpmn/MSOCommonBPMN/pom.xml b/bpmn/MSOCommonBPMN/pom.xml
index dfb6af7..532c062 100644
--- a/bpmn/MSOCommonBPMN/pom.xml
+++ b/bpmn/MSOCommonBPMN/pom.xml
@@ -134,6 +134,17 @@
 						</configuration>
 					</execution>
 					<execution>
+						<id>non-spring-tests</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>**/NonSpringSuite.java</include>
+							</includes>	
+						</configuration>
+					</execution>
+					<execution>
 						<id>groovy-tests</id>
 						<goals>
 							<goal>test</goal>
@@ -217,15 +228,12 @@
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-web</artifactId>
 		</dependency>
-
-
 		<dependency>
 			<!-- Needed for InMemoryH2Test -->
 			<groupId>com.h2database</groupId>
 			<artifactId>h2</artifactId>
 			<scope>test</scope>
 		</dependency>
-
 		<dependency>
 			<groupId>com.fasterxml.uuid</groupId>
 			<artifactId>java-uuid-generator</artifactId>
@@ -247,6 +255,7 @@
 		<dependency>
 			<groupId>org.onap.so</groupId>
 			<artifactId>mso-requests-db</artifactId>
+			<classifier>client</classifier>
 			<version>${project.version}</version>
 		</dependency>
 		<dependency>
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/InjectionHelper.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/InjectionHelper.java
index f1c2c8d..deae46c 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/InjectionHelper.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/InjectionHelper.java
@@ -21,8 +21,10 @@
 package org.onap.so.bpmn.common;
 
 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
+import org.onap.so.client.aai.AAIQueryClient;
 import org.onap.so.client.aai.AAIResourcesClient;
 import org.onap.so.client.aai.entities.AAIResultWrapper;
+import org.onap.so.client.policy.PolicyClientImpl;
 import org.onap.so.client.sdno.SDNOValidator;
 import org.onap.so.client.sdno.SDNOValidatorImpl;
 import org.springframework.stereotype.Component;
@@ -46,6 +48,10 @@
 		return new AAIResourcesClient();
 	}
 	
+	public AAIQueryClient getAaiQueryClient() {
+		return new AAIQueryClient();
+	}
+	
 	public SDNOValidator getSdnoValidator() {
 		return new SDNOValidatorImpl();
 	}
@@ -57,4 +63,8 @@
 	public AAIResultWrapper getAaiResultWrapper(String json) {
 		return new AAIResultWrapper(json);
 	}
+	
+	public PolicyClientImpl getPolicyClient() {
+		return new PolicyClientImpl();
+	}
 }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/BaseClient.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/baseclient/BaseClient.java
similarity index 97%
rename from bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/BaseClient.java
rename to bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/baseclient/BaseClient.java
index 50137cf..c3511e6 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/BaseClient.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/baseclient/BaseClient.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.client.sdnc;
+package org.onap.so.bpmn.common.baseclient;
 
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.HttpEntity;
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java
index ca2da77..fe6b0f8 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java
@@ -57,7 +57,7 @@
 
     public static String CUSTOMIZATION_UUID = "customizationUUID";
 
-    public static String SERVICE_URL_TOSCA_CSAR = "/v3/serviceToscaCsar?serviceModelUuid=";
+    public static String SERVICE_URL_TOSCA_CSAR = "/v3/serviceToscaCsar";
 
     private static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA, ResourceRequestBuilder.class);
 
@@ -184,7 +184,7 @@
 
     private static String getCsarFromUuid(String uuid) throws Exception {
 		String catalogEndPoint = UrnPropertiesReader.getVariable("mso.catalog.db.endpoint");
-    	HttpClient client = new HttpClient(UriBuilder.fromUri(catalogEndPoint + SERVICE_URL_TOSCA_CSAR + uuid).build().toURL(), "application/json", TargetEntity.CATALOG_DB);
+    	HttpClient client = new HttpClient(UriBuilder.fromUri(catalogEndPoint).path(SERVICE_URL_TOSCA_CSAR).queryParam("serviceModelUuid", uuid).build().toURL(), "application/json", TargetEntity.CATALOG_DB);
     	
         Response response = client.get();
         String value = response.readEntity(String.class);
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/GenericVnf.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/GenericVnf.java
index 17bd4f5..ba3ab7f 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/GenericVnf.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/GenericVnf.java
@@ -139,8 +139,28 @@
     private List<InstanceGroup> instanceGroups = new ArrayList<InstanceGroup>();
 	@JsonProperty("call-homing")
 	private Boolean callHoming;
+	@JsonProperty("nf-function")
+	private String nfFunction;
+	@JsonProperty("nf-role")
+	private String nfRole;
 
 
+	public String getNfFunction() {
+		return nfFunction;
+	}
+
+	public void setNfFunction(String nfFunction) {
+		this.nfFunction = nfFunction;
+	}
+
+	public String getNfRole() {
+		return nfRole;
+	}
+
+	public void setNfRole(String nfRole) {
+		this.nfRole = nfRole;
+	}
+
 	public List<InstanceGroup> getInstanceGroups() {
 		return instanceGroups;
 	}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/entities/ConfigurationResourceKeys.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/entities/ConfigurationResourceKeys.java
new file mode 100644
index 0000000..8f0ced9
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/entities/ConfigurationResourceKeys.java
@@ -0,0 +1,55 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 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.onap.so.bpmn.servicedecomposition.entities;
+
+import java.io.Serializable;
+
+public class ConfigurationResourceKeys implements Serializable{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	private String vfModuleCustomizationUUID;
+	private String vnfResourceCustomizationUUID;
+	private String cvnfcCustomizationUUID;
+	
+	public String getVfModuleCustomizationUUID() {
+		return vfModuleCustomizationUUID;
+	}
+	public void setVfModuleCustomizationUUID(String vfModuleCustomizationUUID) {
+		this.vfModuleCustomizationUUID = vfModuleCustomizationUUID;
+	}
+	public String getVnfResourceCustomizationUUID() {
+		return vnfResourceCustomizationUUID;
+	}
+	public void setVnfResourceCustomizationUUID(String vnfResourceCustomizationUUID) {
+		this.vnfResourceCustomizationUUID = vnfResourceCustomizationUUID;
+	}
+	public String getCvnfcCustomizationUUID() {
+		return cvnfcCustomizationUUID;
+	}
+	public void setCvnfcCustomizationUUID(String cvnfcCustomizationUUID) {
+		this.cvnfcCustomizationUUID = cvnfcCustomizationUUID;
+	}
+	
+	
+}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/entities/ExecuteBuildingBlock.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/entities/ExecuteBuildingBlock.java
index 0d04b5e..be73b37 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/entities/ExecuteBuildingBlock.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/entities/ExecuteBuildingBlock.java
@@ -39,6 +39,7 @@
 	private Boolean homing;
 	private WorkflowResourceIds workflowResourceIds;
 	private RequestDetails requestDetails;
+	private ConfigurationResourceKeys configurationResourceKeys;
 	
 	public BuildingBlock getBuildingBlock() {
 		return buildingBlock;
@@ -100,4 +101,10 @@
 	public void setRequestDetails(RequestDetails requestDetails) {
 		this.requestDetails = requestDetails;
 	}
+	public ConfigurationResourceKeys getConfigurationResourceKeys() {
+		return configurationResourceKeys;
+	}
+	public void setConfigurationResourceKeys(ConfigurationResourceKeys configurationResourceKeys) {
+		this.configurationResourceKeys = configurationResourceKeys;
+	}
 }
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoConfiguration.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoConfiguration.java
index 9d3aa59..8716810 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoConfiguration.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoConfiguration.java
@@ -34,6 +34,8 @@
 	private String modelVersionId;
 	@JsonProperty("model-customization-id")
 	private String modelCustomizationId;
+	@JsonProperty("policy-name")
+	private String policyName;
 	
 	public String getModelInvariantId() {
 		return modelInvariantId;
@@ -53,4 +55,10 @@
 	public void setModelCustomizationId(String modelCustomizationId) {
 		this.modelCustomizationId = modelCustomizationId;
 	}
+	public String getPolicyName() {
+		return policyName;
+	}
+	public void setPolicyName(String policyName) {
+		this.policyName = policyName;
+	}
 }
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java
index e8e1982..8e36cc5 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java
@@ -49,6 +49,7 @@
 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
+import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
@@ -71,6 +72,7 @@
 import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.beans.VfModuleCustomization;
 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
+import org.onap.so.db.catalog.beans.VnfVfmoduleCvnfcConfigurationCustomization;
 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
 import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.onap.so.logger.MsoLogger;
@@ -267,32 +269,24 @@
 	}
 
 	protected void populateConfiguration(ModelInfo modelInfo, Service service, String bbName,
-			ServiceInstance serviceInstance, Map<ResourceKey, String> lookupKeyMap, String resourceId, String instanceName) {
-		boolean foundByName = false;
-		boolean foundById = false;
-		for (Configuration configuration : serviceInstance.getConfigurations()) {
+			ServiceInstance serviceInstance, Map<ResourceKey, String> lookupKeyMap, String resourceId, String instanceName, ConfigurationResourceKeys configurationResourceKeys) {
+		Configuration configuration = null;
+		for (Configuration configurationTemp : serviceInstance.getConfigurations()) {
 			if (lookupKeyMap.get(ResourceKey.CONFIGURATION_ID) != null
-					&& configuration.getConfigurationId().equalsIgnoreCase(lookupKeyMap.get(ResourceKey.CONFIGURATION_ID))) {
-				foundById = true;
+					&& configurationTemp.getConfigurationId().equalsIgnoreCase(lookupKeyMap.get(ResourceKey.CONFIGURATION_ID))) {
+				configuration = configurationTemp;
 				org.onap.aai.domain.yang.Configuration aaiConfiguration = bbInputSetupUtils.getAAIConfiguration(configuration.getConfigurationId());
 				if(aaiConfiguration!=null){
 					modelInfo.setModelCustomizationUuid(aaiConfiguration.getModelCustomizationId());
 				}
-				this.mapCatalogConfiguration(configuration, modelInfo, service);
-			} else if (instanceName != null && configuration.getConfigurationName().equalsIgnoreCase(instanceName)) {
-				foundByName = true;
-				lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, configuration.getConfigurationId());
-				org.onap.aai.domain.yang.Configuration aaiConfiguration = bbInputSetupUtils.getAAIConfiguration(configuration.getConfigurationId());
-				if(aaiConfiguration!=null){
-					modelInfo.setModelCustomizationUuid(aaiConfiguration.getModelCustomizationId());
-				}
-				this.mapCatalogConfiguration(configuration, modelInfo, service);
 			}
 		}
-		if (!foundByName && !foundById && bbName.equalsIgnoreCase(AssignFlows.FABRIC_CONFIGURATION.toString())) {
-			Configuration configuration = this.createConfiguration(lookupKeyMap, instanceName, resourceId);
+		if (configuration == null && bbName.equalsIgnoreCase(AssignFlows.FABRIC_CONFIGURATION.toString())) {
+			configuration = this.createConfiguration(lookupKeyMap, instanceName, resourceId);
 			serviceInstance.getConfigurations().add(configuration);
-			this.mapCatalogConfiguration(configuration, modelInfo, service);
+		}
+		if(configuration != null) {
+			this.mapCatalogConfiguration(configuration, modelInfo, service, configurationResourceKeys);
 		}
 	}
 
@@ -306,13 +300,30 @@
 		return configuration;
 	}
 
-	protected void mapCatalogConfiguration(Configuration configuration, ModelInfo modelInfo, Service service) {
+	protected void mapCatalogConfiguration(Configuration configuration, ModelInfo modelInfo, Service service, ConfigurationResourceKeys configurationResourceKeys) {
 		ConfigurationResourceCustomization configurationResourceCustomization = findConfigurationResourceCustomization(modelInfo, service);
-		if (configurationResourceCustomization != null) {
-			configuration.setModelInfoConfiguration(this.mapperLayer.mapCatalogConfigurationToConfiguration(configurationResourceCustomization));
+		VnfVfmoduleCvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization = 
+				findVnfVfmoduleCvnfcConfigurationCustomization(configurationResourceKeys.getVfModuleCustomizationUUID(),
+						configurationResourceKeys.getVnfResourceCustomizationUUID(), configurationResourceKeys.getCvnfcCustomizationUUID(), configurationResourceCustomization);
+		if (configurationResourceCustomization != null && vnfVfmoduleCvnfcConfigurationCustomization != null) {
+			configuration.setModelInfoConfiguration(this.mapperLayer.mapCatalogConfigurationToConfiguration(configurationResourceCustomization
+					, vnfVfmoduleCvnfcConfigurationCustomization));
 		}
 	}
 
+	protected VnfVfmoduleCvnfcConfigurationCustomization findVnfVfmoduleCvnfcConfigurationCustomization(String vfModuleCustomizationUUID, 
+			String vnfResourceCustomizationUUID, String cvnfcCustomizationUUID, ConfigurationResourceCustomization configurationResourceCustomization) {
+		for(VnfVfmoduleCvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization : 
+			configurationResourceCustomization.getConfigurationResource().getVnfVfmoduleCvnfcConfigurationCustomization()) {
+			if(vnfVfmoduleCvnfcConfigurationCustomization.getVfModuleCustomization().getModelCustomizationUUID().equalsIgnoreCase(vfModuleCustomizationUUID)
+					&& vnfVfmoduleCvnfcConfigurationCustomization.getVnfResourceCustomization().getModelCustomizationUUID().equalsIgnoreCase(vnfResourceCustomizationUUID)
+					&& vnfVfmoduleCvnfcConfigurationCustomization.getCvnfcCustomization().getModelCustomizationUUID().equalsIgnoreCase(cvnfcCustomizationUUID)) {
+				return vnfVfmoduleCvnfcConfigurationCustomization;
+			}
+		}
+		return null;
+	}
+
 	protected ConfigurationResourceCustomization findConfigurationResourceCustomization(ModelInfo modelInfo, Service service) {
 		for (ConfigurationResourceCustomization resourceCust : service.getConfigurationCustomizations()) {
 			if (resourceCust.getModelCustomizationUUID().equalsIgnoreCase(modelInfo.getModelCustomizationUuid())) {
@@ -896,12 +907,7 @@
 			String configurationId = lookupKeyMap.get(ResourceKey.CONFIGURATION_ID);
 			ModelInfo configurationModelInfo = new ModelInfo();
 			configurationModelInfo.setModelCustomizationUuid(key);
-			ConfigurationResourceCustomization configurationCust = findConfigurationResourceCustomization(configurationModelInfo, service);
-			if(configurationCust != null) {
-				this.populateConfiguration(configurationModelInfo, service, bbName, serviceInstance, lookupKeyMap, configurationId, null);
-			} else {
-				msoLogger.debug("Could not find a configuration customization with key: " + key);
-			}
+			this.populateConfiguration(configurationModelInfo, service, bbName, serviceInstance, lookupKeyMap, configurationId, null, executeBB.getConfigurationResourceKeys());
 		}
 		if (executeBB.getWorkflowResourceIds() != null) {
 			this.populateNetworkCollectionAndInstanceGroupAssign(service, bbName, serviceInstance,
@@ -1019,7 +1025,7 @@
 							.getModelCustomizationId();
 					ModelInfo modelInfo = new ModelInfo();
 					modelInfo.setModelCustomizationUuid(configurationCustUUID);
-					this.mapCatalogConfiguration(configuration, modelInfo, service);
+					this.mapCatalogConfiguration(configuration, modelInfo, service, executeBB.getConfigurationResourceKeys());
 					break;
 				}
 			}
@@ -1087,7 +1093,7 @@
 			configurationModelInfo.setModelCustomizationUuid(key);
 			ConfigurationResourceCustomization configurationCust = findConfigurationResourceCustomization(configurationModelInfo, service);
 			if(configurationCust != null) {
-				this.populateConfiguration(configurationModelInfo, service, bbName, serviceInstance, lookupKeyMap, configurationId, null);
+				this.populateConfiguration(configurationModelInfo, service, bbName, serviceInstance, lookupKeyMap, configurationId, null, executeBB.getConfigurationResourceKeys());
 			} else {
 				msoLogger.debug("Could not find a configuration customization with key: " + key);
 			}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java
index c2161a4..877d5bb 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java
@@ -76,6 +76,7 @@
 import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.beans.VfModuleCustomization;
 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
+import org.onap.so.db.catalog.beans.VnfVfmoduleCvnfcConfigurationCustomization;
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.serviceinstancebeans.CloudConfiguration;
 import org.onap.so.serviceinstancebeans.RequestDetails;
@@ -454,11 +455,13 @@
 	}
 
 	protected ModelInfoConfiguration mapCatalogConfigurationToConfiguration(
-			ConfigurationResourceCustomization configurationResourceCustomization) {
+			ConfigurationResourceCustomization configurationResourceCustomization, 
+			VnfVfmoduleCvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization) {
 		ModelInfoConfiguration modelInfoConfiguration = new ModelInfoConfiguration();
 		modelInfoConfiguration.setModelVersionId(configurationResourceCustomization.getConfigurationResource().getModelUUID());
 		modelInfoConfiguration.setModelCustomizationId(configurationResourceCustomization.getModelCustomizationUUID());
 		modelInfoConfiguration.setModelInvariantId(configurationResourceCustomization.getConfigurationResource().getModelInvariantUUID());
+		modelInfoConfiguration.setPolicyName(vnfVfmoduleCvnfcConfigurationCustomization.getPolicyName());
 		return modelInfoConfiguration;
 	}
 
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java
index 4b85538..84ecfc7 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java
@@ -45,7 +45,7 @@
 import org.onap.so.client.aai.entities.AAIResultWrapper;
 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
-import org.onap.so.client.db.request.RequestsDbClient;
+
 import org.onap.so.client.graphinventory.entities.uri.Depth;
 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
@@ -54,6 +54,7 @@
 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
 import org.onap.so.db.catalog.client.CatalogDbClient;
 import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.serviceinstancebeans.CloudConfiguration;
 import org.onap.so.serviceinstancebeans.RequestDetails;
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/db/request/RequestsDbClient.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/db/request/RequestsDbClient.java
deleted file mode 100644
index 61869ca..0000000
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/db/request/RequestsDbClient.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*-
- * ============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.onap.so.client.db.request;
-
-import java.io.IOException;
-import java.net.URI;
-
-import org.onap.so.db.request.beans.InfraActiveRequests;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpRequest;
-import org.springframework.http.client.ClientHttpRequestExecution;
-import org.springframework.http.client.ClientHttpRequestInterceptor;
-import org.springframework.http.client.ClientHttpResponse;
-import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
-
-import uk.co.blackpepper.bowman.Client;
-import uk.co.blackpepper.bowman.ClientFactory;
-import uk.co.blackpepper.bowman.Configuration;
-import uk.co.blackpepper.bowman.RestTemplateConfigurer;
-
-@Component("RequestDbClient")
-public class RequestsDbClient {
-
-	private Client<InfraActiveRequests> infraActiveRequestClient;
-
-	@Value("${mso.adapters.db.spring.endpoint}")
-	private String endpoint;
-	
-	@Value("${mso.db.auth}")
-	private String msoAdaptersAuth;
-
-	public RequestsDbClient() {
-		ClientFactory clientFactory = Configuration.builder().setRestTemplateConfigurer(new RestTemplateConfigurer() {
-
-			public void configure(RestTemplate restTemplate) {
-
-				restTemplate.getInterceptors().add(new ClientHttpRequestInterceptor() {
-
-					public ClientHttpResponse intercept(HttpRequest request, byte[] body,
-							ClientHttpRequestExecution execution) throws IOException {
-
-						request.getHeaders().add("Authorization", msoAdaptersAuth);
-						return execution.execute(request, body);
-					}
-				});
-			}
-		}).build().buildClientFactory();
-		infraActiveRequestClient = clientFactory.create(InfraActiveRequests.class);
-       
-	}
-
-	public InfraActiveRequests getInfraActiveRequestbyRequestId(String requestId) {
-		return this.getSingleInfraActiveRequests(this.getUri(endpoint + "/infraActiveRequests/" + requestId));
-	}
-
-	protected InfraActiveRequests getSingleInfraActiveRequests(URI uri) {
-		return infraActiveRequestClient.get(uri);
-	}
-
-	public void updateInfraActiveRequests(InfraActiveRequests request) {		
-		infraActiveRequestClient.put(request);
-	}
-
-	protected URI getUri(String uri) {
-		return URI.create(uri);
-	}
-}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/workflow/service/WorkflowProcessorException.java b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/workflow/service/WorkflowProcessorException.java
index 768bee5..64283d7 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/workflow/service/WorkflowProcessorException.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/workflow/service/WorkflowProcessorException.java
@@ -1,3 +1,23 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 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.workflow.service;
 
 import org.onap.so.bpmn.common.workflow.context.WorkflowResponse;
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BaseTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BaseTest.java
index d2f1186..119d3b1 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BaseTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BaseTest.java
@@ -32,6 +32,7 @@
 import org.camunda.bpm.model.bpmn.Bpmn;
 import org.camunda.bpm.model.bpmn.BpmnModelInstance;
 import org.junit.Before;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.onap.so.bpmn.common.InjectionHelper;
 import org.onap.so.bpmn.common.MockLoggerDelegate;
@@ -40,6 +41,7 @@
 import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.db.catalog.client.CatalogDbClient;
+import org.onap.so.test.categories.SpringAware;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.context.embedded.LocalServerPort;
@@ -62,6 +64,7 @@
 @ActiveProfiles("test")
 @ContextConfiguration
 @AutoConfigureWireMock(port = 0)
+@Category(SpringAware.class)
 public abstract class BaseTest extends BuildingBlockTestDataSetup {
 	
 
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java
index a983193..5be8795 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java
@@ -665,4 +665,27 @@
 		
 		return ar;
 	}
+	
+	public Configuration setConfiguration () {
+		Configuration config = new Configuration();
+		config.setConfigurationId("testConfigurationId");
+		ModelInfoConfiguration modelInfoConfig = new ModelInfoConfiguration();
+		modelInfoConfig.setModelCustomizationId("modelCustomizationId");
+		modelInfoConfig.setModelVersionId("modelVersionId");
+		modelInfoConfig.setModelInvariantId("modelInvariantId");
+		modelInfoConfig.setPolicyName("policyName");
+		config.setModelInfoConfiguration(modelInfoConfig);
+		
+		List<Configuration> configurations = new ArrayList<>();
+		configurations.add(config);
+		ServiceInstance serviceInstance = new ServiceInstance();
+		try {
+			serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID, execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID));
+		} catch(BBObjectNotFoundException e) {
+			serviceInstance = setServiceInstance();
+		}
+		lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "testConfigurationId");
+		serviceInstance.setConfigurations(configurations);
+		return config;
+	}
 }
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/NonSpringSuite.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/NonSpringSuite.java
new file mode 100644
index 0000000..ee2848c
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/NonSpringSuite.java
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 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.onap.so;
+
+import org.junit.runner.RunWith;
+import org.onap.so.test.categories.SpringAware;
+
+import com.googlecode.junittoolbox.ExcludeCategories;
+import com.googlecode.junittoolbox.SuiteClasses;
+import com.googlecode.junittoolbox.WildcardPatternSuite;
+
+@RunWith(WildcardPatternSuite.class)
+@ExcludeCategories({SpringAware.class})
+@SuiteClasses({"**/*Test.class", "!**/bpmn/common/scripts/**/*Test.class"})
+public class NonSpringSuite {
+
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/TestApplication.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/TestApplication.java
index ba8caee..d1559c2 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/TestApplication.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/TestApplication.java
@@ -22,8 +22,6 @@
 
 import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication;
 import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
-import org.onap.so.db.request.data.repository.InfraActiveRequestsRepositoryImpl;
-import org.onap.so.requestsdb.RequestsDBHelper;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
@@ -35,9 +33,7 @@
 @Profile("test")
 @EnableProcessApplication("MSO CommonBPMN Test Application")
 @ComponentScan(basePackages = {"org.onap.so"}, nameGenerator = DefaultToShortClassNameBeanNameGenerator.class, excludeFilters = {
-		@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class),
-		@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RequestsDBHelper.class),
-		@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = InfraActiveRequestsRepositoryImpl.class) })
+		@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class)})
 public class TestApplication {
 	public static void main(String... args) {
 		SpringApplication.run(TestApplication.class, args);
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/MSOCommonApplication.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/MSOCommonApplication.java
index 514d93b..45bbe9e 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/MSOCommonApplication.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/MSOCommonApplication.java
@@ -29,9 +29,7 @@
 import org.camunda.bpm.engine.ProcessEngine;
 import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication;
 import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
-import org.onap.so.db.request.data.repository.InfraActiveRequestsRepositoryImpl;
 import org.onap.so.logger.MsoLogger;
-import org.onap.so.requestsdb.RequestsDBHelper;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -51,9 +49,7 @@
 @EnableProcessApplication("MSO Common Application")
 @EnableAsync
 @ComponentScan(basePackages = { "org.onap" }, nameGenerator = DefaultToShortClassNameBeanNameGenerator.class, excludeFilters = {
-				@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class),
-				@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RequestsDBHelper.class),
-				@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = InfraActiveRequestsRepositoryImpl.class) })
+				@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class)})
 public class MSOCommonApplication {
 
 	private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL,
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/baseclient/BaseClientTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/baseclient/BaseClientTest.java
new file mode 100644
index 0000000..f84a764
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/baseclient/BaseClientTest.java
@@ -0,0 +1,67 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 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.onap.so.bpmn.common.baseclient;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.junit.Assert.assertThat;
+
+import java.util.Map;
+
+import javax.ws.rs.core.UriBuilder;
+
+import org.junit.Test;
+import org.onap.so.BaseTest;
+import org.springframework.core.ParameterizedTypeReference;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+
+import wiremock.org.apache.http.entity.ContentType;
+
+
+public class BaseClientTest extends BaseTest {
+
+	@Test
+	public void verifyString() {
+		BaseClient<String, String> client = new BaseClient<>();
+		String response = "{\"hello\" : \"world\"}";
+		client.setTargetUrl(UriBuilder.fromUri("http://localhost/test").port(Integer.parseInt(wireMockPort)).build().toString());
+		stubFor(get(urlEqualTo("/test"))
+                .willReturn(aResponse().withStatus(200).withBody(response).withHeader("Content-Type", ContentType.APPLICATION_JSON.toString())));
+		
+		String result = client.get("", new ParameterizedTypeReference<String>() {});
+		assertThat(result, equalTo(response));
+	}
+	
+	@Test
+	public void verifyMap() {
+		BaseClient<String, Map<String, Object>> client = new BaseClient<>();
+		String response = "{\"hello\" : \"world\"}";
+		client.setTargetUrl(UriBuilder.fromUri("http://localhost/test").port(Integer.parseInt(wireMockPort)).build().toString());
+		stubFor(get(urlEqualTo("/test"))
+                .willReturn(aResponse().withStatus(200).withBody(response).withHeader("Content-Type", ContentType.APPLICATION_JSON.toString())));
+		
+		Map<String, Object> result = client.get("", new ParameterizedTypeReference<Map<String, Object>>() {});
+		assertThat("world", equalTo(result.get("hello")));
+	}
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java
index c18dcf5..33e1390 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java
@@ -65,12 +65,15 @@
 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
 import org.onap.so.db.catalog.beans.ConfigurationResource;
 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
+import org.onap.so.db.catalog.beans.CvnfcCustomization;
 import org.onap.so.db.catalog.beans.InstanceGroup;
 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
 import org.onap.so.db.catalog.beans.OrchestrationStatus;
 import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.beans.VfModuleCustomization;
 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
+import org.onap.so.db.catalog.beans.VnfVfmoduleCvnfcConfigurationCustomization;
+import org.onap.so.db.catalog.beans.VnfcCustomization;
 import org.onap.so.serviceinstancebeans.CloudConfiguration;
 import org.onap.so.serviceinstancebeans.RequestDetails;
 
@@ -613,17 +616,23 @@
 		String modelCustUUID = "modelCustomizationUUID";
 		String modelInvariantUUID = "modelInvariantUUID";
 		String modelVersionUUID = "modelUUID";
+		String policyName = "policyName";
 		ModelInfoConfiguration expected = new ModelInfoConfiguration();
 		expected.setModelCustomizationId(modelCustUUID);
 		expected.setModelInvariantId(modelInvariantUUID);
 		expected.setModelVersionId(modelVersionUUID);
+		expected.setPolicyName(policyName);
 		ConfigurationResourceCustomization configurationResourceCustomization = new ConfigurationResourceCustomization();
 		configurationResourceCustomization.setModelCustomizationUUID(modelCustUUID);
 		configurationResourceCustomization.setConfigurationResource(new ConfigurationResource());
 		configurationResourceCustomization.getConfigurationResource().setModelInvariantUUID(modelInvariantUUID);
 		configurationResourceCustomization.getConfigurationResource().setModelUUID(modelVersionUUID);
+		VnfVfmoduleCvnfcConfigurationCustomization policyNameTable = new VnfVfmoduleCvnfcConfigurationCustomization();
+		policyNameTable.setCvnfcCustomization(new CvnfcCustomization());
+		policyNameTable.getCvnfcCustomization().setVnfcCustomization(new VnfcCustomization());
+		policyNameTable.setPolicyName(policyName);
 		
-		ModelInfoConfiguration actual = bbInputSetupMapperLayer.mapCatalogConfigurationToConfiguration(configurationResourceCustomization );
+		ModelInfoConfiguration actual = bbInputSetupMapperLayer.mapCatalogConfigurationToConfiguration(configurationResourceCustomization, policyNameTable);
 
 		assertThat(actual, sameBeanAs(expected));
 	}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java
index 489163b..a5795f9 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java
@@ -66,6 +66,7 @@
 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
+import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
@@ -1074,28 +1075,32 @@
 		Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
 		lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
 		String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
+		ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
+		configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
+		configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
+		configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
 
-		doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service);
+		doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
 
 		SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
-				instanceName);
-		verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service);
+				instanceName, configResourceKeys);
+		verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
 		
 		lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
 
 		SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
-				instanceName);
-		verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service);
+				instanceName, configResourceKeys);
+		verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
 
 		instanceName = "configurationName2";
 		resourceId = "resourceId2";
 		lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
 		Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
 		doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
-		doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service);
+		doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
 		SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
-				instanceName);
-		verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service);
+				instanceName, configResourceKeys);
+		verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
 	}
 
 	@Test
@@ -1666,6 +1671,12 @@
 		String vnfType = "vnfType";
 		Service service = Mockito.mock(Service.class);
 		String requestAction = "createInstance";
+
+		ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
+		configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
+		configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
+		configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
+		executeBB.setConfigurationResourceKeys(configResourceKeys);
 		doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
 				requestAction, resourceId);
 		doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
@@ -1714,13 +1725,13 @@
 		doReturn(configurationCustList).when(service).getConfigurationCustomizations();
 		configurationCustList.add(configurationCust);
 		doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class), 
-				any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class));
+				any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class), isA(ConfigurationResourceKeys.class));
 		
 		executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
 		executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
 		SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
 		verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class), 
-				any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class));
+				any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class), isA(ConfigurationResourceKeys.class));
 	}
 	
 	@Test
@@ -1998,6 +2009,13 @@
 		lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
 		lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
 		lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
+
+		ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
+		configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
+		configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
+		configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
+		executeBB.setConfigurationResourceKeys(configResourceKeys);
+		
 		String resourceId = "123";
 		String vnfType = "vnfType";
 		Service service = Mockito.mock(Service.class);
@@ -2037,6 +2055,7 @@
 				executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
 		executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.FABRIC_CONFIGURATION.toString());
 		executeBB.getBuildingBlock().setKey("modelCustId");
+		doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
 		SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
 		verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
 				executeBB.getBuildingBlock().getBpmnFlowName(), "modelCustId", gBB, service);
@@ -2167,6 +2186,12 @@
 		cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
 		String requestAction = "unassignInstance";
 
+		ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
+		configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
+		configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
+		configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
+		executeBB.setConfigurationResourceKeys(configResourceKeys);
+		
 		L3Network network = new L3Network();
 		network.setNetworkId("networkId");
 		gBB.getServiceInstance().getNetworks().add(network);
@@ -2241,13 +2266,14 @@
 		org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
 		aaiConfiguration.setModelCustomizationId("modelCustId");
 		doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
+		doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
 		
 		executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
 		executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
 		SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
 				executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
 		verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
-				any(Service.class));
+				any(Service.class), isA(ConfigurationResourceKeys.class));
 	}
 
 	@Test
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java
index aa883b6..eb74ab8 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java
@@ -64,12 +64,13 @@
 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
 import org.onap.so.client.graphinventory.entities.uri.Depth;
-import org.onap.so.client.db.request.RequestsDbClient;
+
 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
 import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
 import org.onap.so.db.catalog.client.CatalogDbClient;
 import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.serviceinstancebeans.CloudConfiguration;
 import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.RequestDetails;
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java
index 79cb33b..2144f1c 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java
@@ -20,12 +20,18 @@
 
 package org.onap.so.bpmn.servicedecomposition.tasks;
 
+import static org.hamcrest.CoreMatchers.any;
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Matchers.isA;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import org.camunda.bpm.engine.delegate.BpmnError;
+import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.junit.Before;
 import org.junit.Test;
 import org.onap.so.bpmn.core.WorkflowException;
@@ -76,8 +82,9 @@
 	@Test
 	public void setRetryTimerExceptionTest() {
 		expectedException.expect(BpmnError.class);
-		
-		executeBuildingBlockRainyDay.setRetryTimer(null);
+		DelegateExecution execution = mock(DelegateExecution.class);
+		when(execution.getVariable(eq("retryCount"))).thenThrow(Exception.class);
+		executeBuildingBlockRainyDay.setRetryTimer(execution);
 	}
 	
 	@Test
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/dmaapproperties/GlobalDmaapPublisherTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/dmaapproperties/GlobalDmaapPublisherTest.java
index 0992b59..47e0583 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/dmaapproperties/GlobalDmaapPublisherTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/dmaapproperties/GlobalDmaapPublisherTest.java
@@ -34,7 +34,7 @@
 	@Test
 	public void testGetters() {
 		assertEquals("dmaapUsername", globalDmaapPublisher.getUserName());
-		assertEquals("dmaapPassword", globalDmaapPublisher.getPassword());
+		assertEquals("ZG1hYXBQYXNzd29yZA==", globalDmaapPublisher.getPassword());
 		assertEquals("com.att.mso.asyncStatusUpdate", globalDmaapPublisher.getTopic());
 		assertEquals("http://localhost:" + wireMockPort, globalDmaapPublisher.getHost().get());
 	}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/test/categories/SpringAware.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/test/categories/SpringAware.java
new file mode 100644
index 0000000..21035fc
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/test/categories/SpringAware.java
@@ -0,0 +1,25 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 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.onap.so.test.categories;
+
+public interface SpringAware {
+	/* category marker */
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/application-test.yaml b/bpmn/MSOCommonBPMN/src/test/resources/application-test.yaml
index f039441..236d435 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/application-test.yaml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/application-test.yaml
@@ -162,7 +162,7 @@
   global:
     dmaap:
       username: dmaapUsername
-      password: dmaapPassword
+      password: ZG1hYXBQYXNzd29yZA==
       host: http://localhost:${wiremock.server.port}
       publisher:
         topic: com.att.mso.asyncStatusUpdate
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/logback-test.xml b/bpmn/MSOCommonBPMN/src/test/resources/logback-test.xml
index d8f6ba3..9088d1a 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/logback-test.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/logback-test.xml
@@ -25,6 +25,6 @@
     <appender-ref ref="STDOUT" />
   </root>
 
-  <logger name="wiremock.org" level="DEBUG" />
+  <logger name="wiremock.org" level="ERROR" />
 
 </configuration>
\ No newline at end of file
diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/common/workflow/service/WorkflowAsyncResource.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/common/workflow/service/WorkflowAsyncResource.java
index ef72149..9ed36e5 100644
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/common/workflow/service/WorkflowAsyncResource.java
+++ b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/common/workflow/service/WorkflowAsyncResource.java
@@ -36,6 +36,7 @@
 
 import org.camunda.bpm.engine.ProcessEngineServices;
 import org.camunda.bpm.engine.variable.impl.VariableMapImpl;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.bpmn.common.workflow.context.WorkflowContext;
 import org.onap.so.bpmn.common.workflow.context.WorkflowContextHolder;
 import org.onap.so.bpmn.common.workflow.context.WorkflowResponse;
@@ -110,7 +111,7 @@
 			@PathParam("processKey") String processKey, VariableMapImpl variableMap){
 		Map<String, Object> inputVariables = getInputVariables(variableMap);	
 		try {		
-			MDC.put(MsoLogger.REQUEST_ID, getRequestId(inputVariables));
+			MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, getRequestId(inputVariables));
 			processor.startProcess(processKey, variableMap);
 			WorkflowResponse response = waitForResponse(getRequestId(inputVariables)); 
 			return Response.status(202).entity(response).build();	
diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java
index c263fe6..db2304d 100644
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java
+++ b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java
@@ -29,9 +29,7 @@
 import org.camunda.bpm.engine.ProcessEngine;
 import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication;
 import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
-import org.onap.so.db.request.data.repository.InfraActiveRequestsRepositoryImpl;
 import org.onap.so.logger.MsoLogger;
-import org.onap.so.requestsdb.RequestsDBHelper;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -52,9 +50,7 @@
 @EnableProcessApplication("MSO Infrastructure Application")
 @EnableAsync
 @ComponentScan(basePackages = { "org.onap" }, nameGenerator = DefaultToShortClassNameBeanNameGenerator.class, excludeFilters = {
-				@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class),
-				@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RequestsDBHelper.class),
-				@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = InfraActiveRequestsRepositoryImpl.class) })
+				@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class) })
 public class MSOInfrastructureApplication {
 
 	private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL,
diff --git a/bpmn/pom.xml b/bpmn/pom.xml
index 9f004af..9368be1 100644
--- a/bpmn/pom.xml
+++ b/bpmn/pom.xml
@@ -90,6 +90,11 @@
 			<groupId>org.apache.httpcomponents</groupId>
 			<artifactId>httpclient</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-data-jpa</artifactId>
+			<optional>true</optional>
+		</dependency>
 	</dependencies>
 
 </project>
diff --git a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/TestApplication.java b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/TestApplication.java
index 314cc0b..d1559c2 100644
--- a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/TestApplication.java
+++ b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/TestApplication.java
@@ -20,14 +20,8 @@
 
 package org.onap.so;
 
-import java.io.IOException;
-
-import javax.annotation.PreDestroy;
-
 import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication;
 import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
-import org.onap.so.db.request.data.repository.InfraActiveRequestsRepositoryImpl;
-import org.onap.so.requestsdb.RequestsDBHelper;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
@@ -35,15 +29,11 @@
 import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Profile;
 
-import ch.vorburger.mariadb4j.MariaDB4jService;
-
 @SpringBootApplication
 @Profile("test")
 @EnableProcessApplication("MSO CommonBPMN Test Application")
 @ComponentScan(basePackages = {"org.onap.so"}, nameGenerator = DefaultToShortClassNameBeanNameGenerator.class, excludeFilters = {
-		@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class),
-		@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RequestsDBHelper.class),
-		@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = InfraActiveRequestsRepositoryImpl.class) })
+		@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class)})
 public class TestApplication {
 	public static void main(String... args) {
 		SpringApplication.run(TestApplication.class, args);
diff --git a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/ConfigurationScaleOutBBTest.java b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/ConfigurationScaleOutBBTest.java
index edf131d..b22b90b 100644
--- a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/ConfigurationScaleOutBBTest.java
+++ b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/ConfigurationScaleOutBBTest.java
@@ -1,3 +1,23 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 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.onap.so.bpmn.infrastructure.bpmn.subprocess;
 
 import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareAssertions.assertThat;
diff --git a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/GenericVnfHealthCheckBBTest.java b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/GenericVnfHealthCheckBBTest.java
index 1c882e8..9553f72 100644
--- a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/GenericVnfHealthCheckBBTest.java
+++ b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/GenericVnfHealthCheckBBTest.java
@@ -1,3 +1,23 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 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.onap.so.bpmn.infrastructure.bpmn.subprocess;
 
 import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareAssertions.assertThat;
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy
index f11022d..ec8df3d 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy
@@ -4,7 +4,7 @@
  * ================================================================================
  * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
  * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License")
+ * 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
  * 
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy
index 63fd20e..37c7d4d 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy
@@ -4,7 +4,7 @@
  * ================================================================================
  * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
  * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License")
+ * 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
  * 
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy
index d571c00..3d8b257 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy
@@ -4,7 +4,7 @@
  * ================================================================================
  * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
  * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License")
+ * 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
  * 
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnOperationClient.java b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnOperationClient.java
index fd84464..b13d7fc 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnOperationClient.java
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnOperationClient.java
@@ -29,13 +29,10 @@
 import org.onap.so.bpmn.infrastructure.workflow.serviceTask.client.HeaderUtil;
 import org.onap.so.bpmn.infrastructure.workflow.serviceTask.client.builder.NetworkRpcInputEntityBuilder;
 import org.onap.so.bpmn.infrastructure.workflow.serviceTask.client.entity.RpcNetworkTopologyOperationInputEntity;
-import org.onap.so.bpmn.infrastructure.workflow.serviceTask.client.entity.RpcNetworkTopologyOperationOutputEntity;
 import org.onap.so.db.request.beans.ResourceOperationStatus;
 import org.onap.so.db.request.beans.ResourceOperationStatusId;
-import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.requestsdb.RequestsDbConstant;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 @Component
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnPreprocessTask.java b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnPreprocessTask.java
index 5bd3297..8bc9dce 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnPreprocessTask.java
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/serviceTask/SdncUnderlayVpnPreprocessTask.java
@@ -24,9 +24,6 @@
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.onap.so.bpmn.core.BaseTask;
 import org.onap.so.db.request.beans.ResourceOperationStatus;
-import org.onap.so.db.request.beans.ResourceOperationStatusId;
-import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 @Component
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/test/java/org/onap/so/TestApplication.java b/bpmn/so-bpmn-infrastructure-flows/src/test/java/org/onap/so/TestApplication.java
index 314cc0b..f9962c2 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/test/java/org/onap/so/TestApplication.java
+++ b/bpmn/so-bpmn-infrastructure-flows/src/test/java/org/onap/so/TestApplication.java
@@ -20,14 +20,8 @@
 
 package org.onap.so;
 
-import java.io.IOException;
-
-import javax.annotation.PreDestroy;
-
 import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication;
 import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
-import org.onap.so.db.request.data.repository.InfraActiveRequestsRepositoryImpl;
-import org.onap.so.requestsdb.RequestsDBHelper;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
@@ -35,15 +29,11 @@
 import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Profile;
 
-import ch.vorburger.mariadb4j.MariaDB4jService;
-
 @SpringBootApplication
 @Profile("test")
 @EnableProcessApplication("MSO CommonBPMN Test Application")
 @ComponentScan(basePackages = {"org.onap.so"}, nameGenerator = DefaultToShortClassNameBeanNameGenerator.class, excludeFilters = {
-		@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class),
-		@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RequestsDBHelper.class),
-		@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = InfraActiveRequestsRepositoryImpl.class) })
+		@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class) })
 public class TestApplication {
 	public static void main(String... args) {
 		SpringApplication.run(TestApplication.class, args);
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasks.java
index e534142..887c51e 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasks.java
@@ -24,6 +24,7 @@
 import org.onap.so.bpmn.common.BuildingBlockExecution;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
@@ -40,6 +41,7 @@
 import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
 import org.onap.so.client.exception.BBObjectNotFoundException;
 import org.onap.so.client.exception.ExceptionBuilder;
+import org.onap.so.client.orchestration.AAIConfigurationResources;
 import org.onap.so.client.orchestration.AAINetworkResources;
 import org.onap.so.client.orchestration.AAIServiceInstanceResources;
 import org.onap.so.client.orchestration.AAIVfModuleResources;
@@ -74,6 +76,8 @@
 	private AAINetworkResources aaiNetworkResources;
 	@Autowired
 	private AAIVpnBindingResources aaiVpnBindingResources;
+	@Autowired
+	private AAIConfigurationResources aaiConfigurationResources;
 
 	public void createServiceInstance(BuildingBlockExecution execution) {
 		try {
@@ -376,4 +380,13 @@
 			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
 		}	
 	}
+	
+	public void createConfiguration(BuildingBlockExecution execution){
+		try{
+			Configuration configuration = extractPojosForBB.extractByKey(execution, ResourceKey.CONFIGURATION_ID, execution.getLookupMap().get(ResourceKey.CONFIGURATION_ID));
+			aaiConfigurationResources.createConfiguration(configuration);
+		} catch (Exception ex) {
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
+		}
+	}
 }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasks.java
index cb265b6..a00806a 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasks.java
@@ -23,6 +23,7 @@
 
 import org.onap.so.bpmn.common.BuildingBlockExecution;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
@@ -31,6 +32,7 @@
 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
 import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
 import org.onap.so.client.exception.ExceptionBuilder;
+import org.onap.so.client.orchestration.AAIConfigurationResources;
 import org.onap.so.client.orchestration.AAINetworkResources;
 import org.onap.so.client.orchestration.AAIServiceInstanceResources;
 import org.onap.so.client.orchestration.AAIVfModuleResources;
@@ -56,6 +58,8 @@
 	private AAINetworkResources aaiNetworkResources;
 	@Autowired
 	private AAIVolumeGroupResources aaiVolumeGroupResources;
+	@Autowired
+	private AAIConfigurationResources aaiConfigurationResources;
 	
 	public void deleteVfModule(BuildingBlockExecution execution) throws Exception {		
 		GenericVnf genericVnf = extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID, execution.getLookupMap().get(ResourceKey.GENERIC_VNF_ID));
@@ -133,4 +137,12 @@
 			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
 		}
 	}
+	public void deleteConfiguration(BuildingBlockExecution execution) {
+		try {
+			Configuration configuration = extractPojosForBB.extractByKey(execution, ResourceKey.CONFIGURATION_ID, execution.getLookupMap().get(ResourceKey.CONFIGURATION_ID));
+			aaiConfigurationResources.deleteConfiguration(configuration);
+		} catch (Exception ex) {
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
+		}
+	}
 }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java
index b059a77..58c51f6 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java
@@ -24,6 +24,7 @@
 import org.onap.so.bpmn.common.BuildingBlockExecution;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
@@ -35,6 +36,7 @@
 import org.onap.so.client.exception.BBObjectNotFoundException;
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.client.orchestration.AAICollectionResources;
+import org.onap.so.client.orchestration.AAIConfigurationResources;
 import org.onap.so.client.orchestration.AAINetworkResources;
 import org.onap.so.client.orchestration.AAIServiceInstanceResources;
 import org.onap.so.client.orchestration.AAIVfModuleResources;
@@ -64,6 +66,8 @@
 	private AAINetworkResources aaiNetworkResources;
 	@Autowired
 	private AAICollectionResources aaiCollectionResources;
+	@Autowired
+	private AAIConfigurationResources aaiConfigurationResources;
 	
 	public void updateOrchestrationStatusAssignedService(BuildingBlockExecution execution) {
 		try {
@@ -394,4 +398,21 @@
 			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
 		}
 	}
+	public void updateOrchestrationStatusActivateFabricConfiguration(BuildingBlockExecution execution) {
+		try {
+			Configuration configuration = extractPojosForBB.extractByKey(execution, ResourceKey.CONFIGURATION_ID, execution.getLookupMap().get(ResourceKey.CONFIGURATION_ID));
+			aaiConfigurationResources.updateOrchestrationStatusConfiguration(configuration, OrchestrationStatus.ACTIVE);
+		} catch (Exception ex) {
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
+		}
+	}
+	
+	public void updateOrchestrationStatusDeactivateFabricConfiguration(BuildingBlockExecution execution) {
+		try {
+			Configuration configuration = extractPojosForBB.extractByKey(execution, ResourceKey.CONFIGURATION_ID, execution.getLookupMap().get(ResourceKey.CONFIGURATION_ID));
+			aaiConfigurationResources.updateOrchestrationStatusConfiguration(configuration, OrchestrationStatus.ASSIGNED);
+		} catch (Exception ex) {
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
+		}
+	}
 }
\ No newline at end of file
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
index b2b071e..57d097e 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
@@ -27,6 +27,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.Set;
 import java.util.UUID;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -36,21 +37,26 @@
 import org.javatuples.Pair;
 import org.onap.aai.domain.yang.GenericVnf;
 import org.onap.aai.domain.yang.L3Network;
+import org.onap.aai.domain.yang.Relationship;
 import org.onap.aai.domain.yang.ServiceInstance;
 import org.onap.aai.domain.yang.VolumeGroup;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
 import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup;
 import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
+import org.onap.so.bpmn.infrastructure.workflow.tasks.Resource;
 import org.onap.so.client.exception.ExceptionBuilder;
+import org.onap.so.client.orchestration.AAIConfigurationResources;
 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
-import org.onap.so.db.catalog.beans.InstanceGroup;
+import org.onap.so.db.catalog.beans.CvnfcCustomization;
 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
 import org.onap.so.db.catalog.beans.VfModuleCustomization;
+import org.onap.so.db.catalog.beans.VnfVfmoduleCvnfcConfigurationCustomization;
 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
 import org.onap.so.db.catalog.client.CatalogDbClient;
@@ -103,6 +109,8 @@
 	private ExceptionBuilder exceptionBuilder;
 	@Autowired
 	private CatalogDbClient catalogDbClient;
+	@Autowired
+	private AAIConfigurationResources aaiConfigurationResources;
 
 	public void setBbInputSetupUtils(BBInputSetupUtils bbInputSetupUtils) {
 		this.bbInputSetupUtils = bbInputSetupUtils;
@@ -125,7 +133,6 @@
 		WorkflowResourceIds workflowResourceIds = populateResourceIdsFromApiHandler(execution);
 		List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
 		List<Resource> resourceCounter = new ArrayList<>();
-		
 		execution.setVariable("sentSyncResponse", false);
 		execution.setVariable("homing", false);
 		execution.setVariable("calledHoming", false);
@@ -212,7 +219,8 @@
 				} else if (resourceType == WorkflowType.SERVICE
 						&& (requestAction.equalsIgnoreCase("activateInstance")
 								|| requestAction.equalsIgnoreCase("unassignInstance")
-								|| requestAction.equalsIgnoreCase("deleteInstance"))) {
+								|| requestAction.equalsIgnoreCase("deleteInstance")
+								|| requestAction.equalsIgnoreCase("activateFabricConfiguration"))) {
 					// SERVICE-MACRO-ACTIVATE, SERVICE-MACRO-UNASSIGN, and
 					// SERVICE-MACRO-DELETE
 					// Will never get user params with service, macro will have
@@ -230,7 +238,7 @@
 					foundObjects = foundObjects + type + " - " + resourceCounter.stream().filter(x -> type.equals(x.getResourceType())).collect(Collectors.toList()).size() + "    ";
 				}
 				msoLogger.info("Found " + foundObjects);
-			
+
 				if (orchFlows == null || orchFlows.isEmpty()) {
 					orchFlows = queryNorthBoundRequestCatalogDb(execution, requestAction, resourceType, aLaCarte);
 				}
@@ -267,7 +275,6 @@
 			execution.setVariable("flowsToExecute", flowsToExecute);
 
 		} catch (Exception ex) {
-			msoLogger.error(ex);
 			buildAndThrowException(execution, "Exception in create execution list " + ex.getMessage(), ex);
 		}
 	}
@@ -278,7 +285,7 @@
 			if(resource.isBaseVfModule()){
 				Collections.swap(vfModuleResources, 0, count);
 				break;
-			}
+		}
 			count++;
 		}
 		return vfModuleResources;
@@ -294,7 +301,7 @@
 			List<Resource> resources = resourceCounter.stream().filter(x -> type.equals(x.getResourceType())).collect(Collectors.toList());
 			for(int i = 0; i < resources.size(); i++){
 				updateWorkflowResourceIds(flowsToExecute, type, resources.get(i).getResourceId(), retrieveAAIResourceId(aaiResourceIds,type), null);
-			}
+		}
 		});
 	}
 
@@ -317,7 +324,7 @@
 						.collect(Collectors.toList()).get(i);
 				updateWorkflowResourceIds(flowsToExecute, type, resource.getResourceId(), null, resource.getVirtualLinkKey());			}
 		});
-	}
+	}	
 	
 	protected void updateWorkflowResourceIds(List<ExecuteBuildingBlock> flowsToExecute, WorkflowType resource, String key, String id, String virtualLinkKey){
 		String resourceId = id;
@@ -337,6 +344,8 @@
 					workflowResourceIds.setNetworkId(resourceId);
 				}else if(resource == WorkflowType.NETWORKCOLLECTION){
 					workflowResourceIds.setNetworkCollectionId(resourceId);
+				}else if(resource == WorkflowType.CONFIGURATION){
+					workflowResourceIds.setConfigurationId(resourceId);
 				}
 				ebb.setWorkflowResourceIds(workflowResourceIds);
 			}
@@ -389,7 +398,7 @@
 								String toscaNodeType = collectionResourceCustomization.getCollectionResource().getInstanceGroup().getToscaNodeType();
 								if (toscaNodeType != null && toscaNodeType.contains("NetworkCollection")) {
 									int minNetworks = 0;
-									InstanceGroup instanceGroup = collectionResourceCustomization.getCollectionResource().getInstanceGroup();
+									org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = collectionResourceCustomization.getCollectionResource().getInstanceGroup();
 									CollectionResourceInstanceGroupCustomization collectionInstCust = null;
 									if(!instanceGroup.getCollectionInstanceGroupCustomizations().isEmpty()) {
 										for(CollectionResourceInstanceGroupCustomization collectionInstanceGroupTemp : instanceGroup.getCollectionInstanceGroupCustomizations()) {
@@ -418,14 +427,14 @@
 										}
 									}
 								} else {
-										msoLogger.debug("Instance Group tosca node type does not contain NetworkCollection: " + toscaNodeType);
+									msoLogger.debug("Instance Group tosca node type does not contain NetworkCollection: " + toscaNodeType);
+								}
+							}else{
+								msoLogger.debug("No Instance Group found for network collection.");
 							}
 						}else{
-								msoLogger.debug("No Instance Group found for network collection.");
+							msoLogger.debug("No Network Collection found. collectionResource is null");
 						}
-					}else{
-						msoLogger.debug("No Network Collection found. collectionResource is null");
-					}
 					} else {
 						msoLogger.debug("No Network Collection Customization found");
 					}
@@ -484,6 +493,20 @@
 				aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, serviceInstanceMSO.getCollection().getId()));
 				resourceCounter.add(new Resource(WorkflowType.NETWORKCOLLECTION,serviceInstanceMSO.getCollection().getId(),false));
 			}
+			if (serviceInstanceMSO.getConfigurations() !=null) {
+				for(Configuration config : serviceInstanceMSO.getConfigurations()){
+					Optional<org.onap.aai.domain.yang.Configuration> aaiConfig = aaiConfigurationResources.getConfiguration(config.getConfigurationId());
+					if(aaiConfig.isPresent() && aaiConfig.get().getRelationshipList()!=null){
+						for(Relationship relationship : aaiConfig.get().getRelationshipList().getRelationship()){
+							if(relationship.getRelatedTo().contains("vnfc")){
+								aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, config.getConfigurationId()));
+								resourceCounter.add(new Resource(WorkflowType.CONFIGURATION,config.getConfigurationId(),false));
+								break;
+							}
+						}
+					}
+				}
+			}
 		} catch (Exception ex) {
 			buildAndThrowException(execution,
 					"Could not find existing Service Instance or related Instances to execute the request on.");
@@ -495,6 +518,8 @@
 			throws IOException {
 		boolean foundRelated = false;
 		boolean foundVfModuleOrVG = false;
+		String vnfCustomizationUUID = "";
+		String vfModuleCustomizationUUID = "";
 		if (sIRequest.getRequestDetails().getRequestParameters().getUserParams() != null) {
 			List<Map<String, Object>> userParams = sIRequest.getRequestDetails().getRequestParameters().getUserParams();
 			for (Map<String, Object> params : userParams) {
@@ -507,18 +532,23 @@
 						for (Vnfs vnf : validate.getResources().getVnfs()) {
 							resourceCounter.add(new Resource(WorkflowType.VNF,vnf.getModelInfo().getModelCustomizationId(),false));
 							foundRelated = true;
+							if(vnf.getModelInfo()!=null && vnf.getModelInfo().getModelCustomizationUuid()!=null){
+								vnfCustomizationUUID = vnf.getModelInfo().getModelCustomizationUuid();
+							}
 							if (vnf.getVfModules() != null) {
 								for (VfModules vfModule : vnf.getVfModules()) {
 									VfModuleCustomization vfModuleCustomization = catalogDbClient
 											.getVfModuleCustomizationByModelCuztomizationUUID(
 													vfModule.getModelInfo().getModelCustomizationUuid());
 									if (vfModuleCustomization != null) {
-										if(vfModuleCustomization.getVfModule()!=null && vfModuleCustomization.getVfModule().getVolumeHeatTemplate()!=null &&vfModuleCustomization.getVolumeHeatEnv() != null) {
+
+										if(vfModuleCustomization.getVfModule() != null && vfModuleCustomization.getVfModule().getVolumeHeatTemplate() != null && vfModuleCustomization.getVolumeHeatEnv() != null) {
 											resourceCounter.add(new Resource(WorkflowType.VOLUMEGROUP,vfModuleCustomization.getModelCustomizationUUID(),false));
 											foundRelated = true;
 											foundVfModuleOrVG = true;
 										}
-										if(vfModuleCustomization.getVfModule()!=null && vfModuleCustomization.getVfModule().getModuleHeatTemplate()!=null && vfModuleCustomization.getHeatEnvironment()!=null){
+
+										if(vfModuleCustomization.getVfModule() != null && vfModuleCustomization.getVfModule().getModuleHeatTemplate() != null && vfModuleCustomization.getHeatEnvironment() != null){
 											foundRelated = true;
 											foundVfModuleOrVG = true;
 											Resource resource = new Resource(WorkflowType.VFMODULE,vfModuleCustomization.getModelCustomizationUUID(),false);
@@ -528,6 +558,15 @@
 												resource.setBaseVfModule(false);
 											}
 											resourceCounter.add(resource);
+											if(vfModule.getModelInfo()!=null && vfModule.getModelInfo().getModelCustomizationUuid()!=null){
+												vfModuleCustomizationUUID = vfModule.getModelInfo().getModelCustomizationUuid();
+											}
+											if(!vnfCustomizationUUID.equals("")&&!vfModuleCustomizationUUID.equals("")){
+												List<String> configs = traverseCatalogDbForConfiguration(vnfCustomizationUUID,vfModuleCustomizationUUID);
+												for(String config : configs){
+													resourceCounter.add(new Resource(WorkflowType.CONFIGURATION,config,false));
+												}
+											}
 										}
 										if(!foundVfModuleOrVG){
 											buildAndThrowException(execution, "Could not determine if vfModule was a vfModule or volume group. Heat template and Heat env are null");
@@ -556,6 +595,25 @@
 		}
 		return foundRelated;
 	}
+	
+
+	private List<String> traverseCatalogDbForConfiguration(String vnfCustomizationUUID, String vfModuleCustomizationUUID) {
+		List<String> configurations = new ArrayList<>();
+		try{
+			List<CvnfcCustomization> cvnfcCustomizations = catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID(vnfCustomizationUUID, vfModuleCustomizationUUID);
+			for(CvnfcCustomization cvnfc : cvnfcCustomizations){
+				for(VnfVfmoduleCvnfcConfigurationCustomization customization : cvnfc.getVnfVfmoduleCvnfcConfigurationCustomization()){
+					if(customization.getConfigurationResource().getToscaNodeType().contains("FabricConfiguration")){
+						configurations.add(customization.getConfigurationResource().getModelUUID());
+					}
+				}
+			}
+			msoLogger.debug("found " + configurations.size() + " configurations");
+			return configurations;
+		} catch (Exception ex){
+			return configurations;
+		}
+	}
 
 	protected String queryCatalogDBforNetworkCollection(DelegateExecution execution, ServiceInstancesRequest sIRequest) {
 		org.onap.so.db.catalog.beans.Service service = catalogDbClient
@@ -664,7 +722,6 @@
 			}
 			return generatedResourceId;
 		} catch (Exception ex) {
-			msoLogger.error(ex);
 			throw new IllegalStateException(
 					"WorkflowAction was unable to verify if the instance name already exist in AAI.");
 		}
@@ -810,7 +867,7 @@
 							.collect(Collectors.toList()).get(i).getResourceId(), apiVersion, resourceId,
 							requestAction, aLaCarte, vnfType, workflowResourceIds, requestDetails, false, null));
 				}
-			} else {
+			}else {
 				flowsToExecute.add(buildExecuteBuildingBlock(orchFlow, requestId, "", apiVersion, resourceId,
 						requestAction, aLaCarte, vnfType, workflowResourceIds, requestDetails, false, null));
 			}
@@ -852,24 +909,24 @@
 				buildAndThrowException(execution,"The request: Macro " + resourceName + " " + requestAction + " is not supported by GR_API.");
 			}
 		} else {
-			if(northBoundRequest.getIsToplevelflow()!=null){
-				execution.setVariable(G_ISTOPLEVELFLOW, northBoundRequest.getIsToplevelflow());
-			}
-			List<OrchestrationFlow> flows = northBoundRequest.getOrchestrationFlowList();
-			if (flows == null)
-				flows = new ArrayList<>();
-			for (OrchestrationFlow flow : flows) {
-				if (!flow.getFlowName().contains("BB")) {
-					List<OrchestrationFlow> macroQueryFlows = catalogDbClient
-							.getOrchestrationFlowByAction(flow.getFlowName());
-					for (OrchestrationFlow macroFlow : macroQueryFlows) {
-						listToExecute.add(macroFlow);
-					}
-				} else {
-					listToExecute.add(flow);
+		if(northBoundRequest.getIsToplevelflow()!=null){
+			execution.setVariable(G_ISTOPLEVELFLOW, northBoundRequest.getIsToplevelflow());
+		}
+		List<OrchestrationFlow> flows = northBoundRequest.getOrchestrationFlowList();
+		if (flows == null)
+			flows = new ArrayList<>();
+		for (OrchestrationFlow flow : flows) {
+			if (!flow.getFlowName().contains("BB")) {
+				List<OrchestrationFlow> macroQueryFlows = catalogDbClient
+						.getOrchestrationFlowByAction(flow.getFlowName());
+				for (OrchestrationFlow macroFlow : macroQueryFlows) {
+					listToExecute.add(macroFlow);
 				}
+			} else {
+				listToExecute.add(flow);
 			}
 		}
+		}
 		return listToExecute;
 	}
 
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
index 101a355..ab29e21 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
@@ -30,9 +30,10 @@
 import org.onap.so.bpmn.core.WorkflowException;
 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
-import org.onap.so.client.db.request.RequestsDbClient;
+
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.serviceinstancebeans.RequestReferences;
 import org.onap.so.serviceinstancebeans.ServiceInstancesResponse;
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/aai/mapper/AAIObjectMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/aai/mapper/AAIObjectMapper.java
index be19f25..4a1c3f5 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/aai/mapper/AAIObjectMapper.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/aai/mapper/AAIObjectMapper.java
@@ -7,15 +7,14 @@
  * 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.
- * Modifications Copyright (C) 2018 IBM
  * ============LICENSE_END=========================================================
  */
 
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIConfigurationResources.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIConfigurationResources.java
index b84f8b6..e9dc374 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIConfigurationResources.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIConfigurationResources.java
@@ -157,6 +157,15 @@
         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
         injectionHelper.getAaiClient().delete(aaiResourceUri);
     }
+    /**
+     * method to delete Configuration details in A&AI
+     *
+     * @param configuration
+     */
+    public void deleteConfiguration(Configuration configuration) {
+        AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
+        injectionHelper.getAaiClient().delete(aaiResourceUri);
+    }
 
     /**
      * Get Configuration from AAI using related Link
@@ -167,4 +176,11 @@
         return injectionHelper.getAaiClient()
         		.get(org.onap.aai.domain.yang.Configuration.class, AAIUriFactory.createResourceFromExistingURI(AAIObjectType.CONFIGURATION, UriBuilder.fromPath(relatedLink).build()));
     }
+    
+    public void updateOrchestrationStatusConfiguration(Configuration configuration, OrchestrationStatus orchestrationStatus) {
+		AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
+		configuration.setOrchestrationStatus(orchestrationStatus);
+		org.onap.aai.domain.yang.Configuration aaiConfiguration = aaiObjectMapper.mapConfiguration(configuration);
+		injectionHelper.getAaiClient().update(aaiResourceUri, aaiConfiguration);
+	}
 }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/SDNCClient.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/SDNCClient.java
index 9e60196..0061f50 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/SDNCClient.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/SDNCClient.java
@@ -24,6 +24,7 @@
 
 import javax.ws.rs.core.UriBuilder;
 
+import org.onap.so.bpmn.common.baseclient.BaseClient;
 import org.onap.so.client.exception.BadResponseException;
 import org.onap.so.client.exception.MapperException;
 import org.onap.so.client.sdnc.beans.SDNCProperties;
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sniro/SniroClient.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sniro/SniroClient.java
index cee94e2..eb12278 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sniro/SniroClient.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sniro/SniroClient.java
@@ -23,9 +23,9 @@
 import java.util.LinkedHashMap;
 
 import org.camunda.bpm.engine.delegate.BpmnError;
+import org.onap.so.bpmn.common.baseclient.BaseClient;
 import org.onap.so.bpmn.core.UrnPropertiesReader;
 import org.onap.so.client.exception.BadResponseException;
-import org.onap.so.client.sdnc.BaseClient;
 import org.onap.so.client.sniro.beans.ManagerProperties;
 import org.onap.so.client.sniro.beans.SniroConductorRequest;
 import org.onap.so.client.sniro.beans.SniroManagerRequest;
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/TestApplication.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/TestApplication.java
index 6401d55..9244f7e 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/TestApplication.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/TestApplication.java
@@ -21,14 +21,8 @@
 
 
 
-import java.io.IOException;
-
-import javax.annotation.PreDestroy;
-
 import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication;
 import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
-import org.onap.so.db.request.data.repository.InfraActiveRequestsRepositoryImpl;
-import org.onap.so.requestsdb.RequestsDBHelper;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
@@ -40,9 +34,7 @@
 @Profile("test")
 @EnableProcessApplication("MSO CommonBPMN Test Application")
 @ComponentScan(basePackages = {"org.onap.so"}, nameGenerator = DefaultToShortClassNameBeanNameGenerator.class, excludeFilters = {
-		@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class),
-		@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RequestsDBHelper.class),
-		@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = InfraActiveRequestsRepositoryImpl.class) })
+		@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class)})
 public class TestApplication {
 	public static void main(String... args) {
 		SpringApplication.run(TestApplication.class, args);
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/BaseTaskTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/BaseTaskTest.java
index 3fce15a..2b25dfd 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/BaseTaskTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/BaseTaskTest.java
@@ -28,8 +28,8 @@
 import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
 import org.onap.so.client.adapter.network.mapper.NetworkAdapterObjectMapper;
 import org.onap.so.client.appc.ApplicationControllerAction;
-import org.onap.so.client.db.request.RequestsDbClient;
 import org.onap.so.client.orchestration.AAICollectionResources;
+import org.onap.so.client.orchestration.AAIConfigurationResources;
 import org.onap.so.client.orchestration.AAIInstanceGroupResources;
 import org.onap.so.client.orchestration.AAINetworkResources;
 import org.onap.so.client.orchestration.AAIServiceInstanceResources;
@@ -46,6 +46,8 @@
 import org.onap.so.client.orchestration.VnfAdapterVolumeGroupResources;
 import org.onap.so.client.sdnc.SDNCClient;
 import org.onap.so.db.catalog.client.CatalogDbClient;
+import org.onap.so.db.request.client.RequestsDbClient;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.boot.test.mock.mockito.SpyBean;
@@ -111,6 +113,7 @@
 	protected CatalogDbClient catalogDbClient;
 	
 	@MockBean
+	@Qualifier("RequestsDbClient")
 	protected RequestsDbClient requestsDbClient;
 	
 	@Mock
@@ -118,10 +121,13 @@
 	
 	@Mock
 	protected BBInputSetup bbInputSetup;
-
+	
 	@SpyBean
 	protected SDNCClient SPY_sdncClient;
 	
 	@MockBean
 	protected ApplicationControllerAction appCClient;
+
+	@MockBean
+	protected AAIConfigurationResources aaiConfigurationResources;
 }
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/common/data/TestDataSetup.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/common/data/TestDataSetup.java
index 675e8a1..fb95330 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/common/data/TestDataSetup.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/common/data/TestDataSetup.java
@@ -663,4 +663,20 @@
 		
 		return ar;
 	}
+	
+	public Configuration setConfiguration () {
+		Configuration config = new Configuration();
+		config.setConfigurationId("testConfigurationId");
+		List<Configuration> configurations = new ArrayList<>();
+		configurations.add(config);
+		ServiceInstance serviceInstance = new ServiceInstance();
+		try {
+			serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID, execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID));
+		} catch(BBObjectNotFoundException e) {
+			serviceInstance = setServiceInstance();
+		}
+		lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "testConfigurationId");
+		serviceInstance.setConfigurations(configurations);
+		return config;
+	}
 }
\ No newline at end of file
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasksTest.java
index 51a7f1a..0b802a3 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasksTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAICreateTasksTest.java
@@ -26,6 +26,9 @@
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.camunda.bpm.engine.delegate.BpmnError;
 import org.junit.Before;
 import org.junit.Rule;
@@ -33,6 +36,7 @@
 import org.junit.rules.ExpectedException;
 import org.onap.so.bpmn.BaseTaskTest;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
@@ -54,6 +58,7 @@
 	private CloudRegion cloudRegion;
 	private VfModule vfModule;
 	private Customer customer;
+	private Configuration configuration;
 	
 	 @Rule
 	 public final ExpectedException exception = ExpectedException.none();
@@ -67,6 +72,7 @@
 		volumeGroup = setVolumeGroup();
 		cloudRegion = setCloudRegion();
 		vfModule = setVfModule();
+		configuration = setConfiguration();
 
 	}
 	
@@ -384,4 +390,12 @@
 		aaiCreateTasks.connectNetworkToTenant(execution);
 		verify(aaiNetworkResources, times(1)).connectNetworkToTenant(network, gBBInput.getCloudRegion());
 	}
+	
+	@Test
+	public void createConfigurationTest() throws Exception {
+		gBBInput = execution.getGeneralBuildingBlock();
+		doNothing().when(aaiConfigurationResources).createConfiguration(configuration);
+		aaiCreateTasks.createConfiguration(execution);
+		verify(aaiConfigurationResources, times(1)).createConfiguration(configuration);
+	}
 }
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasksTest.java
new file mode 100644
index 0000000..efe5b5d
--- /dev/null
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasksTest.java
@@ -0,0 +1,162 @@
+/*-
+ * ============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.onap.so.bpmn.infrastructure.aai.tasks;
+
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.camunda.bpm.engine.delegate.BpmnError;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.so.bpmn.BaseTaskTest;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
+import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class AAIDeleteTasksTest extends BaseTaskTest {
+	@Autowired
+	private AAIDeleteTasks aaiDeleteTasks;
+	
+	private L3Network network;
+	private ServiceInstance serviceInstance;
+	private GenericVnf genericVnf;
+	private VfModule vfModule;
+	private VolumeGroup volumeGroup;
+	private CloudRegion cloudRegion;
+	private Configuration configuration;
+	
+	@Before
+	public void before() {
+		serviceInstance = setServiceInstance();
+		genericVnf = setGenericVnf();
+		vfModule = setVfModule();
+		network = setL3Network();
+		volumeGroup = setVolumeGroup();
+		cloudRegion = setCloudRegion();
+		configuration = setConfiguration();
+	}
+	
+	@Test
+	public void deleteVfModuleTest() throws Exception {
+		doNothing().when(aaiVfModuleResources).deleteVfModule(vfModule, genericVnf);
+		aaiDeleteTasks.deleteVfModule(execution);
+		verify(aaiVfModuleResources, times(1)).deleteVfModule(vfModule, genericVnf);
+	}
+	
+	@Test
+	public void deleteVfModuleExceptionTest() throws Exception {
+		expectedException.expect(BpmnError.class);
+		doThrow(Exception.class).when(aaiVfModuleResources).deleteVfModule(vfModule, genericVnf);
+		aaiDeleteTasks.deleteVfModule(execution);
+	}
+	
+	@Test
+	public void deleteServiceInstanceTest() throws Exception {
+		doNothing().when(aaiServiceInstanceResources).deleteServiceInstance(serviceInstance);
+		
+		aaiDeleteTasks.deleteServiceInstance(execution);
+		
+		verify(aaiServiceInstanceResources, times(1)).deleteServiceInstance(serviceInstance);
+	}
+	
+	@Test 
+	public void deleteServiceInstanceExceptionTest() throws Exception {
+		expectedException.expect(BpmnError.class);
+		
+		doThrow(Exception.class).when(aaiServiceInstanceResources).deleteServiceInstance(serviceInstance);
+		
+		aaiDeleteTasks.deleteServiceInstance(execution);
+	}	
+	
+	@Test
+	public void deleteVnfTest() throws Exception {
+		doNothing().when(aaiVnfResources).deleteVnf(genericVnf);
+		aaiDeleteTasks.deleteVnf(execution);
+		verify(aaiVnfResources, times(1)).deleteVnf(genericVnf);
+	}
+	
+	@Test
+	public void deleteVnfTestException() throws Exception {
+		expectedException.expect(BpmnError.class);
+		doThrow(Exception.class).when(aaiVnfResources).deleteVnf(genericVnf);
+		
+		aaiDeleteTasks.deleteVnf(execution);
+		verify(aaiVnfResources, times(1)).deleteVnf(genericVnf);
+	}
+	
+	@Test 
+	public void deleteNetworkTest() throws Exception {
+		doNothing().when(aaiNetworkResources).deleteNetwork(network);
+		aaiDeleteTasks.deleteNetwork(execution);
+		verify(aaiNetworkResources, times(1)).deleteNetwork(network);
+	}
+	
+	@Test 
+	public void deleteCollectionTest() throws Exception {
+		doNothing().when(aaiNetworkResources).deleteCollection(serviceInstance.getCollection());
+		aaiDeleteTasks.deleteCollection(execution);
+		verify(aaiNetworkResources, times(1)).deleteCollection(serviceInstance.getCollection());
+	}
+	
+	@Test 
+	public void deleteInstanceGroupTest() throws Exception {
+		doNothing().when(aaiNetworkResources).deleteNetworkInstanceGroup(serviceInstance.getCollection().getInstanceGroup());
+		aaiDeleteTasks.deleteInstanceGroup(execution);
+		verify(aaiNetworkResources, times(1)).deleteNetworkInstanceGroup(serviceInstance.getCollection().getInstanceGroup());
+	}
+
+	@Test
+	public void deleteVolumeGroupTest() {
+		doNothing().when(aaiVolumeGroupResources).deleteVolumeGroup(volumeGroup, cloudRegion);
+		
+		aaiDeleteTasks.deleteVolumeGroup(execution);
+		
+		verify(aaiVolumeGroupResources, times(1)).deleteVolumeGroup(volumeGroup, cloudRegion);
+	}
+	
+	@Test
+	public void deleteVolumeGroupExceptionTest() {
+		expectedException.expect(BpmnError.class);
+		
+		doThrow(Exception.class).when(aaiVolumeGroupResources).deleteVolumeGroup(volumeGroup, cloudRegion);
+		
+		aaiDeleteTasks.deleteVolumeGroup(execution);
+	}
+	
+	@Test
+	public void deleteConfigurationTest() throws Exception {
+		gBBInput = execution.getGeneralBuildingBlock();
+		doNothing().when(aaiConfigurationResources).deleteConfiguration(configuration);
+		aaiDeleteTasks.deleteConfiguration(execution);
+		verify(aaiConfigurationResources, times(1)).deleteConfiguration(configuration);
+	}
+}
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java
index b457529..d800ae9 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java
@@ -32,6 +32,7 @@
 import org.onap.so.adapters.nwrest.CreateNetworkResponse;
 import org.onap.so.bpmn.BaseTaskTest;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
@@ -50,6 +51,7 @@
 	private GenericVnf genericVnf;
 	private VolumeGroup volumeGroup;
 	private CloudRegion cloudRegion;
+	private Configuration configuration;
 	
 	@Before
 	public void before() {
@@ -59,6 +61,7 @@
 		volumeGroup = setVolumeGroup();
 		cloudRegion = setCloudRegion();
 		network = setL3Network();
+		configuration = setConfiguration();
 	}
 	
 	@Test
@@ -462,4 +465,23 @@
 		doThrow(Exception.class).when(aaiVfModuleResources).changeAssignVfModule(vfModule, genericVnf);
 		aaiUpdateTasks.updateModelVfModule(execution);
 	}
+	
+	@Test
+	public void updateOrchestrationStatusDeactivateFabricConfigurationTest() throws Exception {
+		gBBInput = execution.getGeneralBuildingBlock();
+		doNothing().when(aaiConfigurationResources).updateOrchestrationStatusConfiguration(configuration, OrchestrationStatus.ASSIGNED);
+
+		aaiUpdateTasks.updateOrchestrationStatusDeactivateFabricConfiguration(execution);
+
+		verify(aaiConfigurationResources, times(1)).updateOrchestrationStatusConfiguration(configuration, OrchestrationStatus.ASSIGNED);
+	}
+	@Test
+	public void updateOrchestrationStatusActivateFabricConfigurationTest() throws Exception {
+		gBBInput = execution.getGeneralBuildingBlock();
+		doNothing().when(aaiConfigurationResources).updateOrchestrationStatusConfiguration(configuration, OrchestrationStatus.ACTIVE);
+
+		aaiUpdateTasks.updateOrchestrationStatusActivateFabricConfiguration(execution);
+
+		verify(aaiConfigurationResources, times(1)).updateOrchestrationStatusConfiguration(configuration, OrchestrationStatus.ACTIVE);
+	}
 }
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java
index 3869988..65d16ad 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java
@@ -36,7 +36,6 @@
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Optional;
@@ -74,7 +73,6 @@
 import org.onap.so.db.catalog.beans.VfModuleCustomization;
 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
-import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.RequestDetails;
 import org.onap.so.serviceinstancebeans.RequestParameters;
 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
@@ -304,7 +302,7 @@
 		orchFlows.add(orch7);
 		OrchestrationFlow orch8 = new OrchestrationFlow();
 		orch8.setFlowName("ActivateServiceInstanceBB");
-		orchFlows.add(orch8);	
+		orchFlows.add(orch8);
 		
 		ServiceInstance serviceInstanceAAI = new ServiceInstance();
 		serviceInstanceAAI.setServiceInstanceId("si0");
@@ -718,6 +716,9 @@
 		orch15.setFlowName("ActivateServiceInstanceBB");
 		orchFlows.add(orch15);
 		
+		Service service = new Service();
+		service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
+		
 		VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
 		vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
 		HeatEnvironment volumeHeatEnv = new HeatEnvironment();
@@ -743,6 +744,7 @@
 		when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f")).thenReturn(vfModuleCustomization);
 		when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8")).thenReturn(vfModuleCustomization2);
 		when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969")).thenReturn(vfModuleCustomization3);
+		when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
 		workflowAction.selectExecutionList(execution);
 		List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
 		
@@ -796,48 +798,48 @@
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = new LinkedList<>();
 		northBoundRequest.setOrchestrationFlowList(orchFlows);	
-		OrchestrationFlow orch1 = new OrchestrationFlow();
-		orch1.setFlowName("DeactivateVfModuleBB");
-		orchFlows.add(orch1);
-		OrchestrationFlow orch2 = new OrchestrationFlow();
-		orch2.setFlowName("DeleteVfModuleBB");
-		orchFlows.add(orch2);
 		OrchestrationFlow orch3 = new OrchestrationFlow();
-		orch3.setFlowName("DeactivateVolumeGroupBB");
+		orch3.setFlowName("DeactivateVfModuleBB");
 		orchFlows.add(orch3);
 		OrchestrationFlow orch4 = new OrchestrationFlow();
-		orch4.setFlowName("DeleteVolumeGroupBB");
+		orch4.setFlowName("DeleteVfModuleBB");
 		orchFlows.add(orch4);
 		OrchestrationFlow orch5 = new OrchestrationFlow();
-		orch5.setFlowName("DeactivateVnfBB");
+		orch5.setFlowName("DeactivateVolumeGroupBB");
 		orchFlows.add(orch5);
 		OrchestrationFlow orch6 = new OrchestrationFlow();
-		orch6.setFlowName("DeactivateNetworkBB");
+		orch6.setFlowName("DeleteVolumeGroupBB");
 		orchFlows.add(orch6);
 		OrchestrationFlow orch7 = new OrchestrationFlow();
-		orch7.setFlowName("DeleteNetworkBB");
+		orch7.setFlowName("DeactivateVnfBB");
 		orchFlows.add(orch7);
 		OrchestrationFlow orch8 = new OrchestrationFlow();
-		orch8.setFlowName("DeleteNetworkCollectionBB");
+		orch8.setFlowName("DeactivateNetworkBB");
 		orchFlows.add(orch8);	
 		OrchestrationFlow orch9 = new OrchestrationFlow();
-		orch9.setFlowName("DeactivateServiceInstanceBB");
+		orch9.setFlowName("DeleteNetworkBB");
 		orchFlows.add(orch9);	
 		OrchestrationFlow orch10 = new OrchestrationFlow();
-		orch10.setFlowName("UnassignVfModuleBB");
+		orch10.setFlowName("DeleteNetworkCollectionBB");
 		orchFlows.add(orch10);	
 		OrchestrationFlow orch11 = new OrchestrationFlow();
-		orch11.setFlowName("UnassignVolumeGroupBB");
+		orch11.setFlowName("DeactivateServiceInstanceBB");
 		orchFlows.add(orch11);	
 		OrchestrationFlow orch12 = new OrchestrationFlow();
-		orch12.setFlowName("UnassignVnfBB");
+		orch12.setFlowName("UnassignVfModuleBB");
 		orchFlows.add(orch12);	
 		OrchestrationFlow orch13 = new OrchestrationFlow();
-		orch13.setFlowName("UnassignNetworkBB");
+		orch13.setFlowName("UnassignVolumeGroupBB");
 		orchFlows.add(orch13);	
 		OrchestrationFlow orch14 = new OrchestrationFlow();
-		orch14.setFlowName("UnassignServiceInstanceBB");
+		orch14.setFlowName("UnassignVnfBB");
 		orchFlows.add(orch14);	
+		OrchestrationFlow orch15 = new OrchestrationFlow();
+		orch15.setFlowName("UnassignNetworkBB");
+		orchFlows.add(orch15);	
+		OrchestrationFlow orch16 = new OrchestrationFlow();
+		orch16.setFlowName("UnassignServiceInstanceBB");
+		orchFlows.add(orch16);	
 		
 		ServiceInstance serviceInstanceAAI = new ServiceInstance();
 		serviceInstanceAAI.setServiceInstanceId("aaisi123");
@@ -954,49 +956,49 @@
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = new LinkedList<>();
-		northBoundRequest.setOrchestrationFlowList(orchFlows);				
-		OrchestrationFlow orch1 = new OrchestrationFlow();
-		orch1.setFlowName("DeactivateVfModuleBB");
-		orchFlows.add(orch1);
-		OrchestrationFlow orch2 = new OrchestrationFlow();
-		orch2.setFlowName("DeleteVfModuleBB");
-		orchFlows.add(orch2);
+		northBoundRequest.setOrchestrationFlowList(orchFlows);	
 		OrchestrationFlow orch3 = new OrchestrationFlow();
-		orch3.setFlowName("DeactivateVolumeGroupBB");
+		orch3.setFlowName("DeactivateVfModuleBB");
 		orchFlows.add(orch3);
 		OrchestrationFlow orch4 = new OrchestrationFlow();
-		orch4.setFlowName("DeleteVolumeGroupBB");
+		orch4.setFlowName("DeleteVfModuleBB");
 		orchFlows.add(orch4);
 		OrchestrationFlow orch5 = new OrchestrationFlow();
-		orch5.setFlowName("DeactivateVnfBB");
+		orch5.setFlowName("DeactivateVolumeGroupBB");
 		orchFlows.add(orch5);
 		OrchestrationFlow orch6 = new OrchestrationFlow();
-		orch6.setFlowName("DeactivateNetworkBB");
+		orch6.setFlowName("DeleteVolumeGroupBB");
 		orchFlows.add(orch6);
 		OrchestrationFlow orch7 = new OrchestrationFlow();
-		orch7.setFlowName("DeleteNetworkBB");
+		orch7.setFlowName("DeactivateVnfBB");
 		orchFlows.add(orch7);
 		OrchestrationFlow orch8 = new OrchestrationFlow();
-		orch8.setFlowName("DeleteNetworkCollectionBB");
-		orchFlows.add(orch8);
+		orch8.setFlowName("DeactivateNetworkBB");
+		orchFlows.add(orch8);	
 		OrchestrationFlow orch9 = new OrchestrationFlow();
-		orch9.setFlowName("DeactivateServiceInstanceBB");
-		orchFlows.add(orch9);
+		orch9.setFlowName("DeleteNetworkBB");
+		orchFlows.add(orch9);	
 		OrchestrationFlow orch10 = new OrchestrationFlow();
-		orch10.setFlowName("UnassignVfModuleBB");
-		orchFlows.add(orch10);
+		orch10.setFlowName("DeleteNetworkCollectionBB");
+		orchFlows.add(orch10);	
 		OrchestrationFlow orch11 = new OrchestrationFlow();
-		orch11.setFlowName("UnassignVolumeGroupBB");
-		orchFlows.add(orch11);
+		orch11.setFlowName("DeactivateServiceInstanceBB");
+		orchFlows.add(orch11);	
 		OrchestrationFlow orch12 = new OrchestrationFlow();
-		orch12.setFlowName("UnassignVnfBB");
-		orchFlows.add(orch12);
+		orch12.setFlowName("UnassignVfModuleBB");
+		orchFlows.add(orch12);	
 		OrchestrationFlow orch13 = new OrchestrationFlow();
-		orch13.setFlowName("UnassignNetworkBB");
-		orchFlows.add(orch13);
+		orch13.setFlowName("UnassignVolumeGroupBB");
+		orchFlows.add(orch13);	
 		OrchestrationFlow orch14 = new OrchestrationFlow();
-		orch14.setFlowName("UnassignServiceInstanceBB");
-		orchFlows.add(orch14);
+		orch14.setFlowName("UnassignVnfBB");
+		orchFlows.add(orch14);	
+		OrchestrationFlow orch15 = new OrchestrationFlow();
+		orch15.setFlowName("UnassignNetworkBB");
+		orchFlows.add(orch15);	
+		OrchestrationFlow orch16 = new OrchestrationFlow();
+		orch16.setFlowName("UnassignServiceInstanceBB");
+		orchFlows.add(orch16);	
 		
 		ServiceInstance serviceInstanceAAI = new ServiceInstance();
 		serviceInstanceAAI.setServiceInstanceId("aaisi123");
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/aai/mapper/AAIObjectMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/aai/mapper/AAIObjectMapperTest.java
index 0355006..99f1b18 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/aai/mapper/AAIObjectMapperTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/aai/mapper/AAIObjectMapperTest.java
@@ -562,7 +562,7 @@
 		AAIObjectMapper aaiObjectMapper = new AAIObjectMapper();
 		org.onap.aai.domain.yang.CtagAssignments v12CtagAssingments = aaiObjectMapper.mapToAAICtagAssignmentList(ctagAssignments);
 
-		assertEquals(ctagAssignments.get(0).getVlanIdInner().longValue(), v12CtagAssingments.getCtagAssignment().get(0).getVlanIdInner());
+		assertEquals(new Long(ctagAssignments.get(0).getVlanIdInner().longValue()), new Long(v12CtagAssingments.getCtagAssignment().get(0).getVlanIdInner()));
 
 		String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiCtagAssingmentsMapped_to_aai.json")));
 		ObjectMapper omapper = new ObjectMapper();
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIConfigurationResourcesTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIConfigurationResourcesTest.java
index cc48c46..5948c66 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIConfigurationResourcesTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAIConfigurationResourcesTest.java
@@ -177,4 +177,13 @@
         aaiConfigurationResources.deleteConfiguration("configurationId");
         verify(MOCK_aaiResourcesClient, times(1)).delete(aaiResourceUri);
     }
+    
+    @Test
+	public void updateOrchestrationStatusConfigurationTest() throws Exception {
+		configuration.setOrchestrationStatus(OrchestrationStatus.ACTIVE);
+		doNothing().when(MOCK_aaiResourcesClient).update(isA(AAIResourceUri.class), isA(org.onap.aai.domain.yang.Configuration.class));
+		aaiConfigurationResources.updateOrchestrationStatusConfiguration(configuration,OrchestrationStatus.ACTIVE);		
+		verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class), any(org.onap.aai.domain.yang.Configuration.class));
+		assertEquals(OrchestrationStatus.ACTIVE, configuration.getOrchestrationStatus());
+	}
 }
\ No newline at end of file
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/BaseClientTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/BaseClientTest.java
deleted file mode 100644
index a564d8a..0000000
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/BaseClientTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.onap.so.client.sdnc;
-
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.get;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
-import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.junit.Assert.assertThat;
-
-import java.util.Map;
-
-import javax.ws.rs.core.UriBuilder;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.springframework.core.ParameterizedTypeReference;
-
-import com.github.tomakehurst.wiremock.junit.WireMockRule;
-
-import wiremock.org.apache.http.entity.ContentType;
-public class BaseClientTest {
-
-	
-	@Rule
-	public WireMockRule wm = new WireMockRule(options().dynamicPort());
-	
-	@Test
-	public void verifyString() {
-		BaseClient<String, String> client = new BaseClient<>();
-		String response = "{\"hello\" : \"world\"}";
-		client.setTargetUrl(UriBuilder.fromUri("http://localhost/test").port(wm.port()).build().toString());
-		wm.stubFor(get(urlEqualTo("/test"))
-                .willReturn(aResponse().withStatus(200).withBody(response).withHeader("Content-Type", ContentType.APPLICATION_JSON.toString())));
-		
-		String result = client.get("", new ParameterizedTypeReference<String>() {});
-		assertThat(result, equalTo(response));
-	}
-	
-	@Test
-	public void verifyMap() {
-		BaseClient<String, Map<String, Object>> client = new BaseClient<>();
-		String response = "{\"hello\" : \"world\"}";
-		client.setTargetUrl(UriBuilder.fromUri("http://localhost/test").port(wm.port()).build().toString());
-		wm.stubFor(get(urlEqualTo("/test"))
-                .willReturn(aResponse().withStatus(200).withBody(response).withHeader("Content-Type", ContentType.APPLICATION_JSON.toString())));
-		
-		Map<String, Object> result = client.get("", new ParameterizedTypeReference<Map<String, Object>>() {});
-		assertThat("world", equalTo(result.get("hello")));
-	}
-}