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/27 20:50:51 UTC

airavata git commit: adding gateways, ssh credentials, projects and compute resources - AIRAVATA-1652

Repository: airavata
Updated Branches:
  refs/heads/master a8cf35fc7 -> f5a2eac62


adding gateways, ssh credentials, projects and compute resources - AIRAVATA-1652


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

Branch: refs/heads/master
Commit: f5a2eac628291bd218c872eeb6798149441d6a9d
Parents: a8cf35f
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Fri Mar 27 15:50:46 2015 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Fri Mar 27 15:50:46 2015 -0400

----------------------------------------------------------------------
 .../test-suite/multi-tenanted-airavata/pom.xml  |  10 ++
 .../multitenantedairavata/AiravataClient.java   |   6 +-
 .../ApplicationRegister.java                    |  25 +++
 .../ComputeResourceRegister.java                | 117 ++++++++++++
 .../testsuite/multitenantedairavata/Setup.java  | 178 ++++++++++++++++++-
 .../utils/PropertyReader.java                   |   2 +-
 .../utils/TestFrameworkConstants.java           |   9 +
 .../main/resources/airavata-client.properties   |  11 ++
 8 files changed, 352 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/f5a2eac6/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 3275c6b..21e157c 100644
--- a/modules/test-suite/multi-tenanted-airavata/pom.xml
+++ b/modules/test-suite/multi-tenanted-airavata/pom.xml
@@ -55,6 +55,16 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-common-utils</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-credential-store</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.apache.derby</groupId>
             <artifactId>derbyclient</artifactId>
             <version>${derby.version}</version>

http://git-wip-us.apache.org/repos/asf/airavata/blob/f5a2eac6/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
index e6974d2..b20cdc2 100644
--- 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
@@ -45,10 +45,10 @@ public class AiravataClient {
         propertyReader = new PropertyReader();
     }
 
-    public static Airavata.Client getAiravataClient(){
+    public 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));
+            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) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/f5a2eac6/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
new file mode 100644
index 0000000..56a9633
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java
@@ -0,0 +1,25 @@
+/*
+ *
+ * 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 ApplicationRegister {
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f5a2eac6/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
new file mode 100644
index 0000000..af1c779
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java
@@ -0,0 +1,117 @@
+/*
+ *
+ * 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.model.appcatalog.computeresource.*;
+import org.apache.airavata.model.error.AiravataClientException;
+import org.apache.thrift.TException;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ComputeResourceRegister {
+    private Airavata.Client airavata;
+    private List<String> computeResourceIds;
+
+    public ComputeResourceRegister(Airavata.Client airavata) {
+        this.airavata = airavata;
+        computeResourceIds = new ArrayList<String>();
+    }
+
+    public void addComputeResources () throws TException {
+        // adding stampede
+        String stampedeResourceId = registerComputeHost("stampede.tacc.xsede.org", "TACC Stampede Cluster",
+                ResourceJobManagerType.SLURM, "push", "/usr/bin", SecurityProtocol.SSH_KEYS, 22, null);
+        System.out.println("Stampede Resource Id is " + stampedeResourceId);
+
+        //Register Trestles
+        String trestlesResourceId = registerComputeHost("trestles.sdsc.xsede.org", "SDSC Trestles Cluster",
+                ResourceJobManagerType.PBS, "push", "/opt/torque/bin/", SecurityProtocol.SSH_KEYS, 22, null);
+        System.out.println("Trestles Resource Id is " + trestlesResourceId);
+
+        //Register BigRedII
+        String 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");
+        System.out.println("BigredII Resource Id is " + bigredResourceId);
+
+        computeResourceIds.add(stampedeResourceId);
+        computeResourceIds.add(trestlesResourceId);
+        computeResourceIds.add(bigredResourceId);
+    }
+
+    public String registerComputeHost(String hostName, String hostDesc,
+                                      ResourceJobManagerType resourceJobManagerType,
+                                      String monitoringEndPoint, String jobMangerBinPath,
+                                      SecurityProtocol securityProtocol, int portNumber, String jobManagerCommand) throws TException {
+
+        ComputeResourceDescription computeResourceDescription = createComputeResourceDescription(hostName, hostDesc, null, null);
+
+        String computeResourceId = airavata.registerComputeResource(computeResourceDescription);
+
+        if (computeResourceId.isEmpty()) throw new AiravataClientException();
+
+        ResourceJobManager resourceJobManager = createResourceJobManager(resourceJobManagerType, monitoringEndPoint, jobMangerBinPath, null);
+
+        if (jobManagerCommand != null) {
+            Map<JobManagerCommand, String> jobManagerCommandStringMap = new HashMap<JobManagerCommand, String>();
+            jobManagerCommandStringMap.put(JobManagerCommand.SUBMISSION, jobManagerCommand);
+            resourceJobManager.setJobManagerCommands(jobManagerCommandStringMap);
+        }
+
+        SSHJobSubmission sshJobSubmission = new SSHJobSubmission();
+        sshJobSubmission.setResourceJobManager(resourceJobManager);
+        sshJobSubmission.setSecurityProtocol(securityProtocol);
+        sshJobSubmission.setSshPort(portNumber);
+        airavata.addSSHJobSubmissionDetails(computeResourceId, 1, sshJobSubmission);
+
+        SCPDataMovement scpDataMovement = new SCPDataMovement();
+        scpDataMovement.setSecurityProtocol(securityProtocol);
+        scpDataMovement.setSshPort(portNumber);
+        airavata.addSCPDataMovementDetails(computeResourceId, 1, scpDataMovement);
+
+        return computeResourceId;
+    }
+
+    public static ComputeResourceDescription createComputeResourceDescription(
+            String hostName, String hostDesc, List<String> hostAliases, List<String> ipAddresses) {
+        ComputeResourceDescription host = new ComputeResourceDescription();
+        host.setHostName(hostName);
+        host.setResourceDescription(hostDesc);
+        host.setIpAddresses(ipAddresses);
+        host.setHostAliases(hostAliases);
+        return host;
+    }
+
+    public static ResourceJobManager createResourceJobManager(
+            ResourceJobManagerType resourceJobManagerType, String pushMonitoringEndpoint, String jobManagerBinPath,
+            Map<JobManagerCommand, String> jobManagerCommands) {
+        ResourceJobManager resourceJobManager = new ResourceJobManager();
+        resourceJobManager.setResourceJobManagerType(resourceJobManagerType);
+        resourceJobManager.setPushMonitoringEndpoint(pushMonitoringEndpoint);
+        resourceJobManager.setJobManagerBinPath(jobManagerBinPath);
+        resourceJobManager.setJobManagerCommands(jobManagerCommands);
+        return resourceJobManager;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/f5a2eac6/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
index 6dcd00e..4cfdab2 100644
--- 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
@@ -22,13 +22,187 @@
 package org.apache.airavata.testsuite.multitenantedairavata;
 
 
+import org.apache.airavata.api.Airavata;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.common.utils.DBUtil;
+import org.apache.airavata.credential.store.credential.impl.ssh.SSHCredential;
+import org.apache.airavata.credential.store.store.CredentialStoreException;
+import org.apache.airavata.credential.store.store.impl.SSHCredentialWriter;
+import org.apache.airavata.credential.store.util.TokenGenerator;
+import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
+import org.apache.airavata.model.error.AiravataClientException;
+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.PropertyFileType;
+import org.apache.airavata.testsuite.multitenantedairavata.utils.PropertyReader;
+import org.apache.airavata.testsuite.multitenantedairavata.utils.TestFrameworkConstants;
+import org.apache.thrift.TException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 public class Setup {
+    private final static Logger logger = LoggerFactory.getLogger(Setup.class);
+    private AiravataClient airavataClient;
+    private Airavata.Client airavata;
+    private PropertyReader propertyReader;
+    private int gatewayCount;
+    private Map<String, String> tokenMap;
+    private Map<String, String> projectMap;
+
+    public Setup() {
+        this.airavataClient = AiravataClient.getInstance();
+        this.airavata = airavataClient.getAiravataClient();
+        this.tokenMap = new HashMap<String, String>();
+        this.projectMap = new HashMap<String, String>();
+        propertyReader = new PropertyReader();
+    }
+
+    public void createGateways() throws Exception{
+        try {
+            // read gateway count from properties file
+            gatewayCount = Integer.valueOf(propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.NUMBER_OF_GATEWAYS, PropertyFileType.TEST_FRAMEWORK));
+            String genericGatewayName = propertyReader.readProperty(TestFrameworkConstants.GatewayConstants.GENERIC_GATEWAY_NAME, PropertyFileType.TEST_FRAMEWORK);
+            String genericGatewayDomain = propertyReader.readProperty(TestFrameworkConstants.GatewayConstants.GENERIC_GATEWAY_DOMAIN, PropertyFileType.TEST_FRAMEWORK);
+            for (int i = 0; i < gatewayCount; i++){
+                Gateway gateway = new Gateway();
+                String gatewayId = genericGatewayName + (i + 1);
+                gateway.setGatewayId(gatewayId);
+                gateway.setGatewayName(gatewayId);
+                gateway.setDomain(gatewayId + genericGatewayDomain);
+                airavata.addGateway(gateway);
+                GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
+                gatewayResourceProfile.setGatewayID(gatewayId);
+                airavata.registerGatewayResourceProfile(gatewayResourceProfile);
+                // create a project per each gateway
+                createProject(gatewayId);
+            }
+        } catch (AiravataSystemException e) {
+            logger.error("Error while creating airavata client instance", e);
+            throw new Exception("Error while creating airavata client instance", e);
+        } catch (InvalidRequestException e) {
+            logger.error("Invalid request for airavata client instance", e);
+            throw new Exception("Invalid request for airavata client instance", e);
+        } catch (AiravataClientException e) {
+            logger.error("Error while creating airavata client instance", e);
+            throw new Exception("Error while creating airavata client instance", e);
+        } catch (TException e) {
+            logger.error("Error while communicating with airavata client ", e);
+            throw new Exception("Error while communicating with airavata client", e);
+        }
+    }
+
+    public void createProject (String gatewayId) throws Exception{
+        Project project = new Project();
+        project.setName("testProj_" + gatewayId);
+        project.setOwner("testUser_" + gatewayId);
+        String projectId = airavata.createProject(gatewayId, project);
+        projectMap.put(gatewayId, projectId);
+    }
 
-    public void createGateways(){
+    public void registerSSHKeys () throws Exception{
+        try {
+            // credential store related functions are not in the current api, so need to call credential store directly
+            AiravataUtils.setExecutionAsClient();
+            String jdbcURL = propertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.CS_JBDC_URL, PropertyFileType.AIRAVATA_CLIENT);
+            String jdbcDriver = propertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.CS_JBDC_DRIVER, PropertyFileType.AIRAVATA_CLIENT);
+            String userName = propertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.CS_DB_USERNAME, PropertyFileType.AIRAVATA_CLIENT);
+            String password = propertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.CS_DB_PWD, PropertyFileType.AIRAVATA_CLIENT);
+            String privateKeyPath = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.SSH_PRIKEY_LOCATION, PropertyFileType.TEST_FRAMEWORK);
+            String pubKeyPath = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.SSH_PUBKEY_LOCATION, PropertyFileType.TEST_FRAMEWORK);
+            String keyPassword = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.SSH_PWD, PropertyFileType.TEST_FRAMEWORK);
+            DBUtil dbUtil = new DBUtil(jdbcURL, userName, password, jdbcDriver);
+            SSHCredentialWriter writer = new SSHCredentialWriter(dbUtil);
+            List<Gateway> allGateways = airavata.getAllGateways();
+            for (Gateway gateway : allGateways){
+                SSHCredential sshCredential = new SSHCredential();
+                sshCredential.setGateway(gateway.getGatewayId());
+                String token = TokenGenerator.generateToken(gateway.getGatewayId(), null);
+                sshCredential.setToken(token);
+                sshCredential.setPortalUserName("testuser");
+                FileInputStream privateKeyStream = new FileInputStream(privateKeyPath);
+                File filePri = new File(privateKeyPath);
+                byte[] bFilePri = new byte[(int) filePri.length()];
+                privateKeyStream.read(bFilePri);
+                FileInputStream pubKeyStream = new FileInputStream(pubKeyPath);
+                File filePub = new File(pubKeyPath);
+                byte[] bFilePub = new byte[(int) filePub.length()];
+                pubKeyStream.read(bFilePub);
+                privateKeyStream.close();
+                pubKeyStream.close();
+                sshCredential.setPrivateKey(bFilePri);
+                sshCredential.setPublicKey(bFilePub);
+                sshCredential.setPassphrase(keyPassword);
+                writer.writeCredentials(sshCredential);
+                tokenMap.put(gateway.getGatewayId(), token);
+            }
+        } catch (ClassNotFoundException e) {
+            logger.error("Unable to find mysql driver", e);
+            throw new Exception("Unable to find mysql driver",e);
+        } catch (InstantiationException e) {
+            logger.error("Error while saving SSH credentials", e);
+            throw new Exception("Error while saving SSH credentials",e);
+        } catch (IllegalAccessException e) {
+            logger.error("Error while saving SSH credentials", e);
+            throw new Exception("Error while saving SSH credentials",e);
+        } catch (ApplicationSettingsException e) {
+            logger.error("Unable to read airavata-client properties", e);
+            throw new Exception("Unable to read airavata-client properties",e);
+        } catch (AiravataSystemException e) {
+            logger.error("Error occured while connecting with airavata client", e);
+            throw new Exception("Error occured while connecting with airavata client",e);
+        } catch (InvalidRequestException e) {
+            logger.error("Error occured while connecting with airavata client", e);
+            throw new Exception("Error occured while connecting with airavata client",e);
+        } catch (AiravataClientException e) {
+            logger.error("Error occured while connecting with airavata client", e);
+            throw new Exception("Error occured while connecting with airavata client",e);
+        } catch (TException e) {
+            logger.error("Error occured while connecting with airavata client", e);
+            throw new Exception("Error occured while connecting with airavata client",e);
+        } catch (FileNotFoundException e) {
+            logger.error("Could not find keys specified in the path", e);
+            throw new Exception("Could not find keys specified in the path",e);
+        } catch (CredentialStoreException e) {
+            logger.error("Error while saving SSH credentials", e);
+            throw new Exception("Error while saving SSH credentials",e);
+        } catch (IOException e) {
+            logger.error("Error while saving SSH credentials", e);
+            throw new Exception("Error while saving SSH credentials",e);
+        }
+    }
+
+    public int getGatewayCount() {
+        return gatewayCount;
+    }
+
+    public void setGatewayCount(int gatewayCount) {
+        this.gatewayCount = gatewayCount;
+    }
+
+    public Map<String, String> getTokenMap() {
+        return tokenMap;
+    }
 
+    public void setTokenMap(Map<String, String> tokenMap) {
+        this.tokenMap = tokenMap;
     }
 
-    public void registerSSHKeys (){
+    public Map<String, String> getProjectMap() {
+        return projectMap;
+    }
 
+    public void setProjectMap(Map<String, String> projectMap) {
+        this.projectMap = projectMap;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/f5a2eac6/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
index 01d8a8d..1ef2851 100644
--- 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
@@ -53,7 +53,7 @@ public class PropertyReader {
 
     }
 
-    public static String readProperty (String propertyName, PropertyFileType type){
+    public String readProperty (String propertyName, PropertyFileType type){
         switch (type){
             case AIRAVATA_CLIENT:
                 return airavataClientProperties.getProperty(propertyName);

http://git-wip-us.apache.org/repos/asf/airavata/blob/f5a2eac6/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 902f8ea..557f95c 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
@@ -28,6 +28,10 @@ public class TestFrameworkConstants {
     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 String CS_JBDC_URL = "credential.store.jdbc.url";
+        public static final String CS_JBDC_DRIVER = "credential.store.jdbc.driver";
+        public static final String CS_DB_USERNAME = "credential.store.jdbc.user";
+        public static final String CS_DB_PWD = "credential.store.jdbc.password";
     }
 
     public static final class FrameworkPropertiesConstants {
@@ -42,6 +46,11 @@ public class TestFrameworkConstants {
         public static final String SSH_USERNAME = "ssh.username";
     }
 
+    public static final class GatewayConstants {
+        public static final String GENERIC_GATEWAY_NAME = "testGateway";
+        public static final String GENERIC_GATEWAY_DOMAIN = ".airavata.org";
+    }
+
     public static final class AppcatalogConstants {
         public static final String AMBER_APP_NAME = "amber_sander";
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/f5a2eac6/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
index 201f7f3..4513c21 100644
--- 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
@@ -33,5 +33,16 @@
 thrift.server.host=localhost
 thrift.server.port=8930
 
+###########################################################################
+# Credential Store module Configuration
+###########################################################################
+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/experiment_catalog;create=true;user=airavata;password=airavata
+credential.store.jdbc.user=airavata
+credential.store.jdbc.password=airavata
+credential.store.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+