You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/04/09 03:57:10 UTC

airavata git commit: adding more customizations to test framework - AIRAVATA-1656

Repository: airavata
Updated Branches:
  refs/heads/master bf0fddb05 -> fdb3fc918


adding more customizations to test framework - AIRAVATA-1656


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/fdb3fc91
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/fdb3fc91
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/fdb3fc91

Branch: refs/heads/master
Commit: fdb3fc918c771c1a7735891af2cd0e760039e7ad
Parents: bf0fddb
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Wed Apr 8 21:57:01 2015 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Wed Apr 8 21:57:01 2015 -0400

----------------------------------------------------------------------
 .../test-suite/multi-tenanted-airavata/README   |   2 +-
 .../test-suite/multi-tenanted-airavata/pom.xml  |  29 ++++
 .../ApplicationRegister.java                    | 147 +++++++++++--------
 .../ComputeResourceRegister.java                |   2 +-
 .../ExperimentExecution.java                    | 140 ++++++++++--------
 .../FrameworkBootstrapping.java                 |   2 +-
 .../multitenantedairavata/GatewayRegister.java  |  23 ++-
 .../utils/FrameworkUtils.java                   |  54 +++++++
 .../utils/TestFrameworkConstants.java           |   3 +
 .../main/resources/test-framework.properties    |   3 +
 10 files changed, 275 insertions(+), 130 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/README
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/README b/modules/test-suite/multi-tenanted-airavata/README
index da5abd2..b1e8398 100644
--- a/modules/test-suite/multi-tenanted-airavata/README
+++ b/modules/test-suite/multi-tenanted-airavata/README
@@ -45,7 +45,7 @@ How to run
         * result.file.location
         * Amber input file locations (02_Heat.rst_location, 03_Prod.in_location, prmtop_location)
 3. To run the jar, in the command line type :
-        java -Xmx1024m -jar multi-tenanted-airavata-0.15-SNAPSHOT-jar-with-dependencies.jar -regApps
+        java -cp ./:./resources:multi-tenanted-airavata-0.15-SNAPSHOT-jar-with-dependencies.jar org.apache.airavata.testsuite.multitenantedairavata.FrameworkBootstrapping -regApps
 
         You can provide different parameters.
             -regApps = to register gateways, generate SSH keys, register applications

http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/pom.xml
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/pom.xml b/modules/test-suite/multi-tenanted-airavata/pom.xml
index 9068996..a853d35 100644
--- a/modules/test-suite/multi-tenanted-airavata/pom.xml
+++ b/modules/test-suite/multi-tenanted-airavata/pom.xml
@@ -98,4 +98,33 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>org.apache.airavata.testsuite.multitenantedairavata.FrameworkBootstrapping</mainClass>
+                        </manifest>
+                        <manifestEntries>
+                            <Class-Path>./resources/</Class-Path>
+                        </manifestEntries>
+                    </archive>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
+                        <phase>package</phase> <!-- bind to the packaging phase -->
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>

http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java
index fa87d83..0a92f2e 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java
@@ -30,6 +30,7 @@ import org.apache.airavata.model.appcatalog.appinterface.DataType;
 import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
 import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
 import org.apache.airavata.model.workspace.Gateway;
+import org.apache.airavata.testsuite.multitenantedairavata.utils.FrameworkUtils;
 import org.apache.airavata.testsuite.multitenantedairavata.utils.TestFrameworkConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,6 +49,7 @@ public class ApplicationRegister {
     private String stampedeResourceId;
     private String trestlesResourceId;
     private String br2ResourceId;
+    private List<String> gatewaysToAvoid;
 
 
     public ApplicationRegister(Airavata.Client airavata) throws Exception {
@@ -55,6 +57,8 @@ public class ApplicationRegister {
         allGateways = getAllGateways(airavata);
         applicationInterfaceListPerGateway = new HashMap<String, String>();
         applicationDeployementListPerGateway = new HashMap<String, String>();
+        FrameworkUtils frameworkUtils = FrameworkUtils.getInstance();
+        gatewaysToAvoid = frameworkUtils.getGatewayListToAvoid();
     }
 
     public List<Gateway> getAllGateways(Airavata.Client client) throws Exception{
@@ -84,42 +88,52 @@ public class ApplicationRegister {
     }
 
     protected void addAmberApplication () throws Exception{
-        for (Gateway gateway : allGateways){
-            // add amber module
-            String amberModuleId = airavata.registerApplicationModule(gateway.getGatewayId(),
-                    createApplicationModule(TestFrameworkConstants.AppcatalogConstants.AMBER_APP_NAME, "12.0", TestFrameworkConstants.AppcatalogConstants.AMBER_DESCRIPTION));
-            System.out.println("Amber Module Id " + amberModuleId);
-
-            // add amber interface
-            String amberInterfaceId = registerAmberInterface(gateway, amberModuleId);
-            applicationInterfaceListPerGateway.put(amberInterfaceId, gateway.getGatewayId());
-
-            // add amber deployment
-            List<String> moduleLoadCMDs = new ArrayList<String>();
-            moduleLoadCMDs.add("module load amber");
-            ApplicationDeploymentDescription amberStampedeDeployment = createApplicationDeployment(amberModuleId, stampedeResourceId,
-                    "/opt/apps/intel13/mvapich2_1_9/amber/12.0/bin/sander.MPI -O", ApplicationParallelismType.MPI,
-                    TestFrameworkConstants.AppcatalogConstants.AMBER_DESCRIPTION, moduleLoadCMDs, null, null);
-            String amberStampedeAppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),amberStampedeDeployment);
-
-            String amberTrestlesAppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
-                    createApplicationDeployment(amberModuleId, trestlesResourceId,
-                            "/opt/amber/bin/sander.MPI -O", ApplicationParallelismType.MPI,
-                            TestFrameworkConstants.AppcatalogConstants.AMBER_DESCRIPTION, moduleLoadCMDs, null, null));
-
-            List<String> amberModuleLoadCMDsBr2 = new ArrayList<String>();
-            amberModuleLoadCMDsBr2.add("module load amber/gnu/mpi/12");
-            amberModuleLoadCMDsBr2.add("module swap PrgEnv-cray PrgEnv-gnu");
-            String amberBr2AppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
-                    createApplicationDeployment(amberModuleId, br2ResourceId,
-                            "/N/soft/cle4/amber/gnu/mpi/12/amber12/bin/sander.MPI -O", ApplicationParallelismType.MPI,
-                            TestFrameworkConstants.AppcatalogConstants.AMBER_DESCRIPTION, amberModuleLoadCMDsBr2, null, null));
-
-            applicationDeployementListPerGateway.put(amberStampedeAppDeployId, gateway.getGatewayId());
-            applicationDeployementListPerGateway.put(amberTrestlesAppDeployId, gateway.getGatewayId());
-            applicationDeployementListPerGateway.put(amberBr2AppDeployId, gateway.getGatewayId());
+        for (Gateway gateway : allGateways) {
+                boolean isgatewayValid = true;
+                for (String ovoidGateway : gatewaysToAvoid){
+                    if (gateway.getGatewayId().equals(ovoidGateway)){
+                        isgatewayValid = false;
+                        break;
+                    }
+                }
+                if (isgatewayValid) {
+                    // add amber module
+                    String amberModuleId = airavata.registerApplicationModule(gateway.getGatewayId(),
+                            createApplicationModule(TestFrameworkConstants.AppcatalogConstants.AMBER_APP_NAME, "12.0", TestFrameworkConstants.AppcatalogConstants.AMBER_DESCRIPTION));
+                    System.out.println("Amber Module Id " + amberModuleId);
+
+                    // add amber interface
+                    String amberInterfaceId = registerAmberInterface(gateway, amberModuleId);
+                    applicationInterfaceListPerGateway.put(amberInterfaceId, gateway.getGatewayId());
+
+                    // add amber deployment
+                    List<String> moduleLoadCMDs = new ArrayList<String>();
+                    moduleLoadCMDs.add("module load amber");
+                    ApplicationDeploymentDescription amberStampedeDeployment = createApplicationDeployment(amberModuleId, stampedeResourceId,
+                            "/opt/apps/intel13/mvapich2_1_9/amber/12.0/bin/sander.MPI -O", ApplicationParallelismType.MPI,
+                            TestFrameworkConstants.AppcatalogConstants.AMBER_DESCRIPTION, moduleLoadCMDs, null, null);
+                    String amberStampedeAppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(), amberStampedeDeployment);
+
+                    String amberTrestlesAppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
+                            createApplicationDeployment(amberModuleId, trestlesResourceId,
+                                    "/opt/amber/bin/sander.MPI -O", ApplicationParallelismType.MPI,
+                                    TestFrameworkConstants.AppcatalogConstants.AMBER_DESCRIPTION, moduleLoadCMDs, null, null));
+
+                    List<String> amberModuleLoadCMDsBr2 = new ArrayList<String>();
+                    amberModuleLoadCMDsBr2.add("module load amber/gnu/mpi/12");
+                    amberModuleLoadCMDsBr2.add("module swap PrgEnv-cray PrgEnv-gnu");
+                    String amberBr2AppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
+                            createApplicationDeployment(amberModuleId, br2ResourceId,
+                                    "/N/soft/cle4/amber/gnu/mpi/12/amber12/bin/sander.MPI -O", ApplicationParallelismType.MPI,
+                                    TestFrameworkConstants.AppcatalogConstants.AMBER_DESCRIPTION, amberModuleLoadCMDsBr2, null, null));
+
+                    applicationDeployementListPerGateway.put(amberStampedeAppDeployId, gateway.getGatewayId());
+                    applicationDeployementListPerGateway.put(amberTrestlesAppDeployId, gateway.getGatewayId());
+                    applicationDeployementListPerGateway.put(amberBr2AppDeployId, gateway.getGatewayId());
+                }
         }
 
+
     }
 
     private String registerAmberInterface(Gateway gateway, String amberModuleId) throws org.apache.thrift.TException {
@@ -187,34 +201,43 @@ public class ApplicationRegister {
 
     protected void addEchoApplication() throws Exception{
         for (Gateway gateway : allGateways){
-            // add echo module
-            String echoModuleId = airavata.registerApplicationModule(gateway.getGatewayId(),
-                    createApplicationModule(TestFrameworkConstants.AppcatalogConstants.ECHO_NAME, "1.0", TestFrameworkConstants.AppcatalogConstants.ECHO_DESCRIPTION));
-            System.out.println("Echo Module Id " + echoModuleId);
-
-            // add amber interface
-            String echoInterfaceId = registerEchoInterface(gateway, echoModuleId);
-            applicationInterfaceListPerGateway.put(echoInterfaceId, gateway.getGatewayId());
-
-            // add amber deployment
-            String echoStampedeAppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
-                    createApplicationDeployment(echoModuleId, stampedeResourceId,
-                            "/home1/01437/ogce/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL,
-                            TestFrameworkConstants.AppcatalogConstants.ECHO_DESCRIPTION, null, null, null));
-
-            String echoTrestlesAppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
-                    createApplicationDeployment(echoModuleId, trestlesResourceId,
-                            "/home/ogce/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL,
-                            TestFrameworkConstants.AppcatalogConstants.ECHO_DESCRIPTION, null, null, null));
-
-            String echoBr2AppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
-                    createApplicationDeployment(echoModuleId, br2ResourceId,
-                            "/N/u/cgateway/BigRed2/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL,
-                            TestFrameworkConstants.AppcatalogConstants.ECHO_DESCRIPTION, null, null, null));
-
-            applicationDeployementListPerGateway.put(echoStampedeAppDeployId, gateway.getGatewayId());
-            applicationDeployementListPerGateway.put(echoTrestlesAppDeployId, gateway.getGatewayId());
-            applicationDeployementListPerGateway.put(echoBr2AppDeployId, gateway.getGatewayId());
+            boolean isgatewayValid = true;
+            for (String ovoidGateway : gatewaysToAvoid){
+                if (gateway.getGatewayId().equals(ovoidGateway)){
+                    isgatewayValid = false;
+                    break;
+                }
+            }
+            if (isgatewayValid) {
+                // add echo module
+                String echoModuleId = airavata.registerApplicationModule(gateway.getGatewayId(),
+                        createApplicationModule(TestFrameworkConstants.AppcatalogConstants.ECHO_NAME, "1.0", TestFrameworkConstants.AppcatalogConstants.ECHO_DESCRIPTION));
+                System.out.println("Echo Module Id " + echoModuleId);
+
+                // add amber interface
+                String echoInterfaceId = registerEchoInterface(gateway, echoModuleId);
+                applicationInterfaceListPerGateway.put(echoInterfaceId, gateway.getGatewayId());
+
+                // add amber deployment
+                String echoStampedeAppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
+                        createApplicationDeployment(echoModuleId, stampedeResourceId,
+                                "/home1/01437/ogce/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL,
+                                TestFrameworkConstants.AppcatalogConstants.ECHO_DESCRIPTION, null, null, null));
+
+                String echoTrestlesAppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
+                        createApplicationDeployment(echoModuleId, trestlesResourceId,
+                                "/home/ogce/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL,
+                                TestFrameworkConstants.AppcatalogConstants.ECHO_DESCRIPTION, null, null, null));
+
+                String echoBr2AppDeployId = airavata.registerApplicationDeployment(gateway.getGatewayId(),
+                        createApplicationDeployment(echoModuleId, br2ResourceId,
+                                "/N/u/cgateway/BigRed2/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL,
+                                TestFrameworkConstants.AppcatalogConstants.ECHO_DESCRIPTION, null, null, null));
+
+                applicationDeployementListPerGateway.put(echoStampedeAppDeployId, gateway.getGatewayId());
+                applicationDeployementListPerGateway.put(echoTrestlesAppDeployId, gateway.getGatewayId());
+                applicationDeployementListPerGateway.put(echoBr2AppDeployId, gateway.getGatewayId());
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java
index ebb1451..c6e2513 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java
@@ -109,7 +109,7 @@ public class ComputeResourceRegister {
                 } else if (resourceName.contains("bigred2")) {
                     //Register BigRedII
                     bigredResourceId = registerComputeHost("bigred2.uits.iu.edu", "IU BigRed II Cluster",
-                            ResourceJobManagerType.PBS, "push", "/opt/torque/torque-4.2.3.1/bin/", SecurityProtocol.SSH_KEYS, 22, "aprun -n");
+                            ResourceJobManagerType.PBS, "push", "/opt/torque/torque-5.0.1/bin/", SecurityProtocol.SSH_KEYS, 22, "aprun -n");
                     System.out.println("BigredII Resource Id is " + bigredResourceId);
                 }
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java
index 807dd1d..cc6bca6 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java
@@ -38,6 +38,7 @@ import org.apache.airavata.model.messaging.event.MessageType;
 import org.apache.airavata.model.util.ExperimentModelUtil;
 import org.apache.airavata.model.workspace.Project;
 import org.apache.airavata.model.workspace.experiment.*;
+import org.apache.airavata.testsuite.multitenantedairavata.utils.FrameworkUtils;
 import org.apache.airavata.testsuite.multitenantedairavata.utils.PropertyFileType;
 import org.apache.airavata.testsuite.multitenantedairavata.utils.PropertyReader;
 import org.apache.airavata.testsuite.multitenantedairavata.utils.TestFrameworkConstants;
@@ -62,6 +63,8 @@ public class ExperimentExecution {
     private Map<String, List<Project>> projectsMap;
     private PropertyReader propertyReader;
     private PrintWriter resultWriter;
+    private String testUser;
+    private List<String> gatewaysToAvoid;
 
     public ExperimentExecution(Airavata.Client airavata,
                                Map<String, String> tokenMap ) throws Exception {
@@ -69,6 +72,9 @@ public class ExperimentExecution {
         this.csTokens = tokenMap;
         this.appInterfaceMap = getApplicationMap(tokenMap);
         this.propertyReader = new PropertyReader();
+        FrameworkUtils frameworkUtils = FrameworkUtils.getInstance();
+        testUser = frameworkUtils.getTestUserName();
+        gatewaysToAvoid = frameworkUtils.getGatewayListToAvoid();
         this.projectsMap = getProjects(tokenMap);
         this.experimentsWithTokens = new HashMap<String, String>();
         this.experimentsWithGateway = new HashMap<String, String>();
@@ -118,9 +124,15 @@ public class ExperimentExecution {
         try {
             if (tokenMap != null && !tokenMap.isEmpty()){
                 for (String gatewayId : tokenMap.keySet()){
-                    if (!gatewayId.equals("php_reference_gateway")){
-                        String userName = "testUser_" + gatewayId;
-                        List<Project> allUserProjects = airavata.getAllUserProjects(gatewayId, userName);
+                    boolean isgatewayValid = true;
+                    for (String ovoidGateway : gatewaysToAvoid){
+                        if (gatewayId.equals(ovoidGateway)){
+                            isgatewayValid = false;
+                            break;
+                        }
+                    }
+                    if (isgatewayValid){
+                        List<Project> allUserProjects = airavata.getAllUserProjects(gatewayId, testUser);
                         projectsMap.put(gatewayId, allUserProjects);
                     }
                 }
@@ -287,9 +299,8 @@ public class ExperimentExecution {
                         if (projectsPerGateway != null && !projectsPerGateway.isEmpty()){
                             projectID = projectsPerGateway.get(0).getProjectID();
                         }
-                        String userName = "testUser_" + gatewayId;
                         Experiment simpleExperiment =
-                                ExperimentModelUtil.createSimpleExperiment(projectID, userName, "Amber Experiment", "Amber Experiment run", appId, applicationInputs);
+                                ExperimentModelUtil.createSimpleExperiment(projectID, testUser, "Amber Experiment", "Amber Experiment run", appId, applicationInputs);
                         simpleExperiment.setExperimentOutputs(appOutputs);
                         String experimentId;
                         Map<String, String> computeResources = airavata.getAvailableAppInterfaceComputeResources(appId);
@@ -341,69 +352,76 @@ public class ExperimentExecution {
     public void createEchoExperiment () throws Exception{
         try {
             for (String gatewayId : csTokens.keySet()) {
-                if (!gatewayId.equals("php_reference_gateway")){
-                    String token = csTokens.get(gatewayId);
-                    Map<String, String> appsWithNames = appInterfaceMap.get(gatewayId);
-                    for (String appId : appsWithNames.keySet()) {
-                        String appName = appsWithNames.get(appId);
-                        if (appName.equals(TestFrameworkConstants.AppcatalogConstants.ECHO_NAME)) {
-                            List<InputDataObjectType> applicationInputs = airavata.getApplicationInputs(appId);
-                            List<OutputDataObjectType> appOutputs = airavata.getApplicationOutputs(appId);
-                            for (InputDataObjectType inputDataObjectType : applicationInputs) {
-                                if (inputDataObjectType.getName().equalsIgnoreCase("input_to_Echo")) {
-                                    inputDataObjectType.setValue("Hello World !!!");
+                    boolean isgatewayValid = true;
+                    for (String ovoidGateway : gatewaysToAvoid){
+                        if (gatewayId.equals(ovoidGateway)){
+                            isgatewayValid = false;
+                            break;
+                        }
+                    }
+                    if (isgatewayValid) {
+                        String token = csTokens.get(gatewayId);
+                        Map<String, String> appsWithNames = appInterfaceMap.get(gatewayId);
+                        for (String appId : appsWithNames.keySet()) {
+                            String appName = appsWithNames.get(appId);
+                            if (appName.equals(TestFrameworkConstants.AppcatalogConstants.ECHO_NAME)) {
+                                List<InputDataObjectType> applicationInputs = airavata.getApplicationInputs(appId);
+                                List<OutputDataObjectType> appOutputs = airavata.getApplicationOutputs(appId);
+                                for (InputDataObjectType inputDataObjectType : applicationInputs) {
+                                    if (inputDataObjectType.getName().equalsIgnoreCase("input_to_Echo")) {
+                                        inputDataObjectType.setValue("Hello World !!!");
+                                    }
                                 }
-                            }
 
-                            List<Project> projectsPerGateway = projectsMap.get(gatewayId);
-                            String projectID = null;
-                            if (projectsPerGateway != null && !projectsPerGateway.isEmpty()){
-                                projectID = projectsPerGateway.get(0).getProjectID();
-                            }
-                            Experiment simpleExperiment =
-                                    ExperimentModelUtil.createSimpleExperiment(projectID, "admin", "Echo Experiment", "Echo Experiment run", appId, applicationInputs);
-                            simpleExperiment.setExperimentOutputs(appOutputs);
-                            String experimentId;
-                            Map<String, String> computeResources = airavata.getAvailableAppInterfaceComputeResources(appId);
-                            if (computeResources != null && computeResources.size() != 0) {
-                                for (String id : computeResources.keySet()) {
-                                    String resourceName = computeResources.get(id);
-                                    if (resourceName.equals(TestFrameworkConstants.AppcatalogConstants.TRESTLES_RESOURCE_NAME)) {
-                                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
-                                        UserConfigurationData userConfigurationData = new UserConfigurationData();
-                                        userConfigurationData.setAiravataAutoSchedule(false);
-                                        userConfigurationData.setOverrideManualScheduledParams(false);
-                                        userConfigurationData.setComputationalResourceScheduling(scheduling);
-                                        simpleExperiment.setUserConfigurationData(userConfigurationData);
-                                        experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
-                                        experimentsWithTokens.put(experimentId, token);
-                                        experimentsWithGateway.put(experimentId, gatewayId);
-                                    } else if (resourceName.equals(TestFrameworkConstants.AppcatalogConstants.STAMPEDE_RESOURCE_NAME)) {
-                                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
-                                        UserConfigurationData userConfigurationData = new UserConfigurationData();
-                                        userConfigurationData.setAiravataAutoSchedule(false);
-                                        userConfigurationData.setOverrideManualScheduledParams(false);
-                                        userConfigurationData.setComputationalResourceScheduling(scheduling);
-                                        simpleExperiment.setUserConfigurationData(userConfigurationData);
-                                        experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
-                                        experimentsWithTokens.put(experimentId, token);
-                                        experimentsWithGateway.put(experimentId, gatewayId);
-                                    }else if (resourceName.equals(TestFrameworkConstants.AppcatalogConstants.BR2_RESOURCE_NAME)) {
-                                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
-                                        UserConfigurationData userConfigurationData = new UserConfigurationData();
-                                        userConfigurationData.setAiravataAutoSchedule(false);
-                                        userConfigurationData.setOverrideManualScheduledParams(false);
-                                        userConfigurationData.setComputationalResourceScheduling(scheduling);
-                                        simpleExperiment.setUserConfigurationData(userConfigurationData);
-                                        experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
-                                        experimentsWithTokens.put(experimentId, token);
-                                        experimentsWithGateway.put(experimentId, gatewayId);
+                                List<Project> projectsPerGateway = projectsMap.get(gatewayId);
+                                String projectID = null;
+                                if (projectsPerGateway != null && !projectsPerGateway.isEmpty()) {
+                                    projectID = projectsPerGateway.get(0).getProjectID();
+                                }
+                                Experiment simpleExperiment =
+                                        ExperimentModelUtil.createSimpleExperiment(projectID, "admin", "Echo Experiment", "Echo Experiment run", appId, applicationInputs);
+                                simpleExperiment.setExperimentOutputs(appOutputs);
+                                String experimentId;
+                                Map<String, String> computeResources = airavata.getAvailableAppInterfaceComputeResources(appId);
+                                if (computeResources != null && computeResources.size() != 0) {
+                                    for (String id : computeResources.keySet()) {
+                                        String resourceName = computeResources.get(id);
+                                        if (resourceName.equals(TestFrameworkConstants.AppcatalogConstants.TRESTLES_RESOURCE_NAME)) {
+                                            ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
+                                            UserConfigurationData userConfigurationData = new UserConfigurationData();
+                                            userConfigurationData.setAiravataAutoSchedule(false);
+                                            userConfigurationData.setOverrideManualScheduledParams(false);
+                                            userConfigurationData.setComputationalResourceScheduling(scheduling);
+                                            simpleExperiment.setUserConfigurationData(userConfigurationData);
+                                            experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+                                            experimentsWithTokens.put(experimentId, token);
+                                            experimentsWithGateway.put(experimentId, gatewayId);
+                                        } else if (resourceName.equals(TestFrameworkConstants.AppcatalogConstants.STAMPEDE_RESOURCE_NAME)) {
+                                            ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
+                                            UserConfigurationData userConfigurationData = new UserConfigurationData();
+                                            userConfigurationData.setAiravataAutoSchedule(false);
+                                            userConfigurationData.setOverrideManualScheduledParams(false);
+                                            userConfigurationData.setComputationalResourceScheduling(scheduling);
+                                            simpleExperiment.setUserConfigurationData(userConfigurationData);
+                                            experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+                                            experimentsWithTokens.put(experimentId, token);
+                                            experimentsWithGateway.put(experimentId, gatewayId);
+                                        } else if (resourceName.equals(TestFrameworkConstants.AppcatalogConstants.BR2_RESOURCE_NAME)) {
+                                            ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
+                                            UserConfigurationData userConfigurationData = new UserConfigurationData();
+                                            userConfigurationData.setAiravataAutoSchedule(false);
+                                            userConfigurationData.setOverrideManualScheduledParams(false);
+                                            userConfigurationData.setComputationalResourceScheduling(scheduling);
+                                            simpleExperiment.setUserConfigurationData(userConfigurationData);
+                                            experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+                                            experimentsWithTokens.put(experimentId, token);
+                                            experimentsWithGateway.put(experimentId, gatewayId);
+                                        }
                                     }
                                 }
                             }
                         }
                     }
-                }
 
             }
         }catch (Exception e){

http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java
index 1c03d8e..a3b3825 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java
@@ -67,7 +67,7 @@ public class FrameworkBootstrapping {
                 logger.info("Gateways created...");
                 setup.getGatewayRegister().registerSSHKeys();
                 logger.info("Registered SSH keys to each gateway...");
-                tokens = readTokens();
+//                tokens = readTokens();
                 setup.getComputeResourceRegister().addComputeResources();
                 setup.getComputeResourceRegister().registerGatewayResourceProfile();
                 setup.getApplicationRegister().addApplications();

http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java
index 0059e27..7f40976 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java
@@ -36,6 +36,7 @@ import org.apache.airavata.model.error.AiravataSystemException;
 import org.apache.airavata.model.error.InvalidRequestException;
 import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.model.workspace.Project;
+import org.apache.airavata.testsuite.multitenantedairavata.utils.FrameworkUtils;
 import org.apache.airavata.testsuite.multitenantedairavata.utils.PropertyFileType;
 import org.apache.airavata.testsuite.multitenantedairavata.utils.PropertyReader;
 import org.apache.airavata.testsuite.multitenantedairavata.utils.TestFrameworkConstants;
@@ -55,6 +56,9 @@ public class GatewayRegister {
     private int gatewayCount;
     private Map<String, String> tokenMap;
     private Map<String, String> projectMap;
+    private String testUser;
+    private String testProject;
+    private List<String> gatewaysToAvoid;
 
     public GatewayRegister(Airavata.Client client) throws Exception{
         try {
@@ -62,6 +66,10 @@ public class GatewayRegister {
             this.tokenMap = new HashMap<String, String>();
             this.projectMap = new HashMap<String, String>();
             propertyReader = new PropertyReader();
+            testUser = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TEST_USER, PropertyFileType.TEST_FRAMEWORK);
+            testProject = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TEST_PROJECT, PropertyFileType.TEST_FRAMEWORK);
+            FrameworkUtils frameworkUtils = FrameworkUtils.getInstance();
+            gatewaysToAvoid = frameworkUtils.getGatewayListToAvoid();
         }catch (Exception e){
             logger.error("Error while initializing setup step", e);
             throw new Exception("Error while initializing setup step", e);
@@ -104,8 +112,8 @@ public class GatewayRegister {
 
     public void createProject (String gatewayId) throws Exception{
         Project project = new Project();
-        project.setName("testProj_" + gatewayId);
-        project.setOwner("testUser_" + gatewayId);
+        project.setName(testProject);
+        project.setOwner(testUser);
         String projectId = airavata.createProject(gatewayId, project);
         projectMap.put(projectId, gatewayId);
     }
@@ -130,12 +138,19 @@ public class GatewayRegister {
             SSHCredentialWriter writer = new SSHCredentialWriter(dbUtil);
             List<Gateway> allGateways = airavata.getAllGateways();
             for (Gateway gateway : allGateways){
-                if (!gateway.getGatewayId().equals("php_reference_gateway")){
+                boolean isgatewayValid = true;
+                for (String ovoidGateway : gatewaysToAvoid){
+                    if (gateway.getGatewayId().equals(ovoidGateway)){
+                        isgatewayValid = false;
+                        break;
+                    }
+                }
+                if (isgatewayValid) {
                     SSHCredential sshCredential = new SSHCredential();
                     sshCredential.setGateway(gateway.getGatewayId());
                     String token = TokenGenerator.generateToken(gateway.getGatewayId(), null);
                     sshCredential.setToken(token);
-                    sshCredential.setPortalUserName("testuser");
+                    sshCredential.setPortalUserName(testUser);
                     FileInputStream privateKeyStream = new FileInputStream(privateKeyPath);
                     File filePri = new File(privateKeyPath);
                     byte[] bFilePri = new byte[(int) filePri.length()];

http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/FrameworkUtils.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/FrameworkUtils.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/FrameworkUtils.java
new file mode 100644
index 0000000..cdc1304
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/FrameworkUtils.java
@@ -0,0 +1,54 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *
+*/
+
+package org.apache.airavata.testsuite.multitenantedairavata.utils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class FrameworkUtils {
+    private static PropertyReader propertyReader;
+
+    private static FrameworkUtils ourInstance = new FrameworkUtils();
+
+    public static FrameworkUtils getInstance() {
+        return ourInstance;
+    }
+
+    public FrameworkUtils() {
+        propertyReader = new PropertyReader();
+    }
+
+    public List<String> getGatewayListToAvoid (){
+        String listOfGateways = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.GATEWAYS_TOSKIP, PropertyFileType.TEST_FRAMEWORK);
+        String[] gateways = listOfGateways.split(",");
+        return Arrays.asList(gateways);
+    }
+
+    public String getTestUserName (){
+        return propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TEST_USER, PropertyFileType.TEST_FRAMEWORK);
+    }
+
+    public String getTesProjectName (){
+        return propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TEST_PROJECT, PropertyFileType.TEST_FRAMEWORK);
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java
index 35cc6d1..c0ea2c4 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java
@@ -48,6 +48,9 @@ public class TestFrameworkConstants {
         public static final String SSH_USERNAME = "ssh.username";
         public static final String TOKEN_WRITE_LOCATION = "token.file.location";
         public static final String RESULT_WRITE_LOCATION = "result.file.location";
+        public static final String GATEWAYS_TOSKIP = "gateways.toskip";
+        public static final String TEST_USER = "test.user";
+        public static final String TEST_PROJECT = "test.project";
     }
 
     public static final class GatewayConstants {

http://git-wip-us.apache.org/repos/asf/airavata/blob/fdb3fc91/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.properties
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.properties b/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.properties
index 3a66eb1..65a6554 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.properties
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.properties
@@ -32,6 +32,9 @@ ssh.password=
 ssh.username=ogce
 token.file.location=/tmp/
 result.file.location=/tmp/test_framework_results/
+gateways.toskip=default,php_reference_gateway,ultrascan,umass
+test.user=testUser
+test.project=testProject
 
 # Application Inputs
 # Amber input file locations