diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/AndreyTest.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/AndreyTest.java
index 8a5fe91..6e36e1b 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/AndreyTest.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/AndreyTest.java
@@ -82,21 +82,45 @@
         long startTime = System.currentTimeMillis();
         long estimatedTime = System.currentTimeMillis() - startTime; 
         System.out.println("Time to init factory " + estimatedTime);
-        String fileStr1 = "src//test//resources//CI//csars//service-ServiceFdnt-csar-0904-2.csar";//ToscaParserStubsTest.class.getClassLoader().getResource("csars/service-ServiceFdnt-csar-0904-2.csar").getFile();
+        String fileStr1 = "C:\\Users\\ys9693\\NewDownload\\2016-006_vvm_vvm_30_1607_e2e.zip.csar";//ToscaParserStubsTest.class.getClassLoader().getResource("csars/service-ServiceFdnt-csar-0904-2.csar").getFile();
         File file1 = new File(fileStr1);
         String name = file1.getName();
         String absolutePath = file1.getAbsolutePath();
         ISdcCsarHelper fdntCsarHelper = factory.getSdcCsarHelper(file1.getAbsolutePath());
         
         List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
-        serviceVfList.size();
+        System.out.println("serviceVfList----->" + serviceVfList);
+        
+        List<NodeTemplate> serviceNodeTemplatesByTypeVF = fdntCsarHelper.getServiceNodeTemplatesByType("VF");
+        System.out.println("serviceNodeTemplatesByTypeVF----->" + serviceNodeTemplatesByTypeVF);
+        List<NodeTemplate> serviceNodeTemplatesByTypeVFC = fdntCsarHelper.getServiceNodeTemplatesByType("VFC");
+        System.out.println("serviceNodeTemplatesByTypeVFC -------->" + serviceNodeTemplatesByTypeVFC);
+        List<NodeTemplate> serviceNodeTemplatesByTypeVL = fdntCsarHelper.getServiceNodeTemplatesByType("VL");
+        System.out.println("serviceNodeTemplatesByTypeVL------>" +serviceNodeTemplatesByTypeVL);
+        List<NodeTemplate> serviceNodeTemplatesByTypeCP = fdntCsarHelper.getServiceNodeTemplatesByType("CP");
+        System.out.println("serviceNodeTemplatesByTypeCP ---------->" + serviceNodeTemplatesByTypeCP);        
+        
+        System.out.println("getMetaData"+ serviceVfList.get(0).getMetaData());
+        System.out.println("UUID"+ serviceVfList.get(0).getMetaData().getValue("UUID"));
+        System.out.println("customizationUUID"+ serviceVfList.get(0).getMetaData().getValue("customizationUUID"));
+        System.out.println("serviceVfList.size()------->"+  serviceVfList.size());
+        System.out.println("getCpListByVf--------->" + fdntCsarHelper.getCpListByVf(serviceVfList.get(0).getMetaData().getValue("customizationUUID")));
+        List<NodeTemplate> vfcListByVf = fdntCsarHelper.getVfcListByVf(serviceVfList.get(0).getMetaData().getValue("customizationUUID"));
+        System.out.println("getVfcListByVf--------->" + vfcListByVf);
+        for (NodeTemplate nodeTemplate : vfcListByVf) {
+			
+        	System.out.println("----> getCpPropertiesFromVfc--------->" + fdntCsarHelper.getCpPropertiesFromVfc(nodeTemplate));
+		}
+        
         for (NodeTemplate nodeTemplate : serviceVfList) {
+        	System.out.println("NodeName---->"+nodeTemplate.getName());
+        	System.out.println("getTypeOfNodeTemplate--------->" + fdntCsarHelper.getTypeOfNodeTemplate(nodeTemplate));
+        	System.out.println("getServiceInputLeafValueOfDefault--------->" + fdntCsarHelper.getServiceInputLeafValueOfDefault(serviceVfList.get(0).getMetaData().getValue("customizationUUID")));
+        	System.out.println("getVfModulesByVf--------->" + fdntCsarHelper.getVfModulesByVf(nodeTemplate.getMetaData().getValue("customizationUUID")));
         	ArrayList<Object> requirements = nodeTemplate.getRequirements();
         	requirements.size();
         	LinkedHashMap<String, Capability> capabilities = nodeTemplate.getCapabilities();
         	ArrayList<Object> requirements2 = nodeTemplate.getRequirements();
-        	
-        	System.out.println(nodeTemplate.getName());
 		}
         
 	}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/validation/AuditValidationUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/validation/AuditValidationUtils.java
index 7a5b7bb..f4d9fe3 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/validation/AuditValidationUtils.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/validation/AuditValidationUtils.java
@@ -91,13 +91,20 @@
 
 	}
 
-	public static String buildAuditDescription(ErrorInfo errorInfo, List<String> variables) {
+	public static String buildAuditDescription(ErrorInfo errorInfo, List<String> errorVariablesList) {
 
 		String auditDesc = errorInfo.getMessageId() + ": " + errorInfo.getMessage();
-		if(! variables.isEmpty() && variables.get(0) != null && ! variables.get(0).isEmpty()){
-			for (int i = 0; i < variables.size(); i++) {
+//		if(! variables.isEmpty() && variables.get(0) != null && ! variables.get(0).isEmpty()){
+//			for (int i = 0; i < variables.size(); i++) {
+//				if (auditDesc.contains("%" + (i + 1))) {
+//					auditDesc = auditDesc.replace("%" + (i + 1), variables.get(i));
+//				}
+//			}
+//		}
+		if(! errorVariablesList.isEmpty() && errorVariablesList.get(0) != null){
+			for (int i = 0; i < errorVariablesList.size(); i++) {
 				if (auditDesc.contains("%" + (i + 1))) {
-					auditDesc = auditDesc.replace("%" + (i + 1), variables.get(i));
+					auditDesc = auditDesc.replace("%" + (i + 1), errorVariablesList.get(i));
 				}
 			}
 		}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/CRUDExternalAPI.java b/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/CRUDExternalAPI.java
index 0ba357e..a680990 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/CRUDExternalAPI.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/CRUDExternalAPI.java
@@ -129,7 +129,7 @@
 		super(name, CRUDExternalAPI.class.getName());
 	}
 	
-	@DataProvider(name="uploadArtifactOnVfcVlCpViaExternalAPI" , parallel=false) 
+	@DataProvider(name="uploadArtifactOnVfcVlCpViaExternalAPI" , parallel=true) 
 	public static Object[][] dataProviderUploadArtifactOnVfcVlCpViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.VFC},
@@ -232,7 +232,7 @@
 		uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE, chosenLifeCycleState, artifactType, resourceTypeEnum);
 	}
 	
-	@DataProvider(name="uploadArtifactOnVFViaExternalAPI", parallel=false) 
+	@DataProvider(name="uploadArtifactOnVFViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUploadArtifactOnVFViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "DCAE_JSON"},
@@ -288,7 +288,7 @@
 	}
 	
 	
-	@DataProvider(name="uploadArtifactOnServiceViaExternalAPI" , parallel=false) 
+	@DataProvider(name="uploadArtifactOnServiceViaExternalAPI" , parallel=true) 
 	public static Object[][] dataProviderUploadArtifactOnServiceViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
@@ -317,7 +317,7 @@
 	}
 	
 	
-	@DataProvider(name="uploadArtifactOnServiceViaExternalAPIIncludingDistribution", parallel=false) 
+	@DataProvider(name="uploadArtifactOnServiceViaExternalAPIIncludingDistribution", parallel=true) 
 	public static Object[][] dataProviderUploadArtifactOnServiceViaExternalAPIIncludingDistribution() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
@@ -587,7 +587,7 @@
 	
 	
 	
-	@DataProvider(name="uploadArtifactOnRIViaExternalAPI", parallel=false) 
+	@DataProvider(name="uploadArtifactOnRIViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUploadArtifactOnRIViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
@@ -633,7 +633,7 @@
 	
 	
 	
-	@DataProvider(name="uploadArtifactOnVfcVlCpRIViaExternalAPI", parallel=false) 
+	@DataProvider(name="uploadArtifactOnVfcVlCpRIViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUploadArtifactOnVfcVlCpRIViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
@@ -735,7 +735,7 @@
 	
 	
 	
-	@DataProvider(name="uploadInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI", parallel=false) 
+	@DataProvider(name="uploadInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUploadInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI() {
 		return new Object[][] {
 			
@@ -821,13 +821,13 @@
 			
 			{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithSameLabel"},
 			{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithSameLabel"},
-			{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
+//	DE306360		{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
 			{LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithSameLabel"},
 			{LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithSameLabel"},
-			{LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
+//	DE306360		{LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
 			{LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithSameLabel"},
 			{LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithSameLabel"},
-			{LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
+//	DE306360		{LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
 			
 			{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidCheckSum"},
 			{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidCheckSum"},
@@ -1140,7 +1140,7 @@
 	
 	
 	
-	@DataProvider(name="uploadArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset", parallel=false) 
+	@DataProvider(name="uploadArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset", parallel=true) 
 	public static Object[][] dataProviderUploadArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset() {
 		return new Object[][] {
 			{ComponentTypeEnum.RESOURCE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT},
@@ -1223,7 +1223,7 @@
 	
 	
 	
-	@DataProvider(name="uploadArtifactOnAssetWhichNotExist", parallel=false) 
+	@DataProvider(name="uploadArtifactOnAssetWhichNotExist", parallel=true) 
 	public static Object[][] dataProviderUploadArtifactOnAssetWhichNotExist() {
 		return new Object[][] {
 			{ComponentTypeEnum.SERVICE},
@@ -1273,7 +1273,7 @@
 	}
 	
 	
-	@DataProvider(name="uploadArtifactOnAssetWhichInInvalidStateForUploading", parallel=false) 
+	@DataProvider(name="uploadArtifactOnAssetWhichInInvalidStateForUploading", parallel=true) 
 	public static Object[][] dataProviderUploadArtifactOnAssetWhichInInvalidStateForUploading() {
 		return new Object[][] {
 			{ComponentTypeEnum.SERVICE},
@@ -1318,7 +1318,7 @@
 	////////////////////////////////////////////////////////////////////////////////////
 	////////////////////////////////////////////////////////////////////////////////////
 
-	@DataProvider(name="updateArtifactForServiceViaExternalAPI", parallel=false) 
+	@DataProvider(name="updateArtifactForServiceViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUpdateArtifactForServiceViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
@@ -1361,7 +1361,7 @@
 		}
 	}
 	
-	@DataProvider(name="updateArtifactForVFViaExternalAPI", parallel=false) 
+	@DataProvider(name="updateArtifactForVFViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUpdateArtifactForVFViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "DCAE_JSON"},
@@ -1423,7 +1423,7 @@
 		}
 	}
 	
-	@DataProvider(name="updateArtifactForVfcVlCpViaExternalAPI", parallel=false) 
+	@DataProvider(name="updateArtifactForVfcVlCpViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUpdateArtifactForVfcVlCpViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.VFC},
@@ -1533,7 +1533,7 @@
 		}
 	}
 	
-	@DataProvider(name="updateArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI", parallel=false) 
+	@DataProvider(name="updateArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUpdateArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI() {
 		return new Object[][] {
 			{ResourceTypeEnum.VFC},
@@ -1575,7 +1575,7 @@
 	
 	
 	
-	@DataProvider(name="updateArtifactOnRIViaExternalAPI", parallel=false) 
+	@DataProvider(name="updateArtifactOnRIViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUpdateArtifactOnRIViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", null},
@@ -1625,7 +1625,7 @@
 	
 	
 	
-	@DataProvider(name="updateArtifactOnVfcVlCpRIViaExternalAPI", parallel=false) 
+	@DataProvider(name="updateArtifactOnVfcVlCpRIViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUpdateArtifactOnVfcVlCpRIViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
@@ -1741,7 +1741,7 @@
 	
 	
 	
-	@DataProvider(name="updateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset", parallel=false) 
+	@DataProvider(name="updateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset", parallel=true) 
 	public static Object[][] dataProviderUpdateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset() {
 		return new Object[][] {
 			{ComponentTypeEnum.RESOURCE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
@@ -1803,7 +1803,7 @@
 	}
 	
 	
-	@DataProvider(name="updateArtifactOnAssetWhichNotExist", parallel=false) 
+	@DataProvider(name="updateArtifactOnAssetWhichNotExist", parallel=true) 
 	public static Object[][] dataProviderUpdateArtifactOnAssetWhichNotExist() {
 		return new Object[][] {
 			{ComponentTypeEnum.SERVICE, "OTHER", null},
@@ -1866,7 +1866,7 @@
 	}
 	
 	
-	@DataProvider(name="updateArtifactOnAssetWhichInInvalidStateForUploading", parallel=false) 
+	@DataProvider(name="updateArtifactOnAssetWhichInInvalidStateForUploading", parallel=true) 
 	public static Object[][] dataProviderUpdateProviderDeleteArtifactOnAssetWhichInInvalidStateForUploading() {
 		return new Object[][] {
 			{ComponentTypeEnum.SERVICE, "OTHER"},
@@ -1891,7 +1891,7 @@
 	
 	
 	
-	@DataProvider(name="updateInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI", parallel=false) 
+	@DataProvider(name="updateInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderUpdateInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidCheckSum"},
@@ -2545,7 +2545,7 @@
 	////////////////////////////////////////////////////////////////////////////////////
 	////////////////////////////////////////////////////////////////////////////////////
 	////////////////////////////////////////////////////////////////////////////////////
-	@DataProvider(name="deleteArtifactForServiceViaExternalAPI", parallel=false) 
+	@DataProvider(name="deleteArtifactForServiceViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderDeleteArtifactForServiceViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
@@ -2582,7 +2582,7 @@
 		deleteArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.SERVICE, lifeCycleStatesEnum);
 	}
 	
-	@DataProvider(name="deleteArtifactForVFViaExternalAPI", parallel=false) 
+	@DataProvider(name="deleteArtifactForVFViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderDeleteArtifactForVFViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "DCAE_JSON"},
@@ -2638,7 +2638,7 @@
 		deleteArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE, lifeCycleStatesEnum);
 	}
 	
-	@DataProvider(name="deleteArtifactForVfcVlCpViaExternalAPI", parallel=false) 
+	@DataProvider(name="deleteArtifactForVfcVlCpViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderDeleteArtifactForVfcVlCpViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.VFC},
@@ -2742,7 +2742,7 @@
 		deleteArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE, lifeCycleStatesEnum);
 	}
 	
-	@DataProvider(name="deleteArtifactOnRIViaExternalAPI", parallel=false) 
+	@DataProvider(name="deleteArtifactOnRIViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderDeleteArtifactOnRIViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", null},
@@ -2781,7 +2781,7 @@
 	}
 	
 	
-	@DataProvider(name="deleteArtifactOnVfcVlCpRIViaExternalAPI", parallel=false) 
+	@DataProvider(name="deleteArtifactOnVfcVlCpRIViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderDeleteArtifactOnVfcVlCpRIViaExternalAPI() {
 		return new Object[][] {
 			{LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
@@ -2882,7 +2882,7 @@
 	}
 	
 	
-	@DataProvider(name="deleteArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset", parallel=false) 
+	@DataProvider(name="deleteArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset", parallel=true) 
 	public static Object[][] dataProviderDeleteArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset() {
 		return new Object[][] {
 			{ComponentTypeEnum.RESOURCE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
@@ -2966,7 +2966,7 @@
 	}
 	
 	
-	@DataProvider(name="deleteArtifactOnAssetWhichNotExist", parallel=false) 
+	@DataProvider(name="deleteArtifactOnAssetWhichNotExist", parallel=true) 
 	public static Object[][] dataProviderDeleteArtifactOnAssetWhichNotExist() {
 		return new Object[][] {
 			{ComponentTypeEnum.SERVICE, "OTHER", null},
@@ -3032,7 +3032,7 @@
 		
 	}
 	
-	@DataProvider(name="deleteArtifactOnAssetWhichInInvalidStateForUploading", parallel=false) 
+	@DataProvider(name="deleteArtifactOnAssetWhichInInvalidStateForUploading", parallel=true) 
 	public static Object[][] dataProviderDeleteArtifactOnAssetWhichInInvalidStateForUploading() {
 		return new Object[][] {
 			{ComponentTypeEnum.SERVICE, "OTHER"},
@@ -3075,7 +3075,7 @@
 	}
 	
 	
-	@DataProvider(name="deleteArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI", parallel=false) 
+	@DataProvider(name="deleteArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI", parallel=true) 
 	public static Object[][] dataProviderDeleteArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI() {
 		return new Object[][] {
 			{ResourceTypeEnum.VFC},
diff --git a/test-apis-ci/src/main/resources/ci/scripts/startTest.sh b/test-apis-ci/src/main/resources/ci/scripts/startTest.sh
index d3c1502..9268d6f 100644
--- a/test-apis-ci/src/main/resources/ci/scripts/startTest.sh
+++ b/test-apis-ci/src/main/resources/ci/scripts/startTest.sh
@@ -88,7 +88,7 @@
 BE_IP=`cat conf/attsdc.yaml | grep catalogBeHost| awk '{print $2}'`
 
 ADD_USERS_SCRIPT="addUsersFromList_new.sh"
-USER_LIST="userList.txt"
+USER_LIST="/conf/userList.txt"
 chmod +x ${ADD_USERS_SCRIPT}
 echo "add users..."
 `./${ADD_USERS_SCRIPT} -ip ${BE_IP} -f ${USER_LIST}`
diff --git a/test-apis-ci/src/main/resources/ci/scripts/userList.txt b/test-apis-ci/src/main/resources/ci/scripts/userList.txt
index 1a2026f..7efe975 100644
--- a/test-apis-ci/src/main/resources/ci/scripts/userList.txt
+++ b/test-apis-ci/src/main/resources/ci/scripts/userList.txt
@@ -1 +1 @@
-export USER_LIST=( "m99121 DESIGNER Carlos Santana carlos@email.com" "cs0008 DESIGNER Carlos Santana carlos@email.com" "kb0004 TESTER Carlos Santana carlos@email.com" "af0006 OPS Carlos Santana carlos@email.com" "ah0002 GOVERNOR Carlos Santana carlos@email.com" "m08740 DESIGNER Carlos Santana carlos@email.com" "m99124 TESTER Carlos Santana carlos@email.com" "m08743 TESTER Carlos Santana carlos@email.com" "m99123 OPS Carlos Santana carlos@email.com" "m08742 OPS" "m99125 GOVERNOR Carlos Santana carlos@email.com" "m08744 GOVERNOR Carlos Santana carlos@email.com" "m99122 ADMIN Carlos Santana carlos@email.com" "m08741 ADMIN Carlos Santana carlos@email.com" "m99126 PRODUCT_STRATEGIST Carlos Santana carlos@email.com" "m08745 PRODUCT_STRATEGISTCarlos Santana carlos@email.com" "m99127 PRODUCT_MANAGER Carlos Santana carlos@email.com" "m08746 PRODUCT_MANAGER Carlos Santana carlos@email.com" "md9897 DESIGNER Carlos Santana carlos@email.com" "m08748 DESIGNER Carlos Santana carlos@email.com" "m08749 TESTER Carlos Santana carlos@email.com" "be0695 DESIGNER Carlos Santana carlos@email.com" "er434w DESIGNER Carlos Santana carlos@email.com" "ya107f DESIGNER Carlos Santana carlos@email.com" "ds200p DESIGNER Carlos Santana carlos@email.com" "ak0333 ADMIN Carlos Santana carlos@email.com" "th0695 DESIGNER Carlos Santana carlos@email.com" "al714h DESIGNER Carlos Santana carlos@email.com" "ys9693 DESIGNER Carlos Santana carlos@email.com" "ss8214 DESIGNER Carlos Santana carlos@email.com" "bt750h DESIGNER Carlos Santana carlos@email.com" "rp955r DESIGNER Carlos Santana carlos@email.com" "ez6451 DESIGNER Carlos Santana carlos@email.com" "ia901h DESIGNER Carlos Santana carlos@email.com" "ah7840 DESIGNER Carlos Santana carlos@email.com" "ea394r DESIGNER Carlos Santana carlos@email.com" "ms656r DESIGNER Carlos Santana carlos@email.com" "ml636r DESIGNER Carlos Santana carlos@email.com" "it1721 DESIGNER Carlos Santana carlos@email.com" "sg473v DESIGNER Carlos Santana carlos@email.com" "sa997j DESIGNER Carlos Santana carlos@email.com" "az2497 DESIGNER Carlos Santana carlos@email.com" "ys189e DESIGNER Carlos Santana carlos@email.com" "ig642y DESIGNER Carlos Santana carlos@email.com")
\ No newline at end of file
+export USER_LIST=( "m99121 DESIGNER Carlos Santana carlos@email.com" "cs0008 DESIGNER Carlos Santana carlos@email.com" "jm0007 TESTER Johnny Depp carlos@email.com" "gv0001 GOVERNOR David Shadmi carlos@email.com" "op0001 DESIGNER Aretha Franklin carlos@email.com" "ps0001 PRODUCT_STRATEGIST Eden Rozin carlos@email.com" "pm0001 PRODUCT_MANAGER Teddy Isashar carlos@email.com" "me0009 DESIGNER Melissa Etheridge carlos@email.com" "jm0007 TESTER Johnny Depp carlos@email.com" "af0006 OPS Carlos Santana carlos@email.com" "ah0002 GOVERNOR Carlos Santana carlos@email.com" "m08740 DESIGNER Carlos Santana carlos@email.com" "m99124 TESTER Carlos Santana carlos@email.com" "m08743 TESTER Carlos Santana carlos@email.com" "m99123 OPS Carlos Santana carlos@email.com" "m08742 OPS" "m99125 GOVERNOR Carlos Santana carlos@email.com" "m08744 GOVERNOR Carlos Santana carlos@email.com" "m99122 ADMIN Carlos Santana carlos@email.com" "m08741 ADMIN Carlos Santana carlos@email.com" "m99126 PRODUCT_STRATEGIST Carlos Santana carlos@email.com" "m08745 PRODUCT_STRATEGISTCarlos Santana carlos@email.com" "m99127 PRODUCT_MANAGER Carlos Santana carlos@email.com" "m08746 PRODUCT_MANAGER Carlos Santana carlos@email.com" "md9897 DESIGNER Carlos Santana carlos@email.com" "m08748 DESIGNER Carlos Santana carlos@email.com" "m08749 TESTER Carlos Santana carlos@email.com" "be0695 DESIGNER Carlos Santana carlos@email.com" "er434w DESIGNER Carlos Santana carlos@email.com" "ya107f DESIGNER Carlos Santana carlos@email.com" "ds200p DESIGNER Carlos Santana carlos@email.com" "ak0333 ADMIN Carlos Santana carlos@email.com" "th0695 DESIGNER Carlos Santana carlos@email.com" "al714h DESIGNER Carlos Santana carlos@email.com" "ys9693 DESIGNER Carlos Santana carlos@email.com" "ss8214 DESIGNER Carlos Santana carlos@email.com" "bt750h DESIGNER Carlos Santana carlos@email.com" "rp955r DESIGNER Carlos Santana carlos@email.com" "ez6451 DESIGNER Carlos Santana carlos@email.com" "ia901h DESIGNER Carlos Santana carlos@email.com" "ah7840 DESIGNER Carlos Santana carlos@email.com" "ea394r DESIGNER Carlos Santana carlos@email.com" "ms656r DESIGNER Carlos Santana carlos@email.com" "ml636r DESIGNER Carlos Santana carlos@email.com" "it1721 DESIGNER Carlos Santana carlos@email.com" "sg473v DESIGNER Carlos Santana carlos@email.com" "sa997j DESIGNER Carlos Santana carlos@email.com" "az2497 DESIGNER Carlos Santana carlos@email.com" "ys189e DESIGNER Carlos Santana carlos@email.com" "ig642y DESIGNER Carlos Santana carlos@email.com")
\ No newline at end of file
diff --git a/test-apis-ci/src/main/resources/ci/testSuites/externalAPIs.xml b/test-apis-ci/src/main/resources/ci/testSuites/externalAPIs.xml
index 3505dad..275d07e 100644
--- a/test-apis-ci/src/main/resources/ci/testSuites/externalAPIs.xml
+++ b/test-apis-ci/src/main/resources/ci/testSuites/externalAPIs.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite name="externalApis" configfailurepolicy="continue" verbose="2" >
-	<test name="ExternalApis">
+<suite name="externalApis" configfailurepolicy="continue" verbose="2" parallel="methods" thread-count="2" data-provider-thread-count="2">
+	<test name="ExternalApis"> 
 		<classes>	
 			
 			<class name="org.openecomp.sdc.externalApis.VFCMTExternalAPI"/>
