diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAudit.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAudit.java
new file mode 100644
index 0000000..a2c117b
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAudit.java
@@ -0,0 +1,56 @@
+package org.onap.so.adapters.audit;
+
+import java.io.Serializable;
+import java.net.URI;
+
+import org.onap.so.client.aai.AAIObjectType;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+public class AAIObjectAudit implements Serializable{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -4560928512855386021L;
+	private boolean doesObjectExist = false;
+	private Object aaiObject;
+	private URI resourceURI;
+	private String aaiObjectType;
+	
+	@Override
+	public String toString() {
+		return new ToStringBuilder(this).append("doesObjectExist", doesObjectExist).append("aaiObject", aaiObject)
+				.append("resourceURI", resourceURI).append("aaiObjectType", aaiObjectType).toString();
+	}
+
+	public String getAaiObjectType() {
+		return aaiObjectType;
+	}
+
+	public void setAaiObjectType(String aaiObjectType) {
+		this.aaiObjectType = aaiObjectType;
+	}
+
+	public boolean isDoesObjectExist() {
+		return doesObjectExist;
+	}
+	
+	public void setDoesObjectExist(boolean doesObjectExist) {
+		this.doesObjectExist = doesObjectExist;
+	}
+	
+	public Object getAaiObject() {
+		return aaiObject;
+	}
+	
+	public void setAaiObject(Object aaiObject) {
+		this.aaiObject = aaiObject;
+	}
+	
+	public URI getResourceURI() {
+		return resourceURI;
+	}
+	public void setResourceURI(URI resourceURI) {
+		this.resourceURI = resourceURI;
+	}
+}
\ No newline at end of file
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAuditList.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAuditList.java
new file mode 100644
index 0000000..a1a8d5b
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAuditList.java
@@ -0,0 +1,25 @@
+package org.onap.so.adapters.audit;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+public class AAIObjectAuditList implements Serializable{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 6712662349909726930L;
+	private List<AAIObjectAudit> auditList = new ArrayList<>();
+
+	@Override
+	public String toString() {
+		return new ToStringBuilder(this).append("auditList", auditList).toString();
+	}
+
+	public List<AAIObjectAudit> getAuditList() {
+		return auditList;
+	}
+
+}
\ No newline at end of file
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java
deleted file mode 100644
index 66d8fbd..0000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017-2019 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.adapters.audit;
-
-import org.camunda.bpm.client.task.ExternalTask;
-import org.camunda.bpm.client.task.ExternalTaskService;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.audit.beans.AuditInventory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.Environment;
-import org.springframework.stereotype.Component;
-
-@Component
-public class AuditDeleteStackService {
-	
-	private static final String UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI = "All VServers have not been deleted in A&AI";
-	
-	private static final int[] RETRY_SEQUENCE = new int[] { 1, 1, 2, 3, 5, 8, 13, 20};
-
-	
-	private static final Logger logger = LoggerFactory.getLogger(AuditDeleteStackService.class);
-	
-	@Autowired
-	public HeatStackAudit heatStackAudit; 
-	
-	@Autowired
-	public Environment env;
-
-	protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService){
-		AuditInventory auditInventory = externalTask.getVariable("auditInventory");
-		setupMDC(externalTask);
-		boolean success = false;
-		try {
-			logger.info("Executing External Task Audit Inventory, Retry Number: {} \n {}", auditInventory,externalTask.getRetries());
-			success=heatStackAudit.auditHeatStackDeleted(auditInventory.getCloudRegion(), auditInventory.getCloudOwner(),
-					auditInventory.getTenantId(), auditInventory.getHeatStackName());
-		} catch (Exception e) {
-			logger.error("Error during audit of stack", e);
-		}
-		
-		if (success) {
-			externalTaskService.complete(externalTask);
-			logger.debug("The External Task Id: {}  Successful", externalTask.getId());
-		} else {
-			if(externalTask.getRetries() == null){
-				logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}", externalTask.getId(),RETRY_SEQUENCE.length);
-				externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, RETRY_SEQUENCE.length, 10000);			
-			}else if(externalTask.getRetries() != null &&
-					externalTask.getRetries()-1 == 0){
-				logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());
-				externalTaskService.complete(externalTask);
-			}else{
-				logger.debug("The External Task Id: {}  Failed, Decrementing Retries: {} , Retry Delay: ", externalTask.getId(),externalTask.getRetries()-1, calculateRetryDelay(externalTask.getRetries()));
-				externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, externalTask.getRetries()-1, calculateRetryDelay(externalTask.getRetries()));
-			}
-			logger.debug("The External Task Id: {} Failed", externalTask.getId());
-		}
-	}
-	private void setupMDC(ExternalTask externalTask) {
-		String msoRequestId = (String)externalTask.getVariable("mso-request-id");
-		if(msoRequestId != null && !msoRequestId.isEmpty())
-			MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
-	}
-	protected long calculateRetryDelay(int currentRetries){
-		int retrySequence = RETRY_SEQUENCE.length - currentRetries;
-		long retryMultiplier = Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier","6000"));
-		return RETRY_SEQUENCE[retrySequence] * retryMultiplier;
-	}
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java
index 6ea14dc..499c113 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java
@@ -46,13 +46,10 @@
 	public Environment env;
 
 	@Autowired
-	private AuditCreateStackService auditCreateStack;
-	
-	@Autowired
-	private AuditDeleteStackService auditDeleteStack;
+	private AuditStackServiceData auditStack;
 
 	@PostConstruct
-	public void auditAddAAIInventory() {
+	public void auditAAIInventory() {
 		String auth = "";
 		try {
 			auth = CryptoUtils.decrypt(env.getRequiredProperty("mso.auth"), env.getRequiredProperty("mso.msoKey"));
@@ -63,26 +60,9 @@
 				auth);
 		ExternalTaskClient client = ExternalTaskClient.create()
 				.baseUrl(env.getRequiredProperty("mso.workflow.endpoint")).maxTasks(1).addInterceptor(interceptor)
-				.asyncResponseTimeout(120000).build();
-		client.subscribe("InventoryAddAudit").lockDuration(60000)
-				.handler(auditCreateStack::executeExternalTask).open();
-	}
-	
-	@PostConstruct
-	public void auditDeleteAAIInventory() {
-		String auth = "";
-		try {
-			auth = CryptoUtils.decrypt(env.getRequiredProperty("mso.auth"), env.getRequiredProperty("mso.msoKey"));
-		} catch (IllegalStateException | GeneralSecurityException e) {
-			logger.error("Error Decrypting Password", e);
-		}
-		ClientRequestInterceptor interceptor = new BasicAuthProvider(env.getRequiredProperty("mso.config.cadi.aafId"),
-				auth);
-		ExternalTaskClient client = ExternalTaskClient.create()
-				.baseUrl(env.getRequiredProperty("mso.workflow.endpoint")).maxTasks(1).addInterceptor(interceptor)
-				.asyncResponseTimeout(120000).build();
-		client.subscribe("InventoryDeleteAudit").lockDuration(60000)
-				.handler(auditDeleteStack::executeExternalTask).open();
+				.asyncResponseTimeout(120000).backoffStrategy(new ExponentialBackoffStrategy(10000, 2, 120000)).build();
+		client.subscribe("InventoryAudit").lockDuration(60000)
+				.handler(auditStack::executeExternalTask).open();
 	}
 
 }
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java
similarity index 66%
rename from adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java
rename to adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java
index 24980ae..da6bea7 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java
@@ -22,26 +22,29 @@
 
 package org.onap.so.adapters.audit;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+
 import org.camunda.bpm.client.task.ExternalTask;
 import org.camunda.bpm.client.task.ExternalTaskService;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.audit.beans.AuditInventory;
+import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
 @Component
-public class AuditCreateStackService {
+public class AuditStackServiceData {
 	
 	private static final String UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI = "Unable to find all VServers and L-Interaces in A&AI";
 	
-	private static final int[] RETRY_SEQUENCE = new int[] { 1, 1, 2, 3, 5, 8, 13, 20};
-
-	
-	private static final Logger logger = LoggerFactory.getLogger(AuditCreateStackService.class);
+	private static final Logger logger = LoggerFactory.getLogger(AuditStackServiceData.class);
 	
 	@Autowired
 	public HeatStackAudit heatStackAudit; 
@@ -51,35 +54,39 @@
 
 	protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService){
 		AuditInventory auditInventory = externalTask.getVariable("auditInventory");
+        Map<String, Object> variables = new HashMap<>();
 		setupMDC(externalTask);
 		boolean success = false;
 		try {
 			logger.info("Executing External Task Audit Inventory, Retry Number: {} \n {}", auditInventory,externalTask.getRetries());
-			success=heatStackAudit.auditHeatStackCreate(auditInventory.getCloudRegion(), auditInventory.getCloudOwner(),
+			Optional<AAIObjectAuditList> auditListOpt= heatStackAudit.auditHeatStack(auditInventory.getCloudRegion(), auditInventory.getCloudOwner(),
 					auditInventory.getTenantId(), auditInventory.getHeatStackName());
+	        if (auditListOpt.isPresent()) {
+	        	GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
+	        	variables.put("auditInventoryResult", objectMapper.getMapper().writeValueAsString(auditListOpt.get()));
+	        	success = !didAuditFail(auditListOpt);
+	        }
 		} catch (Exception e) {
 			logger.error("Error during audit of stack", e);
 		}
-		
+		variables.put("auditIsSuccessful", success);
 		if (success) {
-			externalTaskService.complete(externalTask);
+			externalTaskService.complete(externalTask,variables);
 			logger.debug("The External Task Id: {}  Successful", externalTask.getId());
 		} else {
 			if(externalTask.getRetries() == null){
-				logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}", externalTask.getId(),RETRY_SEQUENCE.length);
-				externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, RETRY_SEQUENCE.length, 10000);			
+				logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}", externalTask.getId(),getRetrySequence().length);
+				externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, getRetrySequence().length, 10000);			
 			}else if(externalTask.getRetries() != null &&
 					externalTask.getRetries()-1 == 0){
-				logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());
-				externalTaskService.handleBpmnError(externalTask, "AuditAAIInventoryFailure", "Number of Retries Exceeded auditing inventory");
+				logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());				 
+				externalTaskService.complete(externalTask, variables);
 			}else{
 				logger.debug("The External Task Id: {}  Failed, Decrementing Retries: {} , Retry Delay: ", externalTask.getId(),externalTask.getRetries()-1, calculateRetryDelay(externalTask.getRetries()));
 				externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, externalTask.getRetries()-1, calculateRetryDelay(externalTask.getRetries()));
 			}
 			logger.debug("The External Task Id: {} Failed", externalTask.getId());
 		}
-		
-		
 	}
 	private void setupMDC(ExternalTask externalTask) {
 		String msoRequestId = externalTask.getVariable("mso-request-id");
@@ -87,8 +94,29 @@
 			MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
 	}
 	protected long calculateRetryDelay(int currentRetries){
-		int retrySequence = RETRY_SEQUENCE.length - currentRetries;
+		int retrySequence = getRetrySequence().length - currentRetries;
 		long retryMultiplier = Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier","6000"));
-		return RETRY_SEQUENCE[retrySequence] * retryMultiplier;
+		return Integer.parseInt(getRetrySequence()[retrySequence]) * retryMultiplier;
 	}
+	
+	/**
+	 * @param auditHeatStackFailed
+	 * @param auditList
+	 * @return
+	 */
+	protected boolean didAuditFail(Optional<AAIObjectAuditList> auditList) {
+		if (auditList.get().getAuditList() != null && !auditList.get().getAuditList().isEmpty()) {
+			if (logger.isInfoEnabled()) {
+				logger.info("Audit Results: {}", auditList.get().toString());
+			}
+			return auditList.get().getAuditList().stream().filter(auditObject -> !auditObject.isDoesObjectExist())
+					.findFirst().map(v -> true).orElse(false);
+		} else {
+			return false;
+		}
+	}
+	public String[] getRetrySequence() {
+		 return env.getProperty("mso.workflow.topics.retrySequence",String[].class);
+	}
+
 }
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java
index c81dac7..519e1c9 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java
@@ -24,97 +24,106 @@
 import java.util.Set;
 
 import org.onap.aai.domain.yang.LInterface;
-import org.onap.aai.domain.yang.LInterfaces;
 import org.onap.aai.domain.yang.Vserver;
-import org.onap.so.client.aai.AAIObjectPlurals;
 import org.onap.so.client.aai.AAIObjectType;
-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.graphinventory.GraphInventoryCommonObjectMapperProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Component;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
+
 @Component
 public class AuditVServer extends AbstractAudit {
 	private static final Logger logger = LoggerFactory.getLogger(AuditVServer.class);
 
-	public boolean auditAllVserversDoExist(Set<Vserver> vServersToAudit, String tenantId, String cloudOwner, String cloudRegion) {
+	public Optional<AAIObjectAuditList> auditVservers(Set<Vserver> vServersToAudit, String tenantId, String cloudOwner, String cloudRegion) {
 		if (vServersToAudit == null || vServersToAudit.isEmpty()){
-			return false;
+			return Optional.empty();
 		}
-		return vServersToAudit.stream()
-				.filter(vServer -> !doesVServerExistInAAI(vServer, tenantId, cloudOwner, cloudRegion,true)).findFirst()
-				.map(v -> false).orElse(true);
-	}
-	
-	public boolean auditAllVserversDoNotExist(Set<Vserver> vServersToAudit, String tenantId, String cloudOwner, String cloudRegion) {
-		if (vServersToAudit == null || vServersToAudit.isEmpty()){
-			return true;
-		}
-		return vServersToAudit.stream()
-				.filter(vServer -> doesVServerExistInAAI(vServer, tenantId, cloudOwner, cloudRegion,false)).findFirst()
-				.map(v -> false).orElse(true);
+		GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
+		vServersToAudit.stream().forEach(vserver -> {
+			try {
+				logger.debug("Vserver to Audit: {}",objectMapper.getMapper().writeValueAsString(vserver));
+			} catch (JsonProcessingException e) {
+				
+			}
+		});
+		AAIObjectAuditList auditList = new AAIObjectAuditList();		
+		vServersToAudit.stream()
+				.forEach(vServer -> auditList.getAuditList().addAll(doesVServerExistInAAI(vServer, tenantId, cloudOwner, cloudRegion).getAuditList()));
+		return Optional.of(auditList);
 	}
 
-	private boolean doesVServerExistInAAI(Vserver vServer, String tenantId, String cloudOwner, String cloudRegion, boolean checkLinterfaces) {
+	private AAIObjectAuditList doesVServerExistInAAI(Vserver vServer, String tenantId, String cloudOwner, String cloudRegion) {
+		AAIObjectAuditList auditList = new AAIObjectAuditList();
+		AAIObjectAudit vServerAudit = new AAIObjectAudit();
 		AAIResourceUri vserverURI = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
 				tenantId, vServer.getVserverId());
+		Vserver vServerShallow = new Vserver();
+		BeanUtils.copyProperties(vServer,vServerShallow,"LInterfaces");
 		boolean vServerExists = getAaiClient().exists(vserverURI);
-		boolean doesExist = getAaiClient().exists(vserverURI);
-		logger.info("v-server {} exists: {}", vServer.getVserverId(), doesExist);
-		boolean allNeutronNetworksExist = true;
-		if (vServerExists && vServer.getLInterfaces() != null && checkLinterfaces) {
-			allNeutronNetworksExist = vServer.getLInterfaces()
-					.getLInterface().stream().filter(lInterface -> !doesLinterfaceExistinAAI(lInterface,
-							vServer.getVserverId(), tenantId, cloudOwner, cloudRegion))
-					.findFirst().map(v -> false).orElse(true);
+		logger.info("v-server {} exists: {}", vServer.getVserverId(), vServerExists);
+		vServerAudit.setAaiObject(vServerShallow);
+		vServerAudit.setDoesObjectExist(vServerExists);
+		vServerAudit.setResourceURI(vserverURI.build());
+		vServerAudit.setAaiObjectType(AAIObjectType.VSERVER.typeName());
+		auditList.getAuditList().add(vServerAudit);
+		if (vServer.getLInterfaces() != null) {
+			vServer.getLInterfaces().getLInterface().stream().forEach(lInterface -> auditList.getAuditList().addAll(doesLinterfaceExistinAAI(lInterface,
+							vServer.getVserverId(), tenantId, cloudOwner, cloudRegion).getAuditList()));
 		}
-		return vServerExists && allNeutronNetworksExist;
+		return auditList;
 	}
 
-	private boolean doesLinterfaceExistinAAI(LInterface lInterface, String vServerId, String tenantId,
+	private AAIObjectAuditList doesLinterfaceExistinAAI(LInterface lInterface, String vServerId, String tenantId,
 			String cloudOwner, String cloudRegion) {
-		boolean doesLInterfaceExist = false;
-		boolean doSubInterfacesExist = true;
+		AAIObjectAuditList auditList = new AAIObjectAuditList();
+		AAIObjectAudit lInterfaceAudit = new AAIObjectAudit();
 		AAIResourceUri linterfaceURI = AAIUriFactory
-				.createResourceUri(AAIObjectPlurals.L_INTERFACE, cloudOwner, cloudRegion, tenantId, vServerId)
-				.queryParam("interface-id", lInterface.getInterfaceId());
-		Optional<LInterfaces> queriedLInterface = getAaiClient().get(LInterfaces.class, linterfaceURI);
+				.createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner, cloudRegion, tenantId, vServerId, lInterface.getInterfaceName());
+		Optional<LInterface> queriedLInterface = getAaiClient().get(LInterface.class, linterfaceURI);
 		if (queriedLInterface.isPresent()) {
-			if (queriedLInterface.get().getLInterface().size() > 1) {
-				logger.error("Non-Unique LInterface Found stopping audit, L-Interface Id: " +lInterface.getInterfaceId());
-				doesLInterfaceExist = false;
-			} else {
-				doesLInterfaceExist = true;
-				lInterface.setInterfaceName(queriedLInterface.get().getLInterface().get(0).getInterfaceName());
-			}
+				lInterfaceAudit.setDoesObjectExist(true);
+				lInterface.setInterfaceName(lInterface.getInterfaceName());	
 		}
-		logger.info("l-interface id:{} name: {} exists: {}", lInterface.getInterfaceId(), lInterface.getInterfaceName(),
-				doesLInterfaceExist);
+		LInterface lInterfaceShallow = new LInterface();
+		BeanUtils.copyProperties(lInterface,lInterfaceShallow,"LInterfaces");
+		lInterfaceAudit.setAaiObject(lInterface);
+		lInterfaceAudit.setResourceURI(linterfaceURI.build());
+		lInterfaceAudit.setAaiObjectType(AAIObjectType.L_INTERFACE.typeName());
+		auditList.getAuditList().add(lInterfaceAudit);
+		logger.info("l-interface id:{} name: {} exists: {} ", lInterface.getInterfaceId(), lInterface.getInterfaceName(),
+				lInterfaceAudit.isDoesObjectExist());
 
-		if (doesLInterfaceExist && lInterface.getLInterfaces() != null) {
-			doSubInterfacesExist = lInterface.getLInterfaces().getLInterface()
-					.stream().filter(subInterface -> !doesSubInterfaceExistinAAI(subInterface,
-							lInterface.getInterfaceName(), vServerId, tenantId, cloudOwner, cloudRegion))
-					.findFirst().map(v -> false).orElse(true);
-		} else
-			logger.debug("l-interface {} does not contain any sub-iterfaces", lInterface.getInterfaceId());
+		if (lInterface.getLInterfaces() != null) {
+			lInterface.getLInterfaces().getLInterface().stream()
+					.forEach(subInterface -> auditList.getAuditList().add(doesSubInterfaceExistinAAI(subInterface,
+							lInterface.getInterfaceName(), vServerId, tenantId, cloudOwner, cloudRegion)));
+		}
+		logger.debug("l-interface {} does not contain any sub-iterfaces, skipping audit of sub-interfaces", lInterface.getInterfaceId());
 
-		return doesLInterfaceExist && doSubInterfacesExist;
+		return auditList;
 	}
 
-	private boolean doesSubInterfaceExistinAAI(LInterface subInterface, String linterfaceName, String vServerId,
+	private AAIObjectAudit doesSubInterfaceExistinAAI(LInterface subInterface, String linterfaceName, String vServerId,
 			String tenantId, String cloudOwner, String cloudRegion) {
 		logger.info("checking if sub-l-interface {} , linterfaceName: {} vserverId: {}  exists",
-				subInterface.getInterfaceId(), linterfaceName, vServerId);
-
-		AAIResourceUri linterfaceURI = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE, cloudOwner,
-				cloudRegion, tenantId, vServerId, linterfaceName)
-				.queryParam("interface-id", subInterface.getInterfaceId());
-
-		boolean doesExist = getAaiClient().exists(linterfaceURI);
-		logger.info("sub-l-interface {} exists: {}", subInterface.getInterfaceId(), doesExist);
-		return doesExist;
+				subInterface.getInterfaceName(), linterfaceName, vServerId);
+		AAIObjectAudit subInterfaceAudit = new AAIObjectAudit();
+		
+		
+		AAIResourceUri subInterfaceURI = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner,
+				cloudRegion, tenantId, vServerId, linterfaceName, subInterface.getInterfaceName());
+		subInterfaceAudit.setResourceURI(subInterfaceURI.build());
+		boolean doesExist = getAaiClient().exists(subInterfaceURI);
+		logger.info("sub-l-interface-id:{} exists: {}", subInterface.getInterfaceId(), doesExist);
+		subInterfaceAudit.setAaiObject(subInterface);
+		subInterfaceAudit.setDoesObjectExist(doesExist);
+		subInterfaceAudit.setAaiObjectType(AAIObjectType.SUB_L_INTERFACE.typeName());
+		return subInterfaceAudit;
 	}
 }
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java
index 72dee07..31e913d 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java
@@ -21,6 +21,7 @@
 package org.onap.so.adapters.audit;
 
 import java.net.URI;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Optional;
@@ -32,6 +33,8 @@
 
 import org.onap.aai.domain.yang.LInterface;
 import org.onap.aai.domain.yang.LInterfaces;
+import org.onap.aai.domain.yang.Vlan;
+import org.onap.aai.domain.yang.Vlans;
 import org.onap.aai.domain.yang.Vserver;
 import org.onap.so.openstack.utils.MsoHeatUtils;
 import org.onap.so.openstack.utils.MsoNeutronUtils;
@@ -55,61 +58,38 @@
 
 	@Autowired
 	protected MsoHeatUtils heat;
-
+	
 	@Autowired
 	protected MsoNeutronUtils neutron;
 
 	@Autowired
 	protected AuditVServer auditVservers;
 
-	public boolean auditHeatStackCreate(String cloudRegion, String cloudOwner, String tenantId, String heatStackName) {
+	public Optional<AAIObjectAuditList> auditHeatStack(String cloudRegion, String cloudOwner, String tenantId, String heatStackName) {
 		try {
-			return auditStack(cloudRegion,cloudOwner,tenantId,heatStackName,true);
-		} catch (Exception e) {
-			logger.error("Error during auditing stack resources", e);
-			return false;
-		}
-	}
-	
-	public boolean auditHeatStackDeleted(String cloudRegion, String cloudOwner, String tenantId, String heatStackName) {
-		try {
-			return auditStack(cloudRegion,cloudOwner,tenantId,heatStackName,false);
-		} catch (Exception e) {
-			logger.error("Error during auditing stack resources", e);
-			return false;
-		}
-	}
-	
-	private boolean auditStack(String cloudRegion, String cloudOwner, String tenantId, String heatStackName,boolean isCreateAudit) throws Exception{
-		logger.debug("Fetching Top Level Stack Information");
-		Resources resources = heat.queryStackResources(cloudRegion, tenantId, heatStackName);
-		List<Resource> novaResources = extractNovaResources(resources);
-		if(novaResources.isEmpty())
-			return true;
-		else{
-			List<Optional<Port>> neutronPortDetails = retrieveNeutronPortDetails(resources,cloudRegion,tenantId);
-			List<Resource> resourceGroups = extractResourceGroups(resources);
-			Set<Vserver> vserversToAudit = createVserverSet(resources, novaResources,neutronPortDetails);
-			Set<Vserver> vserversWithSubInterfaces = processSubInterfaces(cloudRegion, tenantId, resourceGroups,
-				vserversToAudit);
-			if(isCreateAudit){
-				return auditVservers.auditAllVserversDoExist(vserversWithSubInterfaces, tenantId, cloudOwner, cloudRegion);
-			}else{
-				return auditVservers.auditAllVserversDoNotExist(vserversWithSubInterfaces, tenantId, cloudOwner, cloudRegion);
+			logger.debug("Fetching Top Level Stack Information");
+			Resources resources = heat.queryStackResources(cloudRegion, tenantId, heatStackName);
+			List<Resource> novaResources = resources.getList().stream()
+					.filter(p -> "OS::Nova::Server".equals(p.getType())).collect(Collectors.toList());
+			List<Resource> resourceGroups = resources.getList().stream()
+					.filter(p -> "OS::Heat::ResourceGroup".equals(p.getType()) && p.getName().contains("subinterfaces"))
+					.collect(Collectors.toList());
+			List<Optional<Port>> neutronPortDetails = retrieveNeutronPortDetails(resources, cloudRegion, tenantId);
+			if (novaResources.isEmpty())
+				return Optional.of(new AAIObjectAuditList());
+			else {
+				Set<Vserver> vserversToAudit = createVserverSet(resources, novaResources, neutronPortDetails);
+				Set<Vserver> vserversWithSubInterfaces = processSubInterfaces(cloudRegion, tenantId, resourceGroups,
+						vserversToAudit);
+				 return auditVservers.auditVservers(vserversWithSubInterfaces,
+						tenantId, cloudOwner, cloudRegion);
 			}
+		} catch (Exception e) {
+			logger.error("Error during auditing stack resources", e);
+			return Optional.empty();
 		}
 	}
 
-	private List<Resource> extractResourceGroups(Resources resources) {
-		return resources.getList().stream()
-				.filter(p -> "OS::Heat::ResourceGroup".equals(p.getType()) && p.getName().contains("subinterfaces")).collect(Collectors.toList());
-	}
-
-	private List<Resource> extractNovaResources(Resources resources) {
-		return resources.getList().stream()
-				.filter(p -> "OS::Nova::Server".equals(p.getType())).collect(Collectors.toList());
-	} 
-
 	protected Set<Vserver> processSubInterfaces(String cloudRegion, String tenantId, List<Resource> resourceGroups,
 			Set<Vserver> vServersToAudit) throws Exception {
 		for (Resource resourceGroup : resourceGroups) {
@@ -137,7 +117,6 @@
 				logger.error("Error Parsing Link to obtain Path", e);
 				throw new Exception("Error finding Path from Self Link");
 			}
-
 		}
 	}
 
@@ -182,7 +161,24 @@
 					}
 					LInterface subInterface = new LInterface();
 					subInterface.setInterfaceId(contrailVm.getPhysicalResourceId());
+					subInterface.setIsPortMirrored(false);
+					subInterface.setInMaint(false);
+					subInterface.setIsIpUnnumbered(false);
+					String macAddr = (String) subinterfaceStack.getParameters().get("mac_address");
+					subInterface.setMacaddr(macAddr);
 					
+					String namePrefix = (String) subinterfaceStack.getParameters().get("subinterface_name_prefix");
+					Integer vlanIndex = Integer.parseInt((String) subinterfaceStack.getParameters().get("counter"));
+					String vlanTagList = (String) subinterfaceStack.getParameters().get("vlan_tag");
+					List<String> subInterfaceVlanTagList = Arrays.asList(vlanTagList.split(","));
+					subInterface.setInterfaceName(namePrefix+"_"+subInterfaceVlanTagList.get(vlanIndex));
+					subInterface.setVlans(new Vlans());
+					Vlan vlan = new Vlan();
+					vlan.setInMaint(false);
+					vlan.setIsIpUnnumbered(false);
+					vlan.setVlanIdInner(Long.parseLong(subInterfaceVlanTagList.get(vlanIndex)));
+					vlan.setVlanInterface(namePrefix+"_"+subInterfaceVlanTagList.get(vlanIndex));
+					subInterface.getVlans().getVlan().add(vlan);
 					if(lInterface.getLInterfaces() == null)
 						lInterface.setLInterfaces(new LInterfaces());
 					
@@ -197,11 +193,12 @@
 		for (Resource novaResource : novaResources) {
 			Vserver auditVserver = new Vserver();
 			auditVserver.setLInterfaces(new LInterfaces());
-			auditVserver.setVserverId(novaResource.getPhysicalResourceId());
+			auditVserver.setVserverId(novaResource.getPhysicalResourceId());			
 			Stream<Port> filteredNeutronPorts = filterNeutronPorts(novaResource, neutronPortDetails);
 			filteredNeutronPorts.forEach(port -> {
 				LInterface lInterface = new LInterface();
 				lInterface.setInterfaceId(port.getId());
+				lInterface.setInterfaceName(port.getName());
 				auditVserver.getLInterfaces().getLInterface().add(lInterface);
 			});
 			vserversToAudit.add(auditVserver);
@@ -228,9 +225,9 @@
 	 * @return List of optional neutron ports found within the cloud site and tenant
 	 */
 	protected List<Optional<Port>> retrieveNeutronPortDetails(Resources resources,String cloudSiteId,String tenantId){
-		return resources.getList().stream()	
+		return resources.getList().parallelStream()	
 				.filter(resource -> "OS::Neutron::Port".equals(resource.getType()))
-				.map(resource -> neutron.getNeutronPort(resource.getPhysicalResourceId(),cloudSiteId,tenantId)).collect(Collectors.toList());
+				.map(resource -> neutron.getNeutronPort(resource.getPhysicalResourceId(),tenantId,cloudSiteId)).collect(Collectors.toList());
 
 	}
 
@@ -262,5 +259,6 @@
 		return Optional.empty();
 	}
 	
+	
 }
 
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java
new file mode 100644
index 0000000..efced9d
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java
@@ -0,0 +1,68 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2019 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.adapters.inventory.create;
+
+import java.util.Optional;
+import java.util.stream.Stream;
+
+import org.onap.aai.domain.yang.LInterface;
+import org.onap.so.adapters.audit.AAIObjectAudit;
+import org.onap.so.adapters.audit.AAIObjectAuditList;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIResourcesClient;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CreateAAIInventory{
+	
+	private AAIResourcesClient aaiClient;
+
+	public void createInventory(AAIObjectAuditList auditList) throws InventoryException {	
+		if(didAuditFailVserverLInterfaces(auditList)){
+			throw new InventoryException("Audit failed for VServer or LInterface cannot write Sub-Interfaces");
+		}
+		auditList.getAuditList().parallelStream().filter(auditObject -> !auditObject.isDoesObjectExist() && AAIObjectType.SUB_L_INTERFACE.typeName().equals(auditObject.getAaiObjectType())).
+		forEach(auditObject -> getAaiClient().createIfNotExists(AAIUriFactory.createResourceFromExistingURI(AAIObjectType.fromTypeName(auditObject.getAaiObjectType()), auditObject.getResourceURI()), Optional.of(auditObject.getAaiObject())));
+	}
+	
+	
+	/**
+	 * @param auditHeatStackFailed
+	 * @param auditList
+	 * @return
+	 */
+	protected boolean didAuditFailVserverLInterfaces(AAIObjectAuditList auditList) {
+		Stream<AAIObjectAudit> issue = auditList.getAuditList().stream().filter(auditObject -> auditObject.getAaiObjectType().equals(AAIObjectType.VSERVER.typeName()) || auditObject.getAaiObjectType().equals(AAIObjectType.L_INTERFACE.typeName()));
+		
+		return issue.filter(auditObject -> !auditObject.isDoesObjectExist()).findFirst().map(v -> true).orElse(false);
+	}
+
+	protected AAIResourcesClient getAaiClient(){
+		if(aaiClient == null)
+			return new AAIResourcesClient();
+		else
+			return aaiClient;
+	}	
+	protected void setAaiClient(AAIResourcesClient aaiResource){
+		aaiClient = aaiResource;
+	}
+}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java
new file mode 100644
index 0000000..b2eadaf
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java
@@ -0,0 +1,68 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2019 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.adapters.inventory.create;
+
+import java.security.GeneralSecurityException;
+
+import javax.annotation.PostConstruct;
+
+import org.camunda.bpm.client.ExternalTaskClient;
+import org.camunda.bpm.client.backoff.ExponentialBackoffStrategy;
+import org.camunda.bpm.client.interceptor.ClientRequestInterceptor;
+import org.camunda.bpm.client.interceptor.auth.BasicAuthProvider;
+import org.onap.so.utils.CryptoUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Profile;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+@Component
+@Profile("!test")
+public class CreateInventoryService {
+
+	private static final Logger logger = LoggerFactory.getLogger(CreateInventoryService.class);
+
+	@Autowired
+	public Environment env;
+
+	@Autowired
+	private CreateInventoryTask createInventory;
+
+	@PostConstruct
+	public void auditAAIInventory() {
+		String auth = "";
+		try {
+			auth = CryptoUtils.decrypt(env.getRequiredProperty("mso.auth"), env.getRequiredProperty("mso.msoKey"));
+		} catch (IllegalStateException | GeneralSecurityException e) {
+			logger.error("Error Decrypting Password", e);
+		}
+		ClientRequestInterceptor interceptor = new BasicAuthProvider(env.getRequiredProperty("mso.config.cadi.aafId"),
+				auth);
+		ExternalTaskClient client = ExternalTaskClient.create()
+				.baseUrl(env.getRequiredProperty("mso.workflow.endpoint")).maxTasks(1).addInterceptor(interceptor)
+				.asyncResponseTimeout(120000).backoffStrategy(new ExponentialBackoffStrategy(10000, 2, 120000)).build();
+		client.subscribe("InventoryCreate").lockDuration(60000)
+				.handler(createInventory::executeExternalTask).open();
+	}
+
+}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
new file mode 100644
index 0000000..4a14b14
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
@@ -0,0 +1,114 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017-2019 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.adapters.inventory.create;
+
+import java.io.IOException;
+
+import org.camunda.bpm.client.task.ExternalTask;
+import org.camunda.bpm.client.task.ExternalTaskService;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.adapters.audit.AAIObjectAuditList;
+import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CreateInventoryTask {
+
+	private static final String UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI = "Unable to write all inventory to A&AI";
+
+	private static final Logger logger = LoggerFactory.getLogger(CreateInventoryTask.class);
+	
+	@Autowired
+	CreateAAIInventory createInventory;
+	
+	@Autowired
+	public Environment env;
+
+	protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
+		boolean success = true;
+		String auditInventoryString = externalTask.getVariable("auditInventoryResult");
+		GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
+		AAIObjectAuditList auditInventory = null;
+		try {
+			auditInventory = objectMapper.getMapper().readValue(auditInventoryString, AAIObjectAuditList.class);
+		} catch (IOException e1) {
+			success = false;
+		}
+		setupMDC(externalTask);
+		
+		if (auditInventory != null) {
+			try {
+				logger.info("Executing External Task Create Inventory, Retry Number: {} \n {}", auditInventory,
+						externalTask.getRetries());
+				createInventory.createInventory(auditInventory);
+			} catch (Exception e) {
+				logger.error("Error during inventory of stack", e);
+				success = false;
+			}
+			if (success) {
+				externalTaskService.complete(externalTask);
+				logger.debug("The External Task Id: {}  Successful", externalTask.getId());
+			} else {
+				if (externalTask.getRetries() == null) {
+					logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}",
+							externalTask.getId(), getRetrySequence().length);
+					externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI,
+							UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, getRetrySequence().length, 10000);
+				} else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
+					logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());
+					externalTaskService.handleBpmnError(externalTask, "AAIInventoryFailure");
+				} else {
+					logger.debug("The External Task Id: {}  Failed, Decrementing Retries: {} , Retry Delay: ",
+							externalTask.getId(), externalTask.getRetries() - 1,
+							calculateRetryDelay(externalTask.getRetries()));
+					externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI,
+							UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, externalTask.getRetries() - 1,
+							calculateRetryDelay(externalTask.getRetries()));
+				}
+				logger.debug("The External Task Id: {} Failed", externalTask.getId());
+			}
+		} else {
+			logger.debug("The External Task Id: {}  Failed, No Audit Results Written", externalTask.getId());
+			externalTaskService.handleBpmnError(externalTask, "AAIInventoryFailure");
+		}
+	}
+	
+	private void setupMDC(ExternalTask externalTask) {
+		String msoRequestId = (String)externalTask.getVariable("mso-request-id");
+		if(msoRequestId != null && !msoRequestId.isEmpty())
+			MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
+	}
+	protected long calculateRetryDelay(int currentRetries){
+		int retrySequence = getRetrySequence().length - currentRetries;
+		long retryMultiplier = Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier","6000"));
+		return Integer.parseInt(getRetrySequence()[retrySequence]) * retryMultiplier;
+	}
+	
+	public String[] getRetrySequence() {
+		 return env.getProperty("mso.workflow.topics.retrySequence",String[].class);
+	}
+}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/InventoryException.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/InventoryException.java
new file mode 100644
index 0000000..22c6902
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/InventoryException.java
@@ -0,0 +1,14 @@
+package org.onap.so.adapters.inventory.create;
+
+public class InventoryException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 912652713891488731L;
+
+	public InventoryException(String errorMessage) {
+		super(errorMessage);
+	}
+
+}
diff --git a/adapters/mso-openstack-adapters/src/main/resources/application.yaml b/adapters/mso-openstack-adapters/src/main/resources/application.yaml
index cdd04b8..f66d77d 100644
--- a/adapters/mso-openstack-adapters/src/main/resources/application.yaml
+++ b/adapters/mso-openstack-adapters/src/main/resources/application.yaml
@@ -16,6 +16,7 @@
   workflow:
     topics:
       retryMultiplier: 60000
+      retrySequence: 1, 1, 2, 3, 5, 8, 13, 20
 spring:
   datasource:
     url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditCreateStackServiceTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java
similarity index 60%
rename from adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditCreateStackServiceTest.java
rename to adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java
index bcf126d..29e672a 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditCreateStackServiceTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java
@@ -20,16 +20,24 @@
 
 package org.onap.so.adapters.audit;
 
+import static org.hamcrest.CoreMatchers.isA;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.mockito.Mockito.doReturn;
 
+import java.io.File;
 import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Map;
 import java.util.Optional;
 
 import org.camunda.bpm.client.task.ExternalTask;
 import org.camunda.bpm.client.task.ExternalTaskService;
+import org.hamcrest.Matchers;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
@@ -39,48 +47,76 @@
 import org.springframework.core.env.Environment;
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
-public class AuditCreateStackServiceTest extends AuditCreateStackService {
+public class AuditStackServiceDataTest extends AuditStackServiceData {
 
 	@InjectMocks
-	AuditCreateStackService auditStackService = new AuditCreateStackService();
+	private AuditStackServiceData auditStackService = new AuditStackServiceData();
 
 	@Mock
-	HeatStackAudit heatStackAuditMock;
+	private HeatStackAudit heatStackAuditMock;
 
 	@Mock
-	Environment mockEnv;
+	private Environment mockEnv;
 
 	@Mock
-	ExternalTask mockExternalTask;
+	private ExternalTask mockExternalTask;
 
 	@Mock
-	ExternalTaskService mockExternalTaskService;
+	private ExternalTaskService mockExternalTaskService;
 
-	AuditInventory auditInventory = new AuditInventory();
+	private ObjectMapper objectMapper = new ObjectMapper();
+	
+	private AuditInventory auditInventory = new AuditInventory();
 
+	Optional<AAIObjectAuditList> auditListOptSuccess;
+	
+	Optional<AAIObjectAuditList> auditListOptFailure;
+	
 	@Before
-	public void setup() {
+	public void setup() throws JsonParseException, JsonMappingException, IOException {
 		auditInventory.setCloudOwner("cloudOwner");
 		auditInventory.setCloudRegion("cloudRegion");
 		auditInventory.setTenantId("tenantId");
 		auditInventory.setHeatStackName("stackName");
 		MockitoAnnotations.initMocks(this);
+		
+		AAIObjectAuditList auditListSuccess = objectMapper.readValue(new File("src/test/resources/ExpectedVServerFound.json"), AAIObjectAuditList.class);
+		auditListOptSuccess = Optional.of(auditListSuccess);
+		
+		AAIObjectAuditList auditListFailure = objectMapper.readValue(new File("src/test/resources/Vserver2_Found_VServer1_Not_Found.json"), AAIObjectAuditList.class);
+		auditListOptFailure = Optional.of(auditListFailure);
+		String[] retrySequence = new String[8];
+		retrySequence[0] = "1";
+		retrySequence[1] = "1";
+		retrySequence[2] = "2";
+		retrySequence[3] = "3";
+		retrySequence[4] = "5";
+		retrySequence[5] = "8";
+		retrySequence[6] = "13";
+		retrySequence[7] = "20";
 		doReturn(auditInventory).when(mockExternalTask).getVariable("auditInventory");
 		doReturn("6000").when(mockEnv).getProperty("mso.workflow.topics.retryMultiplier","6000");
+		doReturn(retrySequence).when(mockEnv).getProperty("mso.workflow.topics.retrySequence",String[].class);
 		doReturn("aasdfasdf").when(mockExternalTask).getId();
 	}
 
 	@Test
 	public void execute_external_task_audit_success_Test() {
-		doReturn(true).when(heatStackAuditMock).auditHeatStackCreate("cloudRegion", "cloudOwner", "tenantId", "stackName");
+		doReturn(auditListOptSuccess).when(heatStackAuditMock).auditHeatStack("cloudRegion", "cloudOwner", "tenantId", "stackName");
 		auditStackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
-		Mockito.verify(mockExternalTaskService).complete(mockExternalTask);
+		ArgumentCaptor<Map> captor = ArgumentCaptor.forClass(Map.class);
+		ArgumentCaptor<ExternalTask> taskCaptor = ArgumentCaptor.forClass(ExternalTask.class);
+		Mockito.verify(mockExternalTaskService).complete(taskCaptor.capture(),captor.capture());
+		Map actualMap = captor.getValue();
+		assertEquals(true,actualMap.get("auditIsSuccessful"));
+		assertNotNull(actualMap.get("auditInventoryResult"));
 	}
 
 	@Test
 	public void execute_external_task_audit_first_failure_Test() {
-		doReturn(false).when(heatStackAuditMock).auditHeatStackCreate("cloudRegion", "cloudOwner", "tenantId", "stackName");
+		doReturn(auditListOptFailure).when(heatStackAuditMock).auditHeatStack("cloudRegion", "cloudOwner", "tenantId", "stackName");
 		doReturn(null).when(mockExternalTask).getRetries();
 		auditStackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
 		Mockito.verify(mockExternalTaskService).handleFailure(mockExternalTask,
@@ -90,7 +126,7 @@
 
 	@Test
 	public void execute_external_task_audit_intermediate_failure_Test() {
-		doReturn(false).when(heatStackAuditMock).auditHeatStackCreate("cloudRegion", "cloudOwner", "tenantId", "stackName");
+		doReturn(auditListOptFailure).when(heatStackAuditMock).auditHeatStack("cloudRegion", "cloudOwner", "tenantId", "stackName");
 		doReturn(6).when(mockExternalTask).getRetries();
 		auditStackService.executeExternalTask(mockExternalTask, mockExternalTaskService);		
 		Mockito.verify(mockExternalTaskService).handleFailure(mockExternalTask,
@@ -101,11 +137,15 @@
 
 	@Test
 	public void execute_external_task_audit_final_failure_Test() {
-		doReturn(false).when(heatStackAuditMock).auditHeatStackCreate("cloudRegion", "cloudOwner", "tenantId", "stackName");
+		doReturn(auditListOptFailure).when(heatStackAuditMock).auditHeatStack("cloudRegion", "cloudOwner", "tenantId", "stackName");
 		doReturn(1).when(mockExternalTask).getRetries();
 		auditStackService.executeExternalTask(mockExternalTask, mockExternalTaskService);		
-		Mockito.verify(mockExternalTaskService).handleBpmnError(mockExternalTask,
-				"AuditAAIInventoryFailure", "Number of Retries Exceeded auditing inventory");
+		ArgumentCaptor<Map> captor = ArgumentCaptor.forClass(Map.class);
+		ArgumentCaptor<ExternalTask> taskCaptor = ArgumentCaptor.forClass(ExternalTask.class);
+		Mockito.verify(mockExternalTaskService).complete(taskCaptor.capture(),captor.capture());
+		Map actualMap = captor.getValue();
+		assertEquals(false,actualMap.get("auditIsSuccessful"));
+		assertNotNull(actualMap.get("auditInventoryResult"));
 	}
 
 	@Test
@@ -147,4 +187,17 @@
 		long eigthRetry = auditStackService.calculateRetryDelay(1);
 		assertEquals(120000L, eigthRetry);
 	}
+	
+
+	@Test
+	public void determineAuditResult_Test() throws Exception{		
+		boolean actual = auditStackService.didAuditFail(auditListOptSuccess);
+		assertEquals(false, actual);
+	}
+	
+	@Test
+	public void determineAuditResult_Failure_Test() throws Exception{
+		boolean actual = auditStackService.didAuditFail(auditListOptFailure);
+		assertEquals(true, actual);
+	}
 }
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditVServerTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditVServerTest.java
index 9176b58..f0fce4d 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditVServerTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditVServerTest.java
@@ -13,7 +13,7 @@
  * 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
+ * See the License for the specific language governing perservice2sions and
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
@@ -27,6 +27,8 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Optional;
@@ -48,7 +50,9 @@
 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.skyscreamer.jsonassert.JSONAssert;
 
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -58,6 +62,8 @@
 @RunWith(MockitoJUnitRunner.Silent.class)
 public class AuditVServerTest extends AuditVServer {
 
+	private ObjectMapper objectMapper = new ObjectMapper();
+
 	@InjectMocks
 	private AuditVServer auditNova = new AuditVServer();
 
@@ -74,47 +80,44 @@
 	private AAIResourceUri vserverURI2 = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
 			tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
 
-	private AAIResourceUri ssc_1_trusted_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c");
+	private AAIResourceUri ssc_1_trusted_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_trusted_port_0");
 
-	private AAIResourceUri ssc_1_service1_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "1c56a24b-5f03-435a-850d-31cd4252de56");
+	private AAIResourceUri ssc_1_service1_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service1_port_0");
 
-	private AAIResourceUri ssc_1_mgmt_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "12afcd28-929f-4d80-8a5a-0833bfd5e20b");
+	private AAIResourceUri ssc_1_mgmt_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_mgmt_port_1");
 
-	private AAIResourceUri ssc_1_mgmt_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "80baec42-ffae-425f-ad8c-3f7b2c24bfff");
+	private AAIResourceUri ssc_1_mgmt_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_mgmt_port_0");
 
-	private AAIResourceUri ssc_1_service2_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "13eddf95-4cf3-45f2-823a-2d890a6549b4");
+	private AAIResourceUri ssc_1_service2_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service2_port_0");
 
-	private AAIResourceUri ssc_1_int_ha_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "9cab2903-70f7-44fd-b681-491d6ae2adb8");
+	private AAIResourceUri ssc_1_int_ha_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_int_ha_port_0");
 
-	private AAIResourceUri test_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz").queryParam("interface-id", "9cab2903-70f7-44fd-b681-491d6ae2adz1");
+	private AAIResourceUri test_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz","test_port_1");
 
-
-	private AAIResourceUri test_port_2_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz").queryParam("interface-id", "9cab2903-70f7-44fd-b681-491d6ae2adz2");
-
+	private AAIResourceUri test_port_2_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz","test_port_2");	
 	
-	
-	private AAIResourceUri service2_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","interface-name").queryParam("interface-id", "f711be16-2654-4a09-b89d-0511fda20e81");
+	private AAIResourceUri service2_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service2_port_0","service2_sub_interface_1");
 
-	private AAIResourceUri service1_sub_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","interface-name").queryParam("interface-id", "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb");
+	private AAIResourceUri service1_sub_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service1_port_0","service1_sub_interface_1");
 
-	private AAIResourceUri service1_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE,
-			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","interface-name").queryParam("interface-id", "b7019dd0-2ee9-4447-bdef-ac25676b205a");
+	private AAIResourceUri service1_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+			cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service1_port_0","service1_sub_interface_2");
 
 	
 
+	
 	private Set<Vserver> vserversToAudit = new HashSet<>();
 	
-	
 	LInterface test_port_1 = new LInterface();
 	LInterface test_port_2 = new LInterface();
 	LInterface ssc_1_int_ha_port_0 = new LInterface();
@@ -126,22 +129,12 @@
 	LInterface service1_sub_interface_1 = new LInterface();
 	LInterface ssc_1_service1_port_0 = new LInterface();
 	LInterface ssc_1_trusted_port_0 = new LInterface();
-	
-	LInterfaces test_port_1_plural = new LInterfaces();	
-	LInterfaces test_port_2_plural = new LInterfaces();
-	LInterfaces ssc_1_int_ha_port_0_plural = new LInterfaces();
-	LInterfaces service2_sub_interface_1_plural = new LInterfaces();
-	LInterfaces ssc_1_service2_port_0_plural = new LInterfaces();
-	LInterfaces ssc_1_mgmt_port_0_plural = new LInterfaces();
-	LInterfaces ssc_1_mgmt_port_1_plural = new LInterfaces();
-	LInterfaces service1_sub_interface_2_plural = new LInterfaces();
-	LInterfaces service1_sub_interface_1_plural = new LInterfaces();
-	LInterfaces ssc_1_service1_port_0_plural = new LInterfaces();
-	LInterfaces ssc_1_trusted_port_0_plural = new LInterfaces();
+
 	
 	
 	@Before
 	public void setup() {
+		objectMapper.setSerializationInclusion(Include.NON_NULL);
 		auditNova.setAaiClient(aaiResourcesMock);
 
 		Vserver vServer1= new Vserver();
@@ -150,109 +143,97 @@
 		vServer1.setLInterfaces(vServer1Linterfaces);
 		
 		ssc_1_trusted_port_0.setInterfaceId("dec8bdc7-5718-41dc-bfbb-561ff6eeb81c");
-		ssc_1_trusted_port_0.setInterfaceName("interface-name");
+		ssc_1_trusted_port_0.setInterfaceName("ssc_1_trusted_port_0");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_trusted_port_0);
 		
 		
 		ssc_1_service1_port_0.setInterfaceId("1c56a24b-5f03-435a-850d-31cd4252de56");
-		ssc_1_service1_port_0.setInterfaceName("interface-name");
+		ssc_1_service1_port_0.setInterfaceName("ssc_1_service1_port_0");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_service1_port_0);
 		ssc_1_service1_port_0.setLInterfaces(new LInterfaces());	
 		
 		
 		service1_sub_interface_1.setInterfaceId("0d9cd813-2ae1-46c0-9ebb-48081f6cffbb");
+		service1_sub_interface_1.setInterfaceName("service1_sub_interface_1");
 		ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_1);
 		
 		
 		service1_sub_interface_2.setInterfaceId("b7019dd0-2ee9-4447-bdef-ac25676b205a");
+		service1_sub_interface_2.setInterfaceName("service1_sub_interface_2");
 		ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_2);
 		
 		
 		ssc_1_mgmt_port_1.setInterfaceId("12afcd28-929f-4d80-8a5a-0833bfd5e20b");
-		ssc_1_mgmt_port_1.setInterfaceName("interface-name");
+		ssc_1_mgmt_port_1.setInterfaceName("ssc_1_mgmt_port_1");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_1);
 
 		ssc_1_mgmt_port_0.setInterfaceId("80baec42-ffae-425f-ad8c-3f7b2c24bfff");
-		ssc_1_mgmt_port_0.setInterfaceName("interface-name");
+		ssc_1_mgmt_port_0.setInterfaceName("ssc_1_mgmt_port_0");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_0);
 		
 	
 		ssc_1_service2_port_0.setLInterfaces(new LInterfaces());
 		ssc_1_service2_port_0.setInterfaceId("13eddf95-4cf3-45f2-823a-2d890a6549b4");
-		ssc_1_service2_port_0.setInterfaceName("interface-name");
+		ssc_1_service2_port_0.setInterfaceName("ssc_1_service2_port_0");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_service2_port_0);
 		
 
-		service2_sub_interface_1.setInterfaceId("f711be16-2654-4a09-b89d-0511fda20e81");	
+		service2_sub_interface_1.setInterfaceId("f711be16-2654-4a09-b89d-0511fda20e81");
+		service2_sub_interface_1.setInterfaceName("service2_sub_interface_1");
 		ssc_1_service2_port_0.getLInterfaces().getLInterface().add(service2_sub_interface_1);
 		
 
 		ssc_1_int_ha_port_0.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adb8");	
+		ssc_1_int_ha_port_0.setInterfaceName("ssc_1_int_ha_port_0");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_int_ha_port_0);
 		
-		
 		Vserver vServer2= new Vserver();
 		vServer2.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
 		LInterfaces vServer2Linterfaces = new LInterfaces();
 		vServer2.setLInterfaces(vServer2Linterfaces);
 	
 		test_port_1.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz1");
-		test_port_1.setInterfaceName("interface-name");
+		test_port_1.setInterfaceName("test_port_1");
 		
 
 		test_port_2.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz2");
-		test_port_2.setInterfaceName("interface-name");
+		test_port_2.setInterfaceName("test_port_2");
 		
 		vServer2.getLInterfaces().getLInterface().add(test_port_1);
 		vServer2.getLInterfaces().getLInterface().add(test_port_2);
 		
 		vserversToAudit.add(vServer1);
 		vserversToAudit.add(vServer2);
-		
-		
-		test_port_1_plural.getLInterface().add(test_port_1);
-		test_port_2_plural.getLInterface().add(test_port_2);
-		ssc_1_int_ha_port_0_plural.getLInterface().add(ssc_1_int_ha_port_0);
-		ssc_1_service2_port_0_plural.getLInterface().add(ssc_1_service2_port_0);
-		ssc_1_mgmt_port_0_plural.getLInterface().add(ssc_1_mgmt_port_0);
-		ssc_1_mgmt_port_1_plural.getLInterface().add(ssc_1_mgmt_port_1);
-		ssc_1_service1_port_0_plural.getLInterface().add(ssc_1_service1_port_0);
-		ssc_1_trusted_port_0_plural.getLInterface().add(ssc_1_trusted_port_0);
-
 	} 
 	
 	@Test
 	public void audit_Vserver_Empty_HashSet() throws JsonParseException, JsonMappingException, IOException {
-		boolean exists = auditNova.auditAllVserversDoExist(new HashSet<Vserver>(), tenantId, cloudOwner, cloudRegion);
-		assertEquals(false, exists);
-		
-		boolean doNotExist = auditNova.auditAllVserversDoNotExist(new HashSet<Vserver>(), tenantId, cloudOwner, cloudRegion);
-		assertEquals(true, doNotExist);
+		Optional<AAIObjectAuditList> actual = auditNova.auditVservers(new HashSet<Vserver>(), tenantId, cloudOwner, cloudRegion);		
+		assertEquals(Optional.empty(), actual);
 	}
-	
 
 	@Test
 	public void audit_Vserver_Found_Test() throws JsonParseException, JsonMappingException, IOException {
 		doReturn(true).when(aaiResourcesMock).exists(vserverURI);
 		doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
-		doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_trusted_port_0_uri);
-		doReturn(Optional.of(ssc_1_service1_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_service1_port_0_uri);
-		doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_1_uri);
-		doReturn(Optional.of(ssc_1_mgmt_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_0_uri);
-		doReturn(Optional.of(ssc_1_service2_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_service2_port_0_uri);
-		doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_int_ha_port_0_uri);
-		doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_1_uri);
-		doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_2_uri);
+		doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
+		doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
+		doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
+		doReturn(Optional.of(ssc_1_mgmt_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
+		doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
+		doReturn(Optional.of(service2_sub_interface_1)).when(aaiResourcesMock).get(LInterface.class,service1_sub_1_uri);
+		doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
+		doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+		doReturn(Optional.of(test_port_2)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
 		
 		doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
 		doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
 		doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
 
-		boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(true, exists);
-		
-		boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(false, doNotExist);
+		Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+		String actualString = objectMapper.writeValueAsString(actual.get());
+		String expected = getJson("ExpectedVServerFound.json");	
+		JSONAssert.assertEquals(expected,actualString, false);
 	}
 
 	@Test
@@ -260,24 +241,23 @@
 			throws JsonParseException, JsonMappingException, IOException {
 		doReturn(true).when(aaiResourcesMock).exists(vserverURI);
 		doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
-		doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_trusted_port_0_uri);
-		doReturn(Optional.of(ssc_1_service1_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_service1_port_0_uri);
-		doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_1_uri);
-		doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_0_uri);
-		doReturn(Optional.of(ssc_1_service2_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_service2_port_0_uri);
-		doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_int_ha_port_0_uri);
-		doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_1_uri);
-		doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_2_uri);
+		doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
+		doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
+		doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
+		doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
+		doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
+		doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
+		doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+		doReturn(Optional.of(test_port_2)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
 		
 		doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
 		doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
 		doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
 
-		boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(false, exists);
-		
-		boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(false, doNotExist);
+		Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+		String actualString = objectMapper.writeValueAsString(actual.get());
+		String expected = getJson("VServer_Found_network_Not_Found.json");
+		JSONAssert.assertEquals(expected,actualString, false);
 	}
 
 	@Test
@@ -285,70 +265,81 @@
 			throws JsonParseException, JsonMappingException, IOException {
 		doReturn(true).when(aaiResourcesMock).exists(vserverURI);
 		doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
-		doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
-		doReturn(Optional.of(ssc_1_service1_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
-		doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
-		doReturn(Optional.of(ssc_1_mgmt_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
-		doReturn(Optional.of(ssc_1_service2_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
-		doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
-		doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+		doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
+		doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
+		doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
+		doReturn(Optional.of(ssc_1_mgmt_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
+		doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
+		doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
+		doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
 		doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);		
 		doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
 		doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
 		doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
-		boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
-		assertEquals(false, exists);
-		
-		boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(false, doNotExist);
+		Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+		String actualString = objectMapper.writeValueAsString(actual.get());
+		String expected = getJson("VServer_Found_Network_Sec_Server_Not_Found.json");	
+		JSONAssert.assertEquals(expected,actualString, false);
 	}
 
 	@Test
-	public void audit_Vservers_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
+	public void audit_Vserver_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
 		doReturn(false).when(aaiResourcesMock).exists(vserverURI);
 		doReturn(false).when(aaiResourcesMock).exists(vserverURI2);
-		
-		boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(false, exists);
-		
-		boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(true, doNotExist);
+		Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+		String actualString = objectMapper.writeValueAsString(actual.get());
+		String expected = getJson("Vservers_Not_Found.json");
+		JSONAssert.assertEquals(expected,actualString, false);
 	}
 
 	@Test
 	public void audit_Vserver_first_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
 		doReturn(false).when(aaiResourcesMock).exists(vserverURI);
 		doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
-		doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
-		doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
-		boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(false, exists);
+		doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+		doReturn(Optional.of(test_port_2)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
+		Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+		String actualString = objectMapper.writeValueAsString(actual.get());
+		String expected = getJson("Vserver2_Found_VServer1_Not_Found.json");
+		JSONAssert.assertEquals(expected,actualString, false);
+	}
+	
+	
+	@Test
+	public void doesSubInterfaceExistinAAI_Test(){
+		AAIResourceUri subInterfaceURI = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner,
+				cloudRegion, tenantId, "vserverId", "l-interface", "sub-interface");
 		
-		boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(false, doNotExist);
+		assertEquals("/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/vserverId/l-interfaces/l-interface/l-interface/l-interfaces/l-interface/sub-interface",subInterfaceURI.build().toString());
 	}
 
 	@Test
 	public void audit_Vserver_Second_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
 		doReturn(true).when(aaiResourcesMock).exists(vserverURI);
-		doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
-		doReturn(Optional.of(ssc_1_service1_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
-		doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
-		doReturn(Optional.of(ssc_1_mgmt_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
-		doReturn(Optional.of(ssc_1_service2_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
-		doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
-		doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
-		doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
+		doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
+		doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
+		doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
+		doReturn(Optional.of(ssc_1_mgmt_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
+		doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
+		doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
+		doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+		doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
 		doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
 		doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
 		doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
+		
 		doReturn(false).when(aaiResourcesMock).exists(vserverURI2);
-		
-		boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
-		assertEquals(false, exists);
-		
-		boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);		
-		assertEquals(false, doNotExist);
+		Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+		String actualString = objectMapper.writeValueAsString(actual.get());
+		String expected = getJson("VServer_Found_Sec_Server_Not_Found2.json");
+
+		JSONAssert.assertEquals(expected,actualString, false);
 	}
+	
+	private String getJson(String filename) throws IOException {
+		 return new String(Files.readAllBytes(Paths.get("src/test/resources/" + filename)));
+	}
+
+
 
 }
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/HeatStackAuditTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/HeatStackAuditTest.java
index 987e4cf..a7744a2 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/HeatStackAuditTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/HeatStackAuditTest.java
@@ -26,6 +26,9 @@
 import static org.mockito.Mockito.doReturn;
 
 import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -46,6 +49,7 @@
 import org.onap.so.openstack.utils.MsoNeutronUtils;
 import org.skyscreamer.jsonassert.JSONAssert;
 
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.woorea.openstack.heat.model.Resource;
@@ -74,9 +78,9 @@
 	
 	private Resources resources = new Resources();
 	
-	private ObjectMapper objectMapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+	private ObjectMapper objectMapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).setSerializationInclusion(Include.NON_NULL);
 	
-	private ObjectMapper stackObjectMapper = new ObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
+	private ObjectMapper stackObjectMapper = new ObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true).setSerializationInclusion(Include.NON_NULL);
 
 	private List<Optional<Port>> portList = new ArrayList<>();
 	
@@ -131,62 +135,7 @@
 		
 		List<Resource> resourceGroups = resources.getList().stream()
 				.filter(p -> "OS::Heat::ResourceGroup".equals(p.getType())).collect(Collectors.toList());
-		
-		Set<Vserver> expectedVservers = new HashSet<>();
-		Vserver vServer1= new Vserver();
-		vServer1.setVserverId("92272b67-d23f-42ca-87fa-7b06a9ec81f3");
-		LInterfaces vServer1Linterfaces = new LInterfaces();
-		vServer1.setLInterfaces(vServer1Linterfaces);
-		
-		LInterface ssc_1_trusted_port_0 = new LInterface();
-		ssc_1_trusted_port_0.setInterfaceId("7ee06d9d-3d18-411c-9d3e-aec930f70413");
-		vServer1.getLInterfaces().getLInterface().add(ssc_1_trusted_port_0);
-		
 
-		
-		LInterface ssc_1_mgmt_port_1 = new LInterface();
-		ssc_1_mgmt_port_1.setInterfaceId("fdeedf37-c01e-4ab0-bdd6-8d5fc4913943");
-		vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_1);
-		
-		LInterface ssc_1_mgmt_port_0 = new LInterface();
-		ssc_1_mgmt_port_0.setInterfaceId("8d93f63e-e972-48c7-ad98-b2122da47315");
-		vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_0);
-		
-		LInterface ssc_1_service2_port_0 = new LInterface();
-		ssc_1_service2_port_0.setLInterfaces(new LInterfaces());
-		ssc_1_service2_port_0.setInterfaceId("0594a2f2-7ea4-42eb-abc2-48ea49677fca");	
-		vServer1.getLInterfaces().getLInterface().add(ssc_1_service2_port_0);
-		
-		LInterface service2_sub_interface_1 = new LInterface();
-		service2_sub_interface_1.setInterfaceId("2bbfa345-33bb-495a-94b2-fb514ee1cffc");	
-		ssc_1_service2_port_0.getLInterfaces().getLInterface().add(service2_sub_interface_1);
-		
-		LInterface ssc_1_int_ha_port_0 = new LInterface();
-		ssc_1_int_ha_port_0.setInterfaceId("00bb8407-650e-48b5-b919-33b88d6f8fe3");
-		vServer1.getLInterfaces().getLInterface().add(ssc_1_int_ha_port_0);		
-		
-		
-		LInterface ssc_1_service1_port_0 = new LInterface();
-		ssc_1_service1_port_0.setInterfaceId("27391d94-33af-474a-927d-d409249e8fd3");
-		vServer1.getLInterfaces().getLInterface().add(ssc_1_service1_port_0);		
-		ssc_1_service1_port_0.setLInterfaces(new LInterfaces());		
-		
-		LInterface service1_sub_interface_0 = new LInterface();
-		service1_sub_interface_0.setInterfaceId("d54dfd09-75c6-4e04-b204-909455b8f933");
-		ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_0);
-		
-		LInterface service1_sub_interface_1 = new LInterface();
-		service1_sub_interface_1.setInterfaceId("f7a998c0-8939-4b07-bf4a-0862e9c325e1");
-		ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_1);
-		
-		LInterface service1_sub_interface_2 = new LInterface();
-		service1_sub_interface_2.setInterfaceId("621c1fea-60b8-44ee-aede-c01b8b1aaa70");
-		ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_2);
-
-		
-		expectedVservers.add(vServer1);
-		
-		
 		Resources service1QueryResponse = objectMapper.readValue(new File("src/test/resources/Service1ResourceGroupResponse.json"), Resources.class);
 		doReturn(service1QueryResponse).when(msoHeatUtilsMock).executeHeatClientRequest("/stacks/tsbc0005vm002ssc001-ssc_1_subint_service1_port_0_subinterfaces-dtmxjmny7yjz/31d0647a-6043-49a4-81b6-ccab29380672/resources", cloudRegion,	tenantId, Resources.class);
 		
@@ -219,20 +168,18 @@
 		Set<Vserver> vserversWithSubInterfaces = heatStackAudit.processSubInterfaces(cloudRegion,tenantId,resourceGroups, vServersToAudit);
 		
 		String actualValue = objectMapper.writeValueAsString(vserversWithSubInterfaces);
-		String expectedValue = objectMapper.writeValueAsString(expectedVservers);
-		
+		String expectedValue = getJson("ExpectedVserversToAudit.json");
+		System.out.println(actualValue);
 		JSONAssert.assertEquals(expectedValue, actualValue, false);
 	}
 	
 	@Test
 	public void auditHeatStackNoServers_Test() throws Exception{
-
-		
 		Resources getResource = objectMapper.readValue(new File("src/test/resources/Service1ResourceGroupResponse.json"), Resources.class);
 		doReturn(getResource).when(msoHeatUtilsMock).queryStackResources(cloudRegion,	tenantId, "heatStackName");
 		
-		boolean actual = heatStackAudit.auditHeatStackCreate(cloudRegion, "cloudOwner", tenantId, "heatStackName");
-		assertEquals(true, actual);
+		Optional<AAIObjectAuditList> actual = heatStackAudit.auditHeatStack(cloudRegion, "cloudOwner", tenantId, "heatStackName");
+		assertEquals(true, actual.get().getAuditList().isEmpty());
 	}
 	
 
@@ -248,26 +195,32 @@
 		
 		LInterface ssc_1_trusted_port_0 = new LInterface();
 		ssc_1_trusted_port_0.setInterfaceId("7ee06d9d-3d18-411c-9d3e-aec930f70413");
+		ssc_1_trusted_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_trusted_port_0);
 		
-		LInterface ssc_1_service1_port_0 = new LInterface();
-		ssc_1_service1_port_0.setInterfaceId("27391d94-33af-474a-927d-d409249e8fd3");
-		vServer1.getLInterfaces().getLInterface().add(ssc_1_service1_port_0);
+		LInterface ssc_1_svc2_port_0 = new LInterface();
+		ssc_1_svc2_port_0.setInterfaceId("27391d94-33af-474a-927d-d409249e8fd3");
+		ssc_1_svc2_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
+		vServer1.getLInterfaces().getLInterface().add(ssc_1_svc2_port_0);
 		
 		LInterface ssc_1_mgmt_port_1 = new LInterface();
 		ssc_1_mgmt_port_1.setInterfaceId("fdeedf37-c01e-4ab0-bdd6-8d5fc4913943");
+		ssc_1_mgmt_port_1.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_1);
 		
 		LInterface ssc_1_mgmt_port_0 = new LInterface();
 		ssc_1_mgmt_port_0.setInterfaceId("8d93f63e-e972-48c7-ad98-b2122da47315");
+		ssc_1_mgmt_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_0);
 		
-		LInterface ssc_1_service2_port_0 = new LInterface();
-		ssc_1_service2_port_0.setInterfaceId("0594a2f2-7ea4-42eb-abc2-48ea49677fca");
-		vServer1.getLInterfaces().getLInterface().add(ssc_1_service2_port_0);
+		LInterface ssc_1_svc1_port_0 = new LInterface();
+		ssc_1_svc1_port_0.setInterfaceId("0594a2f2-7ea4-42eb-abc2-48ea49677fca");
+		ssc_1_svc1_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
+		vServer1.getLInterfaces().getLInterface().add(ssc_1_svc1_port_0);
 		
 		LInterface ssc_1_int_ha_port_0 = new LInterface();
 		ssc_1_int_ha_port_0.setInterfaceId("00bb8407-650e-48b5-b919-33b88d6f8fe3");
+		ssc_1_int_ha_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
 		vServer1.getLInterfaces().getLInterface().add(ssc_1_int_ha_port_0);		
 		
 		expectedVservers.add(vServer1);
@@ -277,5 +230,7 @@
 		assertThat(actualVservers, sameBeanAs(expectedVservers));
 	}
 
-
+	private String getJson(String filename) throws IOException {
+		 return new String(Files.readAllBytes(Paths.get("src/test/resources/" + filename)));
+	}
 }
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateAAIInventoryTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateAAIInventoryTest.java
new file mode 100644
index 0000000..4d34d18
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateAAIInventoryTest.java
@@ -0,0 +1,122 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017-2019 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.adapters.inventory.create;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import org.camunda.bpm.client.task.ExternalTask;
+import org.hamcrest.Matchers;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.so.adapters.audit.AAIObjectAuditList;
+import org.onap.so.audit.beans.AuditInventory;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIResourcesClient;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class CreateAAIInventoryTest extends CreateAAIInventory {
+
+	@InjectMocks
+	private CreateAAIInventory createAAIInventory = new CreateAAIInventory();
+
+	@Mock
+	private ExternalTask mockExternalTask;
+	
+	@Mock
+	private AAIResourcesClient mockClient;
+
+	private ObjectMapper objectMapper = new ObjectMapper();
+	
+	private AuditInventory auditInventory = new AuditInventory();
+
+	AAIObjectAuditList auditListSuccess;
+	
+	AAIObjectAuditList auditListFailure;
+	
+	AAIObjectAuditList missingSubInterfaces;
+	
+	@Before
+	public void setup() throws JsonParseException, JsonMappingException, IOException {
+		auditInventory.setCloudOwner("cloudOwner");
+		auditInventory.setCloudRegion("cloudRegion");
+		auditInventory.setTenantId("tenantId");
+		auditInventory.setHeatStackName("stackName");
+		MockitoAnnotations.initMocks(this);
+		auditListSuccess = objectMapper.readValue(new File("src/test/resources/ExpectedVServerFound.json"), AAIObjectAuditList.class);
+		auditListFailure = objectMapper.readValue(new File("src/test/resources/Vserver2_Found_VServer1_Not_Found.json"), AAIObjectAuditList.class);
+		missingSubInterfaces = objectMapper.readValue(new File("src/test/resources/AuditResultsMissSub.json"), AAIObjectAuditList.class);
+		doReturn(auditInventory).when(mockExternalTask).getVariable("auditInventory");
+	}
+
+	@Test
+	public void determineAuditResult_Test() throws Exception{
+		boolean actual = createAAIInventory.didAuditFailVserverLInterfaces(auditListSuccess);
+		assertEquals(false, actual);
+	}
+	
+	@Test
+	public void determineAuditResult_Failure_Test() throws Exception{
+		boolean actual = createAAIInventory.didAuditFailVserverLInterfaces(auditListFailure);
+		assertEquals(true, actual);
+	}
+	
+	@Test
+	public void missing_Sub_Interfaces_Test() throws Exception{
+		AAIResourceUri aaiURI2 = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+				"cloudOwner", "regionOne", "0422ffb57ba042c0800a29dc85ca70f8", "92272b67-d23f-42ca-87fa-7b06a9ec81f3",
+				"tsbc0005v_tsbc0005vm002_svc1_port_0","tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81");
+		AAIResourceUri aaiURI1 = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+				"cloudOwner", "regionOne", "0422ffb57ba042c0800a29dc85ca70f8", "92272b67-d23f-42ca-87fa-7b06a9ec81f3",
+				"tsbc0005v_tsbc0005vm002_svc2_port_0","tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103");
+		ArgumentCaptor<Optional> captor = ArgumentCaptor.forClass(Optional.class);
+		ArgumentCaptor<AAIResourceUri> uriCaptor = ArgumentCaptor.forClass(AAIResourceUri.class);
+
+		createAAIInventory.setAaiClient(mockClient);
+		createAAIInventory.createInventory(missingSubInterfaces);		
+		Mockito.verify(mockClient,times(2)).createIfNotExists(uriCaptor.capture(),captor.capture());
+		
+		List<AAIResourceUri> capturedURI = uriCaptor.getAllValues();
+		assertTrue(capturedURI.stream().anyMatch(item -> aaiURI1.build().toString().equals(item.build().toString())));
+		assertTrue(capturedURI.stream().anyMatch(item -> aaiURI2.build().toString().equals(item.build().toString())));
+
+
+		
+	}
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/AuditResultsMissSub.json b/adapters/mso-openstack-adapters/src/test/resources/AuditResultsMissSub.json
new file mode 100644
index 0000000..13b0d6a
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/AuditResultsMissSub.json
@@ -0,0 +1,604 @@
+{
+  "auditList": [
+    {
+      "aaiObject": {
+        "inMaint": null, 
+        "isClosedLoopDisabled": null, 
+        "linterfaces": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "volumes": null, 
+        "vserverId": "92272b67-d23f-42ca-87fa-7b06a9ec81f3", 
+        "vserverName": null, 
+        "vserverName2": null, 
+        "vserverSelflink": null
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": null, 
+        "interfaceDescription": null, 
+        "interfaceId": "d2f51f82-0ec2-4581-bd1a-d2a82073e52b", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_trusted_port", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": null, 
+        "isPortMirrored": null, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": null, 
+        "macaddr": null, 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": null
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_trusted_port"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": null, 
+        "interfaceDescription": null, 
+        "interfaceId": "27391d94-33af-474a-927d-d409249e8fd3", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_svc2_port_0", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": null, 
+        "isPortMirrored": null, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "adminStatus": null, 
+              "allowedAddressPairs": null, 
+              "inMaint": false, 
+              "interfaceDescription": null, 
+              "interfaceId": "d54dfd09-75c6-4e04-b204-909455b8f933", 
+              "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101", 
+              "interfaceRole": null, 
+              "isIpUnnumbered": false, 
+              "isPortMirrored": false, 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": [], 
+              "linterfaces": null, 
+              "macaddr": "02:27:39:1d:94:33", 
+              "managementOption": null, 
+              "networkName": null, 
+              "priority": null, 
+              "provStatus": null, 
+              "relationshipList": null, 
+              "resourceVersion": null, 
+              "selflink": null, 
+              "sriovVfs": null, 
+              "v6WanLinkIp": null, 
+              "vlans": {
+                "vlan": [
+                  {
+                    "backdoorConnection": null, 
+                    "inMaint": false, 
+                    "isIpUnnumbered": false, 
+                    "isPrivate": null, 
+                    "l3InterfaceIpv4AddressList": [], 
+                    "l3InterfaceIpv6AddressList": [], 
+                    "orchestrationStatus": null, 
+                    "provStatus": null, 
+                    "relationshipList": null, 
+                    "resourceVersion": null, 
+                    "speedUnits": null, 
+                    "speedValue": null, 
+                    "vlanDescription": null, 
+                    "vlanIdInner": 101, 
+                    "vlanIdOuter": null, 
+                    "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101", 
+                    "vpnKey": null
+                  }
+                ]
+              }
+            }, 
+            {
+              "adminStatus": null, 
+              "allowedAddressPairs": null, 
+              "inMaint": false, 
+              "interfaceDescription": null, 
+              "interfaceId": "f7a998c0-8939-4b07-bf4a-0862e9c325e1", 
+              "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101", 
+              "interfaceRole": null, 
+              "isIpUnnumbered": false, 
+              "isPortMirrored": false, 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": [], 
+              "linterfaces": null, 
+              "macaddr": "02:27:39:1d:94:33", 
+              "managementOption": null, 
+              "networkName": null, 
+              "priority": null, 
+              "provStatus": null, 
+              "relationshipList": null, 
+              "resourceVersion": null, 
+              "selflink": null, 
+              "sriovVfs": null, 
+              "v6WanLinkIp": null, 
+              "vlans": {
+                "vlan": [
+                  {
+                    "backdoorConnection": null, 
+                    "inMaint": false, 
+                    "isIpUnnumbered": false, 
+                    "isPrivate": null, 
+                    "l3InterfaceIpv4AddressList": [], 
+                    "l3InterfaceIpv6AddressList": [], 
+                    "orchestrationStatus": null, 
+                    "provStatus": null, 
+                    "relationshipList": null, 
+                    "resourceVersion": null, 
+                    "speedUnits": null, 
+                    "speedValue": null, 
+                    "vlanDescription": null, 
+                    "vlanIdInner": 101, 
+                    "vlanIdOuter": null, 
+                    "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101", 
+                    "vpnKey": null
+                  }
+                ]
+              }
+            }, 
+            {
+              "adminStatus": null, 
+              "allowedAddressPairs": null, 
+              "inMaint": false, 
+              "interfaceDescription": null, 
+              "interfaceId": "621c1fea-60b8-44ee-aede-c01b8b1aaa70", 
+              "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103", 
+              "interfaceRole": null, 
+              "isIpUnnumbered": false, 
+              "isPortMirrored": false, 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": [], 
+              "linterfaces": null, 
+              "macaddr": "02:27:39:1d:94:33", 
+              "managementOption": null, 
+              "networkName": null, 
+              "priority": null, 
+              "provStatus": null, 
+              "relationshipList": null, 
+              "resourceVersion": null, 
+              "selflink": null, 
+              "sriovVfs": null, 
+              "v6WanLinkIp": null, 
+              "vlans": {
+                "vlan": [
+                  {
+                    "backdoorConnection": null, 
+                    "inMaint": false, 
+                    "isIpUnnumbered": false, 
+                    "isPrivate": null, 
+                    "l3InterfaceIpv4AddressList": [], 
+                    "l3InterfaceIpv6AddressList": [], 
+                    "orchestrationStatus": null, 
+                    "provStatus": null, 
+                    "relationshipList": null, 
+                    "resourceVersion": null, 
+                    "speedUnits": null, 
+                    "speedValue": null, 
+                    "vlanDescription": null, 
+                    "vlanIdInner": 103, 
+                    "vlanIdOuter": null, 
+                    "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103", 
+                    "vpnKey": null
+                  }
+                ]
+              }
+            }
+          ]
+        }, 
+        "macaddr": null, 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": null
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc2_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": false, 
+        "interfaceDescription": null, 
+        "interfaceId": "d54dfd09-75c6-4e04-b204-909455b8f933", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": false, 
+        "isPortMirrored": false, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": null, 
+        "macaddr": "02:27:39:1d:94:33", 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": {
+          "vlan": [
+            {
+              "backdoorConnection": null, 
+              "inMaint": false, 
+              "isIpUnnumbered": false, 
+              "isPrivate": null, 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": [], 
+              "orchestrationStatus": null, 
+              "provStatus": null, 
+              "relationshipList": null, 
+              "resourceVersion": null, 
+              "speedUnits": null, 
+              "speedValue": null, 
+              "vlanDescription": null, 
+              "vlanIdInner": 101, 
+              "vlanIdOuter": null, 
+              "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101", 
+              "vpnKey": null
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc2_port_0/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": false, 
+        "interfaceDescription": null, 
+        "interfaceId": "f7a998c0-8939-4b07-bf4a-0862e9c325e1", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": false, 
+        "isPortMirrored": false, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": null, 
+        "macaddr": "02:27:39:1d:94:33", 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": {
+          "vlan": [
+            {
+              "backdoorConnection": null, 
+              "inMaint": false, 
+              "isIpUnnumbered": false, 
+              "isPrivate": null, 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": [], 
+              "orchestrationStatus": null, 
+              "provStatus": null, 
+              "relationshipList": null, 
+              "resourceVersion": null, 
+              "speedUnits": null, 
+              "speedValue": null, 
+              "vlanDescription": null, 
+              "vlanIdInner": 101, 
+              "vlanIdOuter": null, 
+              "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101", 
+              "vpnKey": null
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc2_port_0/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": false, 
+        "interfaceDescription": null, 
+        "interfaceId": "621c1fea-60b8-44ee-aede-c01b8b1aaa70", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": false, 
+        "isPortMirrored": false, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": null, 
+        "macaddr": "02:27:39:1d:94:33", 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": {
+          "vlan": [
+            {
+              "backdoorConnection": null, 
+              "inMaint": false, 
+              "isIpUnnumbered": false, 
+              "isPrivate": null, 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": [], 
+              "orchestrationStatus": null, 
+              "provStatus": null, 
+              "relationshipList": null, 
+              "resourceVersion": null, 
+              "speedUnits": null, 
+              "speedValue": null, 
+              "vlanDescription": null, 
+              "vlanIdInner": 103, 
+              "vlanIdOuter": null, 
+              "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103", 
+              "vpnKey": null
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc2_port_0/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": null, 
+        "interfaceDescription": null, 
+        "interfaceId": "07f5b14c-147a-4d14-8c94-a9e94dbc097b", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_mgmt_port_1", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": null, 
+        "isPortMirrored": null, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": null, 
+        "macaddr": null, 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": null
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_mgmt_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": null, 
+        "interfaceDescription": null, 
+        "interfaceId": "8d93f63e-e972-48c7-ad98-b2122da47315", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_mgmt_port_0", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": null, 
+        "isPortMirrored": null, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": null, 
+        "macaddr": null, 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": null
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_mgmt_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": null, 
+        "interfaceDescription": null, 
+        "interfaceId": "0594a2f2-7ea4-42eb-abc2-48ea49677fca", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_svc1_port_0", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": null, 
+        "isPortMirrored": null, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "adminStatus": null, 
+              "allowedAddressPairs": null, 
+              "inMaint": false, 
+              "interfaceDescription": null, 
+              "interfaceId": "2bbfa345-33bb-495a-94b2-fb514ee1cffc", 
+              "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81", 
+              "interfaceRole": null, 
+              "isIpUnnumbered": false, 
+              "isPortMirrored": false, 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": [], 
+              "linterfaces": null, 
+              "macaddr": "02:05:94:a2:f2:7e", 
+              "managementOption": null, 
+              "networkName": null, 
+              "priority": null, 
+              "provStatus": null, 
+              "relationshipList": null, 
+              "resourceVersion": null, 
+              "selflink": null, 
+              "sriovVfs": null, 
+              "v6WanLinkIp": null, 
+              "vlans": {
+                "vlan": [
+                  {
+                    "backdoorConnection": null, 
+                    "inMaint": false, 
+                    "isIpUnnumbered": false, 
+                    "isPrivate": null, 
+                    "l3InterfaceIpv4AddressList": [], 
+                    "l3InterfaceIpv6AddressList": [], 
+                    "orchestrationStatus": null, 
+                    "provStatus": null, 
+                    "relationshipList": null, 
+                    "resourceVersion": null, 
+                    "speedUnits": null, 
+                    "speedValue": null, 
+                    "vlanDescription": null, 
+                    "vlanIdInner": 81, 
+                    "vlanIdOuter": null, 
+                    "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81", 
+                    "vpnKey": null
+                  }
+                ]
+              }
+            }
+          ]
+        }, 
+        "macaddr": null, 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": null
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc1_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": false, 
+        "interfaceDescription": null, 
+        "interfaceId": "2bbfa345-33bb-495a-94b2-fb514ee1cffc", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": false, 
+        "isPortMirrored": false, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": null, 
+        "macaddr": "02:05:94:a2:f2:7e", 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": {
+          "vlan": [
+            {
+              "backdoorConnection": null, 
+              "inMaint": false, 
+              "isIpUnnumbered": false, 
+              "isPrivate": null, 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": [], 
+              "orchestrationStatus": null, 
+              "provStatus": null, 
+              "relationshipList": null, 
+              "resourceVersion": null, 
+              "speedUnits": null, 
+              "speedValue": null, 
+              "vlanDescription": null, 
+              "vlanIdInner": 81, 
+              "vlanIdOuter": null, 
+              "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81", 
+              "vpnKey": null
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc1_port_0/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81"
+    }, 
+    {
+      "aaiObject": {
+        "adminStatus": null, 
+        "allowedAddressPairs": null, 
+        "inMaint": null, 
+        "interfaceDescription": null, 
+        "interfaceId": "00bb8407-650e-48b5-b919-33b88d6f8fe3", 
+        "interfaceName": "tsbc0005v_tsbc0005vm002_int_ha_port_0", 
+        "interfaceRole": null, 
+        "isIpUnnumbered": null, 
+        "isPortMirrored": null, 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": null, 
+        "macaddr": null, 
+        "managementOption": null, 
+        "networkName": null, 
+        "priority": null, 
+        "provStatus": null, 
+        "relationshipList": null, 
+        "resourceVersion": null, 
+        "selflink": null, 
+        "sriovVfs": null, 
+        "v6WanLinkIp": null, 
+        "vlans": null
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_int_ha_port_0"
+    }
+  ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/ExpectedVServerFound.json b/adapters/mso-openstack-adapters/src/test/resources/ExpectedVServerFound.json
new file mode 100644
index 0000000..1f8e58a
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/ExpectedVServerFound.json
@@ -0,0 +1,167 @@
+{
+  "auditList": [
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1", 
+        "interfaceName": "test_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2", 
+        "interfaceName": "test_port_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+    }, 
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c", 
+        "interfaceName": "ssc_1_trusted_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56", 
+        "interfaceName": "ssc_1_service1_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+              "interfaceName": "service1_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }, 
+            {
+              "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+              "interfaceName": "service1_sub_interface_2", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+        "interfaceName": "service1_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+        "interfaceName": "service1_sub_interface_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b", 
+        "interfaceName": "ssc_1_mgmt_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff", 
+        "interfaceName": "ssc_1_mgmt_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4", 
+        "interfaceName": "ssc_1_service2_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+              "interfaceName": "service2_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+        "interfaceName": "service2_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8", 
+        "interfaceName": "ssc_1_int_ha_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+    }
+  ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/ExpectedVserversToAudit.json b/adapters/mso-openstack-adapters/src/test/resources/ExpectedVserversToAudit.json
new file mode 100644
index 0000000..96fe500
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/ExpectedVserversToAudit.json
@@ -0,0 +1,135 @@
+[
+  {
+    "linterfaces": {
+      "linterface": [
+        {
+          "interfaceId": "7ee06d9d-3d18-411c-9d3e-aec930f70413", 
+          "l3InterfaceIpv4AddressList": [], 
+          "l3InterfaceIpv6AddressList": []
+        }, 
+        {
+          "interfaceId": "27391d94-33af-474a-927d-d409249e8fd3", 
+          "l3InterfaceIpv4AddressList": [], 
+          "l3InterfaceIpv6AddressList": [], 
+          "linterfaces": {
+            "linterface": [
+              {
+                "inMaint": false, 
+                "interfaceId": "d54dfd09-75c6-4e04-b204-909455b8f933", 
+                "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_101", 
+                "isIpUnnumbered": false, 
+                "isPortMirrored": false, 
+                "l3InterfaceIpv4AddressList": [], 
+                "l3InterfaceIpv6AddressList": [], 
+                "macaddr": "02:27:39:1d:94:33", 
+                "vlans": {
+                  "vlan": [
+                    {
+                      "inMaint": false, 
+                      "isIpUnnumbered": false, 
+                      "l3InterfaceIpv4AddressList": [], 
+                      "l3InterfaceIpv6AddressList": [], 
+                      "vlanIdInner": 101, 
+                      "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_101"
+                    }
+                  ]
+                }
+              }, 
+              {
+                "inMaint": false, 
+                "interfaceId": "f7a998c0-8939-4b07-bf4a-0862e9c325e1", 
+                "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_101", 
+                "isIpUnnumbered": false, 
+                "isPortMirrored": false, 
+                "l3InterfaceIpv4AddressList": [], 
+                "l3InterfaceIpv6AddressList": [], 
+                "macaddr": "02:27:39:1d:94:33", 
+                "vlans": {
+                  "vlan": [
+                    {
+                      "inMaint": false, 
+                      "isIpUnnumbered": false, 
+                      "l3InterfaceIpv4AddressList": [], 
+                      "l3InterfaceIpv6AddressList": [], 
+                      "vlanIdInner": 101, 
+                      "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_101"
+                    }
+                  ]
+                }
+              }, 
+              {
+                "inMaint": false, 
+                "interfaceId": "621c1fea-60b8-44ee-aede-c01b8b1aaa70", 
+                "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_103", 
+                "isIpUnnumbered": false, 
+                "isPortMirrored": false, 
+                "l3InterfaceIpv4AddressList": [], 
+                "l3InterfaceIpv6AddressList": [], 
+                "macaddr": "02:27:39:1d:94:33", 
+                "vlans": {
+                  "vlan": [
+                    {
+                      "inMaint": false, 
+                      "isIpUnnumbered": false, 
+                      "l3InterfaceIpv4AddressList": [], 
+                      "l3InterfaceIpv6AddressList": [], 
+                      "vlanIdInner": 103, 
+                      "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_103"
+                    }
+                  ]
+                }
+              }
+            ]
+          }
+        }, 
+        {
+          "interfaceId": "fdeedf37-c01e-4ab0-bdd6-8d5fc4913943", 
+          "l3InterfaceIpv4AddressList": [], 
+          "l3InterfaceIpv6AddressList": []
+        }, 
+        {
+          "interfaceId": "8d93f63e-e972-48c7-ad98-b2122da47315", 
+          "l3InterfaceIpv4AddressList": [], 
+          "l3InterfaceIpv6AddressList": []
+        }, 
+        {
+          "interfaceId": "0594a2f2-7ea4-42eb-abc2-48ea49677fca", 
+          "l3InterfaceIpv4AddressList": [], 
+          "l3InterfaceIpv6AddressList": [], 
+          "linterfaces": {
+            "linterface": [
+              {
+                "inMaint": false, 
+                "interfaceId": "2bbfa345-33bb-495a-94b2-fb514ee1cffc", 
+                "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_service2_81", 
+                "isIpUnnumbered": false, 
+                "isPortMirrored": false, 
+                "l3InterfaceIpv4AddressList": [], 
+                "l3InterfaceIpv6AddressList": [], 
+                "macaddr": "02:05:94:a2:f2:7e", 
+                "vlans": {
+                  "vlan": [
+                    {
+                      "inMaint": false, 
+                      "isIpUnnumbered": false, 
+                      "l3InterfaceIpv4AddressList": [], 
+                      "l3InterfaceIpv6AddressList": [], 
+                      "vlanIdInner": 81, 
+                      "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_service2_81"
+                    }
+                  ]
+                }
+              }
+            ]
+          }
+        }, 
+        {
+          "interfaceId": "00bb8407-650e-48b5-b919-33b88d6f8fe3", 
+          "l3InterfaceIpv4AddressList": [], 
+          "l3InterfaceIpv6AddressList": []
+        }
+      ]
+    }, 
+    "vserverId": "92272b67-d23f-42ca-87fa-7b06a9ec81f3"
+  }
+]
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface0Resources.json b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface0Resources.json
index 0f3f354..d4745be 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface0Resources.json
+++ b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface0Resources.json
@@ -4,23 +4,23 @@
     "resources": [
         {
             "parent_resource": "0",
-            "resource_name": "ssc_subint_mis_vmi_0",
+            "resource_name": "ssc_subint_svc1_vmi_0",
             "links": [
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0",
                     "rel": "self"
                 },
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
                     "rel": "stack"
                 }
             ],
-            "logical_resource_id": "ssc_subint_mis_vmi_0",
+            "logical_resource_id": "ssc_subint_svc1_vmi_0",
             "resource_status": "CREATE_COMPLETE",
             "updated_time": "2019-01-23T19:34:56Z",
             "required_by": [
-                "ssc_subint_mis_vmi_0_v6_ip_0",
-                "ssc_subint_mis_vmi_0_ip_0"
+                "ssc_subint_svc1_vmi_0_v6_ip_0",
+                "ssc_subint_svc1_vmi_0_ip_0"
             ],
             "resource_status_reason": "state changed",
             "physical_resource_id": "d54dfd09-75c6-4e04-b204-909455b8f933",
@@ -28,18 +28,18 @@
         },
         {
             "parent_resource": "0",
-            "resource_name": "ssc_subint_mis_vmi_0_v6_ip_0",
+            "resource_name": "ssc_subint_svc1_vmi_0_v6_ip_0",
             "links": [
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_v6_ip_0",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_v6_ip_0",
                     "rel": "self"
                 },
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
                     "rel": "stack"
                 }
             ],
-            "logical_resource_id": "ssc_subint_mis_vmi_0_v6_ip_0",
+            "logical_resource_id": "ssc_subint_svc1_vmi_0_v6_ip_0",
             "resource_status": "CREATE_COMPLETE",
             "updated_time": "2019-01-23T19:34:56Z",
             "required_by": [],
@@ -49,18 +49,18 @@
         },
         {
             "parent_resource": "0",
-            "resource_name": "ssc_subint_mis_vmi_0_ip_0",
+            "resource_name": "ssc_subint_svc1_vmi_0_ip_0",
             "links": [
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_ip_0",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_ip_0",
                     "rel": "self"
                 },
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
                     "rel": "stack"
                 }
             ],
-            "logical_resource_id": "ssc_subint_mis_vmi_0_ip_0",
+            "logical_resource_id": "ssc_subint_svc1_vmi_0_ip_0",
             "resource_status": "CREATE_COMPLETE",
             "updated_time": "2019-01-23T19:34:56Z",
             "required_by": [],
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface1Resources.json b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface1Resources.json
index cfc4d7f..68d3e0f 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface1Resources.json
+++ b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface1Resources.json
@@ -4,23 +4,23 @@
     "resources": [
         {
             "parent_resource": "0",
-            "resource_name": "ssc_subint_mis_vmi_0",
+            "resource_name": "ssc_subint_svc1_vmi_0",
             "links": [
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0",
                     "rel": "self"
                 },
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
                     "rel": "stack"
                 }
             ],
-            "logical_resource_id": "ssc_subint_mis_vmi_0",
+            "logical_resource_id": "ssc_subint_svc1_vmi_0",
             "resource_status": "CREATE_COMPLETE",
             "updated_time": "2019-01-23T19:34:56Z",
             "required_by": [
-                "ssc_subint_mis_vmi_0_v6_ip_0",
-                "ssc_subint_mis_vmi_0_ip_0"
+                "ssc_subint_svc1_vmi_0_v6_ip_0",
+                "ssc_subint_svc1_vmi_0_ip_0"
             ],
             "resource_status_reason": "state changed",
             "physical_resource_id": "f7a998c0-8939-4b07-bf4a-0862e9c325e1",
@@ -28,18 +28,18 @@
         },
         {
             "parent_resource": "0",
-            "resource_name": "ssc_subint_mis_vmi_0_v6_ip_0",
+            "resource_name": "ssc_subint_svc1_vmi_0_v6_ip_0",
             "links": [
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_v6_ip_0",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_v6_ip_0",
                     "rel": "self"
                 },
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
                     "rel": "stack"
                 }
             ],
-            "logical_resource_id": "ssc_subint_mis_vmi_0_v6_ip_0",
+            "logical_resource_id": "ssc_subint_svc1_vmi_0_v6_ip_0",
             "resource_status": "CREATE_COMPLETE",
             "updated_time": "2019-01-23T19:34:56Z",
             "required_by": [],
@@ -49,18 +49,18 @@
         },
         {
             "parent_resource": "0",
-            "resource_name": "ssc_subint_mis_vmi_0_ip_0",
+            "resource_name": "ssc_subint_svc1_vmi_0_ip_0",
             "links": [
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_ip_0",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_ip_0",
                     "rel": "self"
                 },
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
                     "rel": "stack"
                 }
             ],
-            "logical_resource_id": "ssc_subint_mis_vmi_0_ip_0",
+            "logical_resource_id": "ssc_subint_svc1_vmi_0_ip_0",
             "resource_status": "CREATE_COMPLETE",
             "updated_time": "2019-01-23T19:34:56Z",
             "required_by": [],
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface2Resources.json b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface2Resources.json
index e8aa80e..4f4d25d 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface2Resources.json
+++ b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface2Resources.json
@@ -4,23 +4,23 @@
     "resources": [
         {
             "parent_resource": "0",
-            "resource_name": "ssc_subint_mis_vmi_0",
+            "resource_name": "ssc_subint_svc1_vmi_0",
             "links": [
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0",
                     "rel": "self"
                 },
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
                     "rel": "stack"
                 }
             ],
-            "logical_resource_id": "ssc_subint_mis_vmi_0",
+            "logical_resource_id": "ssc_subint_svc1_vmi_0",
             "resource_status": "CREATE_COMPLETE",
             "updated_time": "2019-01-23T19:34:56Z",
             "required_by": [
-                "ssc_subint_mis_vmi_0_v6_ip_0",
-                "ssc_subint_mis_vmi_0_ip_0"
+                "ssc_subint_svc1_vmi_0_v6_ip_0",
+                "ssc_subint_svc1_vmi_0_ip_0"
             ],
             "resource_status_reason": "state changed",
             "physical_resource_id": "621c1fea-60b8-44ee-aede-c01b8b1aaa70",
@@ -28,18 +28,18 @@
         },
         {
             "parent_resource": "0",
-            "resource_name": "ssc_subint_mis_vmi_0_v6_ip_0",
+            "resource_name": "ssc_subint_svc1_vmi_0_v6_ip_0",
             "links": [
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_v6_ip_0",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_v6_ip_0",
                     "rel": "self"
                 },
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
                     "rel": "stack"
                 }
             ],
-            "logical_resource_id": "ssc_subint_mis_vmi_0_v6_ip_0",
+            "logical_resource_id": "ssc_subint_svc1_vmi_0_v6_ip_0",
             "resource_status": "CREATE_COMPLETE",
             "updated_time": "2019-01-23T19:34:56Z",
             "required_by": [],
@@ -49,18 +49,18 @@
         },
         {
             "parent_resource": "0",
-            "resource_name": "ssc_subint_mis_vmi_0_ip_0",
+            "resource_name": "ssc_subint_svc1_vmi_0_ip_0",
             "links": [
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_ip_0",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_ip_0",
                     "rel": "self"
                 },
                 {
-                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+                    "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
                     "rel": "stack"
                 }
             ],
-            "logical_resource_id": "ssc_subint_mis_vmi_0_ip_0",
+            "logical_resource_id": "ssc_subint_svc1_vmi_0_ip_0",
             "resource_status": "CREATE_COMPLETE",
             "updated_time": "2019-01-23T19:34:56Z",
             "required_by": [],
diff --git a/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Network_Sec_Server_Not_Found.json b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Network_Sec_Server_Not_Found.json
new file mode 100644
index 0000000..d13b4b7
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Network_Sec_Server_Not_Found.json
@@ -0,0 +1,167 @@
+{
+  "auditList": [
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c", 
+        "interfaceName": "ssc_1_trusted_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56", 
+        "interfaceName": "ssc_1_service1_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+              "interfaceName": "service1_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }, 
+            {
+              "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+              "interfaceName": "service1_sub_interface_2", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+        "interfaceName": "service1_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+        "interfaceName": "service1_sub_interface_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b", 
+        "interfaceName": "ssc_1_mgmt_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff", 
+        "interfaceName": "ssc_1_mgmt_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4", 
+        "interfaceName": "ssc_1_service2_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+              "interfaceName": "service2_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+        "interfaceName": "service2_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8", 
+        "interfaceName": "ssc_1_int_ha_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1", 
+        "interfaceName": "test_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2", 
+        "interfaceName": "test_port_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+    }
+  ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Sec_Server_Not_Found2.json b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Sec_Server_Not_Found2.json
new file mode 100644
index 0000000..eb0fb7c
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Sec_Server_Not_Found2.json
@@ -0,0 +1,167 @@
+{
+  "auditList": [
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c", 
+        "interfaceName": "ssc_1_trusted_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56", 
+        "interfaceName": "ssc_1_service1_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+              "interfaceName": "service1_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }, 
+            {
+              "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+              "interfaceName": "service1_sub_interface_2", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+        "interfaceName": "service1_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+        "interfaceName": "service1_sub_interface_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b", 
+        "interfaceName": "ssc_1_mgmt_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff", 
+        "interfaceName": "ssc_1_mgmt_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4", 
+        "interfaceName": "ssc_1_service2_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+              "interfaceName": "service2_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+        "interfaceName": "service2_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8", 
+        "interfaceName": "ssc_1_int_ha_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1", 
+        "interfaceName": "test_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2", 
+        "interfaceName": "test_port_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+    }
+  ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_network_Not_Found.json b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_network_Not_Found.json
new file mode 100644
index 0000000..0cb47dc
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_network_Not_Found.json
@@ -0,0 +1,167 @@
+{
+  "auditList": [
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1", 
+        "interfaceName": "test_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2", 
+        "interfaceName": "test_port_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+    }, 
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c", 
+        "interfaceName": "ssc_1_trusted_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56", 
+        "interfaceName": "ssc_1_service1_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+              "interfaceName": "service1_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }, 
+            {
+              "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+              "interfaceName": "service1_sub_interface_2", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+        "interfaceName": "service1_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+        "interfaceName": "service1_sub_interface_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b", 
+        "interfaceName": "ssc_1_mgmt_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff", 
+        "interfaceName": "ssc_1_mgmt_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4", 
+        "interfaceName": "ssc_1_service2_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+              "interfaceName": "service2_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+        "interfaceName": "service2_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8", 
+        "interfaceName": "ssc_1_int_ha_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+    }
+  ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Vserver2_Found_VServer1_Not_Found.json b/adapters/mso-openstack-adapters/src/test/resources/Vserver2_Found_VServer1_Not_Found.json
new file mode 100644
index 0000000..f3dc38d
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/Vserver2_Found_VServer1_Not_Found.json
@@ -0,0 +1,167 @@
+{
+  "auditList": [
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1", 
+        "interfaceName": "test_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2", 
+        "interfaceName": "test_port_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": true, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+    }, 
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c", 
+        "interfaceName": "ssc_1_trusted_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56", 
+        "interfaceName": "ssc_1_service1_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+              "interfaceName": "service1_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }, 
+            {
+              "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+              "interfaceName": "service1_sub_interface_2", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+        "interfaceName": "service1_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+        "interfaceName": "service1_sub_interface_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b", 
+        "interfaceName": "ssc_1_mgmt_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff", 
+        "interfaceName": "ssc_1_mgmt_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4", 
+        "interfaceName": "ssc_1_service2_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+              "interfaceName": "service2_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+        "interfaceName": "service2_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8", 
+        "interfaceName": "ssc_1_int_ha_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+    }
+  ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Vservers_Not_Found.json b/adapters/mso-openstack-adapters/src/test/resources/Vservers_Not_Found.json
new file mode 100644
index 0000000..d9089dc
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/Vservers_Not_Found.json
@@ -0,0 +1,167 @@
+{
+  "auditList": [
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1", 
+        "interfaceName": "test_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2", 
+        "interfaceName": "test_port_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+    }, 
+    {
+      "aaiObject": {
+        "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+      }, 
+      "aaiObjectType": "vserver", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c", 
+        "interfaceName": "ssc_1_trusted_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56", 
+        "interfaceName": "ssc_1_service1_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+              "interfaceName": "service1_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }, 
+            {
+              "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+              "interfaceName": "service1_sub_interface_2", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb", 
+        "interfaceName": "service1_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a", 
+        "interfaceName": "service1_sub_interface_2", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b", 
+        "interfaceName": "ssc_1_mgmt_port_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff", 
+        "interfaceName": "ssc_1_mgmt_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4", 
+        "interfaceName": "ssc_1_service2_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": [], 
+        "linterfaces": {
+          "linterface": [
+            {
+              "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+              "interfaceName": "service2_sub_interface_1", 
+              "l3InterfaceIpv4AddressList": [], 
+              "l3InterfaceIpv6AddressList": []
+            }
+          ]
+        }
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81", 
+        "interfaceName": "service2_sub_interface_1", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "sub-l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+    }, 
+    {
+      "aaiObject": {
+        "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8", 
+        "interfaceName": "ssc_1_int_ha_port_0", 
+        "l3InterfaceIpv4AddressList": [], 
+        "l3InterfaceIpv6AddressList": []
+      }, 
+      "aaiObjectType": "l-interface", 
+      "doesObjectExist": false, 
+      "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+    }
+  ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/application-test.yaml b/adapters/mso-openstack-adapters/src/test/resources/application-test.yaml
index 8da26e9..694aeda 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/application-test.yaml
+++ b/adapters/mso-openstack-adapters/src/test/resources/application-test.yaml
@@ -77,6 +77,10 @@
     core-pool-size: 50
     max-pool-size: 50
     queue-capacity: 500
+    workflow:
+  topics:
+    retryMultiplier: 60000
+    retrySequence: 1, 1, 2, 3, 5, 8, 13, 20
 spring:
   datasource:
     url: jdbc:mariadb://localhost:3307/catalogdb
