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/03/26 21:57:30 UTC

airavata git commit: adding initial version for test framework - AIRAVATA-1652

Repository: airavata
Updated Branches:
  refs/heads/master a6c483cdb -> f25af64c0


adding initial version for test framework - AIRAVATA-1652


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

Branch: refs/heads/master
Commit: f25af64c0cd7f1e84d4233ff717083c9e99df36e
Parents: a6c483c
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Thu Mar 26 16:57:21 2015 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Thu Mar 26 16:57:21 2015 -0400

----------------------------------------------------------------------
 .../credential-store-service/pom.xml            |  5 ++
 .../store/store/impl/db/SSHCredentialTest.java  | 18 ++---
 .../test/resources/airavata-server.properties   |  2 +-
 .../test-suite/multi-tenanted-airavata/pom.xml  | 76 ++++++++++++++++++++
 .../multitenantedairavata/AiravataClient.java   | 59 +++++++++++++++
 .../testsuite/multitenantedairavata/Setup.java  | 34 +++++++++
 .../utils/PropertyFileType.java                 | 28 ++++++++
 .../utils/PropertyReader.java                   | 65 +++++++++++++++++
 .../utils/TestFrameworkConstants.java           | 55 ++++++++++++++
 .../main/resources/airavata-client.properties   | 37 ++++++++++
 .../main/resources/test-framework.properties    | 31 ++++++++
 modules/test-suite/pom.xml                      | 39 ++++++++++
 pom.xml                                         |  3 +-
 13 files changed, 441 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/modules/credential-store/credential-store-service/pom.xml
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/pom.xml b/modules/credential-store/credential-store-service/pom.xml
index 7f9e329..0c6c982 100644
--- a/modules/credential-store/credential-store-service/pom.xml
+++ b/modules/credential-store/credential-store-service/pom.xml
@@ -63,6 +63,11 @@
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
+        <!--<dependency>-->
+            <!--<groupId>mysql</groupId>-->
+            <!--<artifactId>mysql-connector-java</artifactId>-->
+            <!--<version>5.1.34</version>-->
+        <!--</dependency>-->
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/modules/credential-store/credential-store-service/src/test/java/org/apache/airavata/credential/store/store/impl/db/SSHCredentialTest.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/test/java/org/apache/airavata/credential/store/store/impl/db/SSHCredentialTest.java b/modules/credential-store/credential-store-service/src/test/java/org/apache/airavata/credential/store/store/impl/db/SSHCredentialTest.java
index 45c0be3..b5eceed 100644
--- a/modules/credential-store/credential-store-service/src/test/java/org/apache/airavata/credential/store/store/impl/db/SSHCredentialTest.java
+++ b/modules/credential-store/credential-store-service/src/test/java/org/apache/airavata/credential/store/store/impl/db/SSHCredentialTest.java
@@ -38,13 +38,13 @@ import java.io.IOException;
 public class SSHCredentialTest {
 
     public static void main(String[] args) {
-        String jdbcURL = "jdbc:derby://localhost:1527/experiment_catalog;create=true;user=airavata;password=airavata";
-        String jdbcDriver = "org.apache.derby.jdbc.ClientDriver";
-        String userName = "airavata";
-        String password = "airavata";
-        String gatewayId = "default";
-        String privateKeyPath = "/Users/lginnali/.ssh/id_dsa";
-        String pubKeyPath = "/Users/lginnali/.ssh/id_dsa.pub";
+        String jdbcURL = "jdbc:mysql://gw85.iu.xsede.org:3306/airavata_dev";
+        String jdbcDriver = "com.mysql.jdbc.Driver";
+        String userName = "gtaDevUser";
+        String password = "gtaDevPWD";
+        String gatewayId = "sdsc";
+        String privateKeyPath = "/Users/chathuri/Desktop/ssh_gw111/id_rsa";
+        String pubKeyPath = "/Users/chathuri/Desktop/ssh_gw111/id_rsa.pub";
 
         try {
             AiravataUtils.setExecutionAsServer();
@@ -54,7 +54,7 @@ public class SSHCredentialTest {
             sshCredential.setGateway(gatewayId);
             String token = TokenGenerator.generateToken(gatewayId, null);
             sshCredential.setToken(token);
-            sshCredential.setPortalUserName("admin");
+            sshCredential.setPortalUserName("kenneth");
             FileInputStream privateKeyStream = new FileInputStream(privateKeyPath);
             File filePri = new File(privateKeyPath);
             byte[] bFilePri = new byte[(int) filePri.length()];
@@ -67,7 +67,7 @@ public class SSHCredentialTest {
             pubKeyStream.close();
             sshCredential.setPrivateKey(bFilePri);
             sshCredential.setPublicKey(bFilePub);
-            sshCredential.setPassphrase("test");
+            sshCredential.setPassphrase("");
             writer.writeCredentials(sshCredential);
             System.out.println(token);
         } catch (ClassNotFoundException e) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties b/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
index 9bdce87..b466d8b 100644
--- a/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
+++ b/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
@@ -97,7 +97,7 @@ job.notification.flags=abe
 # Credential Store module Configuration
 ###########################################################################
 start.credential.store=false
-credential.store.keystore.url=/Users/lginnali/Downloads/airavata_sym.jks
+credential.store.keystore.url=/Users/chathuri/dev/airavata/credential-store/oa4mp/airavata_sym.jks
 credential.store.keystore.alias=airavata
 credential.store.keystore.password=airavata
 credential.store.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/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
new file mode 100644
index 0000000..3275c6b
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/pom.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--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. -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.apache.airavata</groupId>
+        <artifactId>airavata-test-suite</artifactId>
+        <version>0.15-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>multi-tenanted-airavata</artifactId>
+    <name>Multi-tenanted Airavata</name>
+    <description>Multi-tenanted Airavata</description>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-client-configuration</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-api-stubs</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-data-models</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbyclient</artifactId>
+            <version>${derby.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbynet</artifactId>
+            <version>${derby.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbytools</artifactId>
+            <version>${derby.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/AiravataClient.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/AiravataClient.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/AiravataClient.java
new file mode 100644
index 0000000..e6974d2
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/AiravataClient.java
@@ -0,0 +1,59 @@
+/*
+ *
+ * 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;
+
+import org.apache.airavata.api.Airavata;
+import org.apache.airavata.api.client.AiravataClientFactory;
+import org.apache.airavata.model.error.AiravataClientConnectException;
+import org.apache.airavata.testsuite.multitenantedairavata.utils.PropertyFileType;
+import org.apache.airavata.testsuite.multitenantedairavata.utils.PropertyReader;
+import org.apache.airavata.testsuite.multitenantedairavata.utils.TestFrameworkConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AiravataClient {
+    private static Airavata.Client airavataClient;
+    private PropertyReader propertyReader;
+    private final static Logger logger = LoggerFactory.getLogger(AiravataClient.class);
+
+    private static AiravataClient ourInstance = new AiravataClient();
+
+    public static AiravataClient getInstance() {
+        return ourInstance;
+    }
+
+    private AiravataClient() {
+        propertyReader = new PropertyReader();
+    }
+
+    public static Airavata.Client getAiravataClient(){
+        try {
+            String airavataHost = PropertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.THRIFT_SERVER_HOST, PropertyFileType.AIRAVATA_CLIENT);
+            int airavataport = Integer.valueOf(PropertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.THRIFT_SERVER_PORT, PropertyFileType.AIRAVATA_CLIENT));
+            airavataClient = AiravataClientFactory.createAiravataClient(airavataHost, airavataport);
+            return airavataClient;
+        } catch (AiravataClientConnectException e) {
+            logger.error("Error while creating airavata client instance", e);
+        }
+        return null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/Setup.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/Setup.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/Setup.java
new file mode 100644
index 0000000..6dcd00e
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/Setup.java
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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;
+
+
+public class Setup {
+
+    public void createGateways(){
+
+    }
+
+    public void registerSSHKeys (){
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyFileType.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyFileType.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyFileType.java
new file mode 100644
index 0000000..0437c4e
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyFileType.java
@@ -0,0 +1,28 @@
+/*
+ *
+ * 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;
+
+
+public enum PropertyFileType {
+    AIRAVATA_CLIENT,
+    TEST_FRAMEWORK
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyReader.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyReader.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyReader.java
new file mode 100644
index 0000000..01d8a8d
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyReader.java
@@ -0,0 +1,65 @@
+/*
+ *
+ * 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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Properties;
+
+public class PropertyReader {
+    private final static Logger logger = LoggerFactory.getLogger(PropertyReader.class);
+    private static Properties airavataClientProperties = new Properties();
+    private static Properties testFrameworkroperties = new Properties();
+
+    public PropertyReader() {
+        try {
+            loadProperties();
+        } catch (IOException e) {
+            logger.error("Unable to read properties files", e);
+        }
+    }
+
+    protected void loadProperties() throws IOException {
+        URL airavataURL = PropertyFileType.class.getClassLoader().getResource(TestFrameworkConstants.AIRAVATA_CLIENT_PROPERTIES);
+        URL frameworkPropUrl = PropertyFileType.class.getClassLoader().getResource(TestFrameworkConstants.TEST_FREAMEWORK_PROPERTIES);
+        if (airavataURL != null){
+            airavataClientProperties.load(airavataURL.openStream());
+        }
+        if (frameworkPropUrl != null){
+            testFrameworkroperties.load(frameworkPropUrl.openStream());
+        }
+
+    }
+
+    public static String readProperty (String propertyName, PropertyFileType type){
+        switch (type){
+            case AIRAVATA_CLIENT:
+                return airavataClientProperties.getProperty(propertyName);
+            case TEST_FRAMEWORK:
+                return testFrameworkroperties.getProperty(propertyName);
+        }
+        return null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/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
new file mode 100644
index 0000000..902f8ea
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java
@@ -0,0 +1,55 @@
+/*
+ *
+ * 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;
+
+public class TestFrameworkConstants {
+    public static final String AIRAVATA_CLIENT_PROPERTIES = "airavata-client.properties";
+    public static final String TEST_FREAMEWORK_PROPERTIES = "test-framework.properties";
+
+    public static final class AiravataClientConstants {
+        public static final String THRIFT_SERVER_HOST = "thrift.server.host";
+        public static final String THRIFT_SERVER_PORT = "thrift.server.port";
+    }
+
+    public static final class FrameworkPropertiesConstants {
+        public static final String NUMBER_OF_GATEWAYS = "numberof.gateways";
+        public static final String USERS_PER_GATEWAY = "users.per.gateway";
+        public static final String COMPUTE_RESOURCE_LIST = "compute.resoure.list";
+        public static final String LOGIN_USERNAME_LIST = "login.usernames";
+        public static final String APPLICATION_LIST = "application.list";
+        public static final String SSH_PUBKEY_LOCATION = "ssh.pub.key.location";
+        public static final String SSH_PRIKEY_LOCATION = "ssh.private.key.location";
+        public static final String SSH_PWD = "ssh.password";
+        public static final String SSH_USERNAME = "ssh.username";
+    }
+
+    public static final class AppcatalogConstants {
+        public static final String AMBER_APP_NAME = "amber_sander";
+
+    }
+
+    public static final class CredentialStoreConstants {
+
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/modules/test-suite/multi-tenanted-airavata/src/main/resources/airavata-client.properties
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/resources/airavata-client.properties b/modules/test-suite/multi-tenanted-airavata/src/main/resources/airavata-client.properties
new file mode 100644
index 0000000..201f7f3
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/resources/airavata-client.properties
@@ -0,0 +1,37 @@
+#
+#
+# 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.
+#
+
+###########################################################################
+#
+#  This properties file provides configuration for Airavata Clients: 
+#  XBaya and Airavata API
+#
+###########################################################################
+
+
+
+###########################################################################
+# Airavata Thrift Server configurations
+###########################################################################
+thrift.server.host=localhost
+thrift.server.port=8930
+
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/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
new file mode 100644
index 0000000..e7056ac
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.properties
@@ -0,0 +1,31 @@
+#
+#
+# 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.
+#
+
+# Test environment related properties
+numberof.gateways=10
+users.per.gateway=10
+compute.resoure.list=trestles,stampede,br2
+login.usernames=ogce,ogce,cgateway
+application.list=amber_sander,echo
+ssh.pub.key.location=ssh_key_location
+ssh.private.key.location=ssh_key_location
+ssh.password=pwd
+ssh.username=username
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/modules/test-suite/pom.xml
----------------------------------------------------------------------
diff --git a/modules/test-suite/pom.xml b/modules/test-suite/pom.xml
new file mode 100644
index 0000000..abc4ac8
--- /dev/null
+++ b/modules/test-suite/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--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. -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <parent>
+        <groupId>org.apache.airavata</groupId>
+        <artifactId>airavata</artifactId>
+        <version>0.15-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>airavata-test-suite</artifactId>
+    <name>Airavata Test Suite</name>
+    <packaging>pom</packaging>
+    <url>http://airavata.apache.org/</url>
+    <profiles>
+        <profile>
+            <id>default</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <modules>
+                <module>multi-tenanted-airavata</module>
+            </modules>
+        </profile>
+    </profiles>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    </properties>
+</project>

http://git-wip-us.apache.org/repos/asf/airavata/blob/f25af64c/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3a48f23..fdad93a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -531,7 +531,7 @@
 				<module>modules/orchestrator</module>
 				<module>tools</module>
 				<module>modules/server</module>
-				<!--<module>modules/test-suite</module>-->
+				<module>modules/test-suite</module>
 				<module>modules/distribution</module>
 				<!--<module>modules/ws-messenger</module>-->
 				<module>modules/messaging</module>
@@ -618,6 +618,7 @@
 				<module>tools</module>
 				<module>modules/server</module>
 				<module>modules/distribution</module>
+				<module>modules/test-suite</module>
 				<module>modules/integration-tests</module>
 			</modules>
 		</profile>