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/31 21:24:36 UTC
airavata git commit: experiment execution for AIRAVATA-1652
Repository: airavata
Updated Branches:
refs/heads/master d89236975 -> 7812dcaf0
experiment execution for AIRAVATA-1652
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/7812dcaf
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/7812dcaf
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/7812dcaf
Branch: refs/heads/master
Commit: 7812dcaf004d510e532e448a6053e8976ddc7154
Parents: d892369
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Tue Mar 31 15:24:31 2015 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Tue Mar 31 15:24:31 2015 -0400
----------------------------------------------------------------------
.../test-suite/multi-tenanted-airavata/pom.xml | 10 +
.../ApplicationRegister.java | 2 -
.../ExperimentExecution.java | 325 +++++++++++++++++++
.../testsuite/multitenantedairavata/Setup.java | 2 +-
.../utils/TestFrameworkConstants.java | 10 +
.../main/resources/airavata-client.properties | 7 +
6 files changed, 353 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/7812dcaf/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 21e157c..f974c59 100644
--- a/modules/test-suite/multi-tenanted-airavata/pom.xml
+++ b/modules/test-suite/multi-tenanted-airavata/pom.xml
@@ -51,6 +51,16 @@
</dependency>
<dependency>
<groupId>org.apache.airavata</groupId>
+ <artifactId>airavata-model-utils</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.airavata</groupId>
+ <artifactId>airavata-messaging-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.airavata</groupId>
<artifactId>airavata-data-models</artifactId>
<version>${project.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/airavata/blob/7812dcaf/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 b11e572..8e71958 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
@@ -77,8 +77,6 @@ public class ApplicationRegister {
}
}
-
-
public void addApplications () throws Exception{
addAmberApplication();
addEchoApplication();
http://git-wip-us.apache.org/repos/asf/airavata/blob/7812dcaf/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
new file mode 100644
index 0000000..b6b5476
--- /dev/null
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java
@@ -0,0 +1,325 @@
+/*
+ *
+ * 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.common.utils.ThriftUtils;
+import org.apache.airavata.messaging.core.MessageContext;
+import org.apache.airavata.messaging.core.MessageHandler;
+import org.apache.airavata.messaging.core.MessagingConstants;
+import org.apache.airavata.messaging.core.impl.RabbitMQStatusConsumer;
+import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.apache.airavata.model.messaging.event.ExperimentStatusChangeEvent;
+import org.apache.airavata.model.messaging.event.JobStatusChangeEvent;
+import org.apache.airavata.model.messaging.event.MessageType;
+import org.apache.airavata.model.util.ExperimentModelUtil;
+import org.apache.airavata.model.workspace.experiment.ComputationalResourceScheduling;
+import org.apache.airavata.model.workspace.experiment.Experiment;
+import org.apache.airavata.model.workspace.experiment.ExperimentState;
+import org.apache.airavata.model.workspace.experiment.UserConfigurationData;
+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.TBase;
+import org.apache.thrift.TException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ExperimentExecution {
+ private Airavata.Client airavata;
+ private final static Logger logger = LoggerFactory.getLogger(ExperimentExecution.class);
+ private Map<String, String> experimentsWithTokens;
+ private Map<String, String> experimentsWithGateway;
+ private Map<String, String> csTokens;
+ private Map<String, String> appInterfaceMap;
+ private Map<String, String> projectsMap;
+ private PropertyReader propertyReader;
+
+ public ExperimentExecution(Airavata.Client airavata,
+ Map<String, String> tokenMap,
+ Map<String, String> appInterfaces,
+ Map<String, String> projectMap ) {
+ this.airavata = airavata;
+ this.csTokens = tokenMap;
+ this.appInterfaceMap = appInterfaces;
+ this.propertyReader = new PropertyReader();
+ this.projectsMap = projectMap;
+ this.experimentsWithTokens = new HashMap<String, String>();
+ this.experimentsWithGateway = new HashMap<String, String>();
+ }
+
+ public void launchExperiments () throws Exception {
+ try {
+ for (String expId : experimentsWithTokens.keySet()){
+ airavata.launchExperiment(expId, experimentsWithTokens.get(expId));
+ }
+ }catch (Exception e){
+ logger.error("Error while launching experiment", e);
+ throw new Exception("Error while launching experiment", e);
+ }
+ }
+
+ public void monitorExperiments () throws Exception {
+ String brokerUrl = propertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.RABBIT_BROKER_URL, PropertyFileType.AIRAVATA_CLIENT);
+ System.out.println("broker url " + brokerUrl);
+ final String exchangeName = propertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.RABBIT_EXCHANGE_NAME, PropertyFileType.AIRAVATA_CLIENT);
+ RabbitMQStatusConsumer consumer = new RabbitMQStatusConsumer(brokerUrl, exchangeName);
+ for (final String expId : experimentsWithGateway.keySet()){
+ final String gatewayId = experimentsWithGateway.get(expId);
+ consumer.listen(new MessageHandler() {
+ @Override
+ public Map<String, Object> getProperties() {
+ Map<String, Object> props = new HashMap<String, Object>();
+ List<String> routingKeys = new ArrayList<String>();
+ routingKeys.add(gatewayId);
+ routingKeys.add(gatewayId + "." + expId);
+ routingKeys.add(gatewayId + "." + expId + ".*");
+ routingKeys.add(gatewayId + "." + expId + ".*.*");
+ routingKeys.add(gatewayId + "." + expId + ".*.*.*");
+
+ props.put(MessagingConstants.RABBIT_ROUTING_KEY, routingKeys);
+ return props;
+ }
+
+ @Override
+ public void onMessage(MessageContext message) {
+
+ if (message.getType().equals(MessageType.EXPERIMENT)){
+ try {
+ ExperimentStatusChangeEvent event = new ExperimentStatusChangeEvent();
+ TBase messageEvent = message.getEvent();
+ byte[] bytes = ThriftUtils.serializeThriftObject(messageEvent);
+ ThriftUtils.createThriftFromBytes(bytes, event);
+ ExperimentState expState = event.getState();
+ if (expState.equals(ExperimentState.COMPLETED)){
+ // check file transfers
+ List<OutputDataObjectType> experimentOutputs = airavata.getExperimentOutputs(expId);
+ int i = 1;
+ for (OutputDataObjectType output : experimentOutputs){
+ logger.info("################ Experiment : " + expId + " COMPLETES ###################");
+ logger.info("Output " + i + " : " + output.getValue());
+ i++;
+ }
+ }
+ logger.info(" Experiment Id : '" + expId
+ + "' with state : '" + event.getState().toString() +
+ " for Gateway " + event.getGatewayId());
+ } catch (TException e) {
+ logger.error(e.getMessage(), e);
+ }
+ }else if (message.getType().equals(MessageType.JOB)){
+ try {
+ JobStatusChangeEvent event = new JobStatusChangeEvent();
+ TBase messageEvent = message.getEvent();
+ byte[] bytes = ThriftUtils.serializeThriftObject(messageEvent);
+ ThriftUtils.createThriftFromBytes(bytes, event);
+ logger.info(" Job ID : '" + event.getJobIdentity().getJobId()
+ + "' with state : '" + event.getState().toString() +
+ " for Gateway " + event.getJobIdentity().getGatewayId());
+ } catch (TException e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
+ }
+ });
+ }
+
+
+ }
+
+ public void createAmberExperiment () throws Exception{
+ try {
+ for (String gatewayId : csTokens.keySet()){
+ String token = csTokens.get(gatewayId);
+ Map<String, String> appsWithNames = generateAppsPerGateway(gatewayId);
+ for (String appId : appsWithNames.keySet()){
+ List<InputDataObjectType> applicationInputs = airavata.getApplicationInputs(appId);
+ List<OutputDataObjectType> appOutputs = airavata.getApplicationOutputs(appId);
+ String appName = appsWithNames.get(appId);
+ if (appName.equals(TestFrameworkConstants.AppcatalogConstants.AMBER_APP_NAME)){
+ String heatRSTFile = propertyReader.readProperty(TestFrameworkConstants.AppcatalogConstants.AMBER_HEAT_RST_LOCATION, PropertyFileType.TEST_FRAMEWORK);
+ String prodInFile = propertyReader.readProperty(TestFrameworkConstants.AppcatalogConstants.AMBER_PROD_IN_LOCATION, PropertyFileType.TEST_FRAMEWORK);
+ String prmTopFile = propertyReader.readProperty(TestFrameworkConstants.AppcatalogConstants.AMBER_PRMTOP_LOCATION, PropertyFileType.TEST_FRAMEWORK);
+
+ for (InputDataObjectType inputDataObjectType : applicationInputs) {
+ if (inputDataObjectType.getName().equalsIgnoreCase("Heat_Restart_File")) {
+ inputDataObjectType.setValue(heatRSTFile);
+ } else if (inputDataObjectType.getName().equalsIgnoreCase("Production_Control_File")) {
+ inputDataObjectType.setValue(prodInFile);
+ } else if (inputDataObjectType.getName().equalsIgnoreCase("Parameter_Topology_File")) {
+ inputDataObjectType.setValue(prmTopFile);
+ }
+ }
+
+ String projectId = getProjectIdForGateway(gatewayId);
+ Experiment simpleExperiment =
+ ExperimentModelUtil.createSimpleExperiment(projectId, "admin", "Amber Experiment", "Amber 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){
+ logger.error("Error while creating AMBEr experiment", e);
+ throw new Exception("Error while creating AMBER experiment", e);
+ }
+ }
+
+ public String getProjectIdForGateway (String gatewayId){
+ for (String projectId : projectsMap.keySet()){
+ String gateway = projectsMap.get(projectId);
+ if (gateway.equals(gatewayId)){
+ return projectId;
+ }
+ }
+ return null;
+ }
+
+ public Map<String, String> generateAppsPerGateway (String gatewayId) throws Exception {
+ Map<String, String> appWithNames = new HashMap<String, String>();
+ try {
+ for (String appId : appInterfaceMap.keySet()){
+ String gateway = appInterfaceMap.get(appId);
+ ApplicationInterfaceDescription applicationInterface = airavata.getApplicationInterface(appId);
+ if (gateway.equals(gatewayId)){
+ appWithNames.put(appId, applicationInterface.getApplicationName());
+ }
+ }
+ }catch (Exception e){
+ logger.error("Error while getting application interface", e);
+ throw new Exception("Error while getting application interface", e);
+ }
+
+ return appWithNames;
+ }
+
+ public void createEchoExperiment () throws Exception{
+ try {
+ for (String gatewayId : csTokens.keySet()) {
+ String token = csTokens.get(gatewayId);
+ Map<String, String> appsWithNames = generateAppsPerGateway(gatewayId);
+ for (String appId : appsWithNames.keySet()) {
+ List<InputDataObjectType> applicationInputs = airavata.getApplicationInputs(appId);
+ List<OutputDataObjectType> appOutputs = airavata.getApplicationOutputs(appId);
+ String appName = appsWithNames.get(appId);
+ if (appName.equals(TestFrameworkConstants.AppcatalogConstants.ECHO_NAME)) {
+ for (InputDataObjectType inputDataObjectType : applicationInputs) {
+ if (inputDataObjectType.getName().equalsIgnoreCase("input_to_Echo")) {
+ inputDataObjectType.setValue("Hello World !!!");
+ }
+ }
+
+ String projectId = getProjectIdForGateway(gatewayId);
+ 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){
+ logger.error("Error while creating Echo experiment", e);
+ throw new Exception("Error while creating Echo experiment", e);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/7812dcaf/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 4cfdab2..9b94d4e 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
@@ -107,7 +107,7 @@ public class Setup {
project.setName("testProj_" + gatewayId);
project.setOwner("testUser_" + gatewayId);
String projectId = airavata.createProject(gatewayId, project);
- projectMap.put(gatewayId, projectId);
+ projectMap.put(projectId, gatewayId);
}
public void registerSSHKeys () throws Exception{
http://git-wip-us.apache.org/repos/asf/airavata/blob/7812dcaf/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 c4bf8e4..f64ce67 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
@@ -32,6 +32,8 @@ public class TestFrameworkConstants {
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 String RABBIT_BROKER_URL = "rabbitmq.broker.url";
+ public static final String RABBIT_EXCHANGE_NAME = "rabbitmq.exchange.name";
}
public static final class FrameworkPropertiesConstants {
@@ -81,6 +83,14 @@ public class TestFrameworkConstants {
public static final String STAMPEDE_RESOURCE_NAME = "stampede.tacc.xsede.org";
public static final String TRESTLES_RESOURCE_NAME = "trestles.sdsc.xsede.org";
public static final String BR2_RESOURCE_NAME = "bigred2.uits.iu.edu";
+
+
+ public static final String AMBER_HEAT_RST_LOCATION = "02_Heat.rst_location";
+ public static final String AMBER_PROD_IN_LOCATION = "03_Prod.in_location";
+ public static final String AMBER_PRMTOP_LOCATION = "prmtop_location";
+
+
+
}
public static final class CredentialStoreConstants {
http://git-wip-us.apache.org/repos/asf/airavata/blob/7812dcaf/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 4513c21..c44bd1f 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
@@ -45,4 +45,11 @@ credential.store.jdbc.password=airavata
credential.store.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+######################################################################
+# rabbitMQ related properties - monitoring is done with rabbitMQ
+######################################################################
+rabbitmq.exchange.name=airavata_rabbitmq_exchange
+rabbitmq.broker.url=amqp://localhost:5672
+
+