Repository: airavata Updated Branches: refs/heads/master 1f298eabd -> 1d7671ed6
adding integration tests to stampede - AIRAVATA-1055 Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/1d7671ed Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/1d7671ed Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/1d7671ed Branch: refs/heads/master Commit: 1d7671ed69ea61f88db9b2633bc22e3fd4005270 Parents: 1f298ea Author: chathuri <[email protected]> Authored: Fri Mar 7 16:28:25 2014 -0500 Committer: chathuri <[email protected]> Committed: Fri Mar 7 16:28:25 2014 -0500 ---------------------------------------------------------------------- .../client/samples/CreateLaunchExperiment.java | 7 +- .../main/resources/airavata-client.properties | 2 +- .../airavata/client/tools/DocumentCreator.java | 99 +++++++ .../resources/conf/airavata-server.properties | 2 +- .../apache/airavata/integration/BaseCaseIT.java | 74 ++++- .../src/test/resources/SLURMTemplate.xslt | 69 +++++ .../test/resources/airavata-server.properties | 282 +++++++++++++++++++ 7 files changed, 529 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/1d7671ed/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java index cef4ca2..17a13a6 100644 --- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java +++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java @@ -49,7 +49,7 @@ import java.util.Set; public class CreateLaunchExperiment { //FIXME: Read from a config file - public static final String THRIFT_SERVER_HOST = "149.165.228.109"; + public static final String THRIFT_SERVER_HOST = "localhost"; public static final int THRIFT_SERVER_PORT = 8930; private final static Logger logger = LoggerFactory.getLogger(CreateLaunchExperiment.class); private static final String DEFAULT_USER = "defauly.registry.user"; @@ -60,7 +60,7 @@ public class CreateLaunchExperiment { AiravataUtils.setExecutionAsClient(); final Airavata.Client airavata = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT); System.out.println("API version is " + airavata.GetAPIVersion()); - addDescriptors(); + addDescriptors(); final String expId = createExperimentForTrestles(airavata); // final String expId = createUS3ExperimentForTrestles(airavata); // final String expId = createExperimentForStampede(airavata); @@ -126,6 +126,7 @@ public class CreateLaunchExperiment { documentCreator.createLocalHostDocs(); documentCreator.createGramDocs(); documentCreator.createPBSDocs(); + documentCreator.createPBSDocsForOGCE(); documentCreator.createMPIPBSDocs(); documentCreator.createSlurmDocs(); } catch (AiravataAPIInvocationException e) { @@ -173,7 +174,7 @@ public class CreateLaunchExperiment { ExperimentModelUtil.createSimpleExperiment("project1", "admin", "echoExperiment", "SimpleEcho2", "SimpleEcho2", exInputs); simpleExperiment.setExperimentOutputs(exOut); - ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling("trestles.sdsc.edu", 1, 1, 1, "normal", 0, 0, 1, "uot111"); + ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling("trestles.sdsc.edu", 1, 1, 1, "normal", 0, 0, 1, "sds128"); scheduling.setResourceHostId("gsissh-trestles"); UserConfigurationData userConfigurationData = new UserConfigurationData(); userConfigurationData.setAiravataAutoSchedule(false); http://git-wip-us.apache.org/repos/asf/airavata/blob/1d7671ed/airavata-api/airavata-client-sdks/java-client-samples/src/main/resources/airavata-client.properties ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/resources/airavata-client.properties b/airavata-api/airavata-client-sdks/java-client-samples/src/main/resources/airavata-client.properties index fd95cdb..9786a1a 100644 --- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/resources/airavata-client.properties +++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/resources/airavata-client.properties @@ -39,7 +39,7 @@ class.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.Airava #for derby [AiravataJPARegistry] registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver -registry.jdbc.url=jdbc:derby://gw111.iu.xsede.org:1530/persistent_data;create=true;user=airavata;password=airavata +registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata registry.jdbc.user=airavata registry.jdbc.password=airavata12 start.derby.server.mode=true http://git-wip-us.apache.org/repos/asf/airavata/blob/1d7671ed/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java ---------------------------------------------------------------------- diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java index b71e0d3..1fabf58 100644 --- a/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java +++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java @@ -307,6 +307,105 @@ public class DocumentCreator { } } + public void createPBSDocsForOGCE() { + HostDescription host = new HostDescription(GsisshHostType.type); + host.getType().setHostAddress(hpcHostAddress); + host.getType().setHostName(gsiSshHostName); + ((GsisshHostType) host.getType()).setPort(22); + ((GsisshHostType) host.getType()).setInstalledPath("/opt/torque/bin/"); + + try { + airavataAPI.getApplicationManager().saveHostDescription(host); + } catch (AiravataAPIInvocationException e) { + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + /* + * Service Description creation and saving + */ + String serviceName = "SimpleEcho2"; + ServiceDescription serv = new ServiceDescription(); + serv.getType().setName(serviceName); + + List<InputParameterType> inputList = new ArrayList<InputParameterType>(); + List<OutputParameterType> outputList = new ArrayList<OutputParameterType>(); + + + InputParameterType input = InputParameterType.Factory.newInstance(); + input.setParameterName("echo_input"); + ParameterType parameterType = input.addNewParameterType(); + parameterType.setType(DataType.STRING); + parameterType.setName("String"); + + OutputParameterType output = OutputParameterType.Factory.newInstance(); + output.setParameterName("echo_output"); + ParameterType parameterType1 = output.addNewParameterType(); + parameterType1.setType(DataType.STRING); + parameterType1.setName("String"); + + inputList.add(input); + outputList.add(output); + + InputParameterType[] inputParamList = inputList.toArray(new InputParameterType[inputList.size()]); + OutputParameterType[] outputParamList = outputList.toArray(new OutputParameterType[outputList.size()]); + + serv.getType().setInputParametersArray(inputParamList); + serv.getType().setOutputParametersArray(outputParamList); + try { + airavataAPI.getApplicationManager().saveServiceDescription(serv); + } catch (AiravataAPIInvocationException e) { + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + + /* + Application descriptor creation and saving + */ + ApplicationDescription appDesc = new ApplicationDescription(HpcApplicationDeploymentType.type); + HpcApplicationDeploymentType app = (HpcApplicationDeploymentType) appDesc.getType(); + ApplicationDeploymentDescriptionType.ApplicationName name = ApplicationDeploymentDescriptionType.ApplicationName.Factory.newInstance(); + name.setStringValue("EchoLocal"); + app.setApplicationName(name); + ProjectAccountType projectAccountType = app.addNewProjectAccount(); + projectAccountType.setProjectAccountNumber("sds128"); + + QueueType queueType = app.addNewQueue(); + queueType.setQueueName("normal"); + + app.setCpuCount(1); + app.setJobType(JobTypeType.SERIAL); + app.setNodeCount(1); + app.setProcessorsPerNode(1); + app.setMaxWallTime(10); + /* + * Use bat file if it is compiled on Windows + */ + app.setExecutableLocation("/bin/echo"); + + /* + * Default tmp location + */ + String tempDir = "/home/ogce/scratch"; + String date = (new Date()).toString(); + date = date.replaceAll(" ", "_"); + date = date.replaceAll(":", "_"); + + tempDir = tempDir + File.separator + + "SimpleEcho" + "_" + date + "_" + UUID.randomUUID(); + + app.setScratchWorkingDirectory(tempDir); + app.setStaticWorkingDirectory(tempDir); + app.setInputDataDirectory(tempDir + File.separator + "inputData"); + app.setOutputDataDirectory(tempDir + File.separator + "outputData"); + app.setStandardOutput(tempDir + File.separator + app.getApplicationName().getStringValue() + ".stdout"); + app.setStandardError(tempDir + File.separator + app.getApplicationName().getStringValue() + ".stderr"); + app.setInstalledParentPath("/opt/torque/bin/"); + + try { + airavataAPI.getApplicationManager().saveApplicationDescription(serviceName, gsiSshHostName, appDesc); + } catch (AiravataAPIInvocationException e) { + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + } + public void createMPIPBSDocs() { HostDescription host = new HostDescription(GsisshHostType.type); host.getType().setHostAddress(hpcHostAddress); http://git-wip-us.apache.org/repos/asf/airavata/blob/1d7671ed/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties ---------------------------------------------------------------------- diff --git a/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties b/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties index f05f7ae..e0c4b4b 100644 --- a/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties +++ b/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties @@ -62,7 +62,7 @@ registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=a registry.jdbc.user=airavata registry.jdbc.password=airavata start.derby.server.mode=true -validationQuery=SELECT 1 from Configuration +validationQuery=SELECT 1 from CONFIGURATION jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true # Properties to setup registry service default.registry.user=admin http://git-wip-us.apache.org/repos/asf/airavata/blob/1d7671ed/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java ---------------------------------------------------------------------- diff --git a/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java b/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java index 60dcb8f..dc0b5f2 100644 --- a/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java +++ b/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java @@ -80,8 +80,9 @@ public class BaseCaseIT extends WorkflowIntegrationTestBase { @Test(groups = {"echoGroup"}, dependsOnGroups = {"setupTests"}) public void testEchoService() throws Exception { + log.info("Running job in trestles..."); DocumentCreator documentCreator = new DocumentCreator(airavataAPI); - documentCreator.createPBSDocs(); + documentCreator.createPBSDocsForOGCE(); List<DataObjectType> exInputs = new ArrayList<DataObjectType>(); DataObjectType input = new DataObjectType(); input.setKey("echo_input"); @@ -148,6 +149,77 @@ public class BaseCaseIT extends WorkflowIntegrationTestBase { } + @Test(groups = {"echoGroup"}, dependsOnGroups = {"setupTests"}) + public void testEchoServiceStampede() throws Exception { + log.info("Running job in Stampede..."); + DocumentCreator documentCreator = new DocumentCreator(airavataAPI); + documentCreator.createSlurmDocs(); + List<DataObjectType> exInputs = new ArrayList<DataObjectType>(); + DataObjectType input = new DataObjectType(); + input.setKey("echo_input"); + input.setType(DataType.STRING.toString()); + input.setValue("echo_output=Hello World"); + exInputs.add(input); + + List<DataObjectType> exOut = new ArrayList<DataObjectType>(); + DataObjectType output = new DataObjectType(); + output.setKey("echo_output"); + output.setType(DataType.STRING.toString()); + output.setValue(""); + exOut.add(output); + + Experiment simpleExperiment = ExperimentModelUtil.createSimpleExperiment("project1", "admin", "echoExperiment", "SimpleEcho3", "SimpleEcho3", exInputs); + simpleExperiment.setExperimentOutputs(exOut); + + ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling("stampede.tacc.xsede.org", 1, 1, 1, "normal", 0, 0, 1, "TG-STA110014S"); + scheduling.setResourceHostId("stampede-host"); + UserConfigurationData userConfigurationData = new UserConfigurationData(); + userConfigurationData.setAiravataAutoSchedule(false); + userConfigurationData.setOverrideManualScheduledParams(false); + userConfigurationData.setComputationalResourceScheduling(scheduling); + simpleExperiment.setUserConfigurationData(userConfigurationData); + final String expId = createExperiment(simpleExperiment); + System.out.println("Experiment Id returned : " + expId); + log.info("Experiment Id returned : " + expId ); + launchExperiment(expId); + System.out.println("Launched successfully"); + + Thread monitor = (new Thread(){ + public void run() { + Map<String, JobStatus> jobStatuses = null; + while (true) { + try { + jobStatuses = client.getJobStatuses(expId); + Set<String> strings = jobStatuses.keySet(); + for (String key : strings) { + JobStatus jobStatus = jobStatuses.get(key); + if(jobStatus == null){ + return; + }else { + if (JobState.COMPLETE.equals(jobStatus.getJobState())) { + log.info("Job completed Job ID: " + key); + return; + }else{ + log.info("Job ID:" + key + " Job Status : " + jobStatuses.get(key).getJobState().toString()); + } + } + } + Thread.sleep(5000); + } catch (Exception e) { + log.error("Thread interrupted", e.getMessage()); + } + } + } + }); + monitor.start(); + try { + monitor.join(); + } catch (InterruptedException e) { + log.error("Thread interrupted..", e.getMessage()); + } + + } + @Test(groups = {"performanceTesting"}) public void testExistsHostDescriptor() throws AiravataAPIInvocationException { airavataAPI.getApplicationManager().isHostDescriptorExists("trestles.sdsc.edu"); http://git-wip-us.apache.org/repos/asf/airavata/blob/1d7671ed/modules/integration-tests/src/test/resources/SLURMTemplate.xslt ---------------------------------------------------------------------- diff --git a/modules/integration-tests/src/test/resources/SLURMTemplate.xslt b/modules/integration-tests/src/test/resources/SLURMTemplate.xslt new file mode 100644 index 0000000..169dbbf --- /dev/null +++ b/modules/integration-tests/src/test/resources/SLURMTemplate.xslt @@ -0,0 +1,69 @@ +<!--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. --> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://airavata.apache.org/gsi/ssh/2012/12"> +<xsl:output method="text" /> +<xsl:template match="/ns:JobDescriptor"> +<xsl:choose> +<xsl:when test="ns:shellName"> +#!<xsl:value-of select="ns:shellName"/> + </xsl:when> + </xsl:choose> +<xsl:choose> + <xsl:when test="ns:queueName"> +#SBATCH -p <xsl:value-of select="ns:queueName"/> + </xsl:when> + </xsl:choose> +<xsl:choose> + <xsl:when test="ns:nodes"> +#SBATCH -n <xsl:value-of select="ns:nodes"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:mailAddress"> +#SBATCH -mail-user=<xsl:value-of select="ns:mailAddress"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:mailType"> +#SBATCH -mail-type=<xsl:value-of select="ns:mailType"/> + </xsl:when> + </xsl:choose> + <xsl:choose> +<xsl:when test="ns:acountString"> +#SBATCH -A <xsl:value-of select="ns:acountString"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:maxWallTime"> +#SBATCH -t <xsl:value-of select="ns:maxWallTime"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:jobName"> +#SBATCH -J <xsl:value-of select="ns:jobName"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:standardOutFile"> +#SBATCH -o <xsl:value-of select="ns:standardOutFile"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:standardOutFile"> +#SBATCH -e <xsl:value-of select="ns:standardErrorFile"/> + </xsl:when> + </xsl:choose> +cd <xsl:text> </xsl:text><xsl:value-of select="ns:workingDirectory"/><xsl:text>
</xsl:text> + <xsl:choose><xsl:when test="ns:jobSubmitterCommand"> +<xsl:value-of select="ns:jobSubmitterCommand"/><xsl:text> </xsl:text></xsl:when></xsl:choose><xsl:value-of select="ns:executablePath"/><xsl:text> </xsl:text> +<xsl:for-each select="ns:inputs/ns:input"> + <xsl:value-of select="."/><xsl:text> </xsl:text> + </xsl:for-each> +</xsl:template> + +</xsl:stylesheet> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/1d7671ed/modules/integration-tests/src/test/resources/airavata-server.properties ---------------------------------------------------------------------- diff --git a/modules/integration-tests/src/test/resources/airavata-server.properties b/modules/integration-tests/src/test/resources/airavata-server.properties new file mode 100644 index 0000000..623b552 --- /dev/null +++ b/modules/integration-tests/src/test/resources/airavata-server.properties @@ -0,0 +1,282 @@ +# +# +# 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 all Airavata Services: +# Registry, Workflow Interpreter, GFac, Message Broker, Message Box +# +########################################################################### + +########################################################################### +# Airavata Embedded-Tomcat Server Configuration +########################################################################### +# By default, tomcat runs on port 80. If the port is changed, it will be +# have to be specified with port properties. This will be picked up by +# the registry service to register the service end-points. + +port=8080 + +# Axis2 server automatically picks up IP address from axis configuration, +# but some DHCP enables machines do not report correct ip addresses, +# in which case, the IP address can be manually specified. + +#ip=192.2.33.12 + + +#This property will enable https and stops http, during the url registration, https urls will be stored and +# http urls will not get registered, because currently airavata supports only one url for each service +#enable.https=false +#system properties used by services to register service URLs +system.gateway=default +system.user=admin +system.password=admin +airavata.server.url=http://localhost:8080/airavata/services/registry + +########################################################################### +# Airavata Registry Configuration +########################################################################### +#for derby [AiravataJPARegistry] +registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver +registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata +# MySql database configuration +#registry.jdbc.driver=com.mysql.jdbc.Driver +#registry.jdbc.url=jdbc:mysql://localhost:3306/persistent_data +registry.jdbc.user=airavata +registry.jdbc.password=airavata +start.derby.server.mode=true +validationQuery=SELECT 1 from CONFIGURATION +jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true +# Properties to setup registry service +default.registry.user=admin +default.registry.password=admin +default.registry.password.hash.method=SHA +default.registry.gateway=default +#for rest [RegistryClient] +#registry.jdbc.url=http://localhost:9080/airavata-services + +#user defined registry accessor classes +#class.provenance.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.configuration.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.descriptor.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.project.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.user.workflow.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.published.workflow.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry + +############################################################ ############### +# Airavata Workflow Interpreter Configurations +########################################################################### + +runInThread=true +provenance=true +provenanceWriterThreadPoolSize=20 +gfac.embedded=true + +# +# Security Configuration used by Airavata Generic Factory Service +# to interact with Computational Resources. +# + +########################################################################### +# Airavata GFac MyProxy GSI credentials to access Grid Resources. +########################################################################### + +myproxy.server=myproxy.teragrid.org +myproxy.user=ogce +myproxy.pass= +myproxy.life=3600 +# XSEDE Trusted certificates can be downloaded from https://software.xsede.org/security/xsede-certs.tar.gz +trusted.cert.location=/Users/chathuri/dev/airavata/cert/certificates +# SSH PKI key pair or ssh password can be used SSH based authentication is used. +# if user specify both password authentication gets the higher preference + +################# ---------- For ssh key pair authentication ------------------- ################ +#public.ssh.key=/path to public key for ssh +#ssh.username=username for ssh connection +#private.ssh.key=/path to private key file for ssh +#ssh.keypass=passphrase for the private key + + +################# ---------- For ssh key pair authentication ------------------- ################ +#ssh.username=username for ssh connection +#ssh.password=Password for ssh connection + + + +########################################################################### +# Airavata Message Broker Basic Configurations. +# the Advanced section provides detailed custom configuration properties. +########################################################################### + +# Default derby database configuration +broker.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver +broker.jdbc.url=jdbc:derby:wsmg;create=true;user=airavata;password=airavata + +# Note: This database will only be used if 'broker.storage.type=persistent' +# is set in advanced properties below. +# MySql database configuration +#broker.jdbc.driver=com.mysql.jdbc.Driver +#broker.jdbc.url=jdbc:mysql://localhost:3306/wsmg?user=airavata&password=airavata + +########################################################################### +# Airavata Message Box Basic Configurations, +# the Advanced section provides detailed custom configuration properties. +########################################################################### + +# Default derby database +msgBox.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver +msgBox.jdbc.url=jdbc:derby:wsmg;create=true;user=airavata;password=airavata + +# MySql database configuration +#msgBox.jdbc.driver=com.mysql.jdbc.Driver +#msgBox.jdbc.url=jdbc:mysql://localhost:3306/wsmg?user=airavata&password=airavata + +########################################################################### +# Advance configuration to change service implementations +########################################################################### + +#Update the server context root path if airavata server is deployed under a different context root other than axis2 +server.context-root=airavata-server + +# +# Class which implemented HostScheduler interface. It will determine the which host to submit the request +# +host.scheduler=org.apache.airavata.gfac.scheduler.impl.SimpleHostScheduler + +# +# Data Service Plugins classes +# +datachain.classes= org.apache.airavata.core.gfac.extension.data.RegistryDataService + +# +# Pre execution Plugins classes. For example, GridFTP Input Staging +# +prechain.classes= org.apache.airavata.core.gfac.extension.pre.GridFtpInputStaging +prechain.classes= org.apache.airavata.core.gfac.extension.pre.HttpInputStaging + +# +# Post execution Plugins classes. For example, GridFTP Output Staging +# +postchain.classes= org.apache.airavata.core.gfac.extension.post.GridFtpOutputStaging +postchain.classes= org.apache.airavata.core.gfac.extension.post.OutputRegister + +# +# Advanced Message Broker Configurations +# + +#socket time out in milliseconds for sending messages. (defaults is 20000) +broker.socket.timeout=60000 + +broker.storage.type=persistent +#broker.storage.type=memory + +#specifies wether delivery component should be started or not. +broker.start.delivery.thread=true + +#fixed thread pool based delivery +#broker.delivery.method=pcrew + +#dynamic thread pool based delivery +#broker.delivery.method=parallel + +#single thread delivery +broker.delivery.method=serial + +#number of message delivery failures before a url become black listed (default is 2) +#broker.msg.delivery.retries=2 + +#time period (in seconds) a url will be kept blacklisted (default is 5 seconds) +#consumer.expiration.time.gap=5 + +#maximum number of messages to be send to a one consumer/url at time. +#applicable if 'broker.delivery.method' is 'pcrew' . (default is 10) + +#sending.batch.size=10 + +#size of the thread pool. only applicable if 'broker.delivery.method' is 'pcrew'. (default is 4) +#sending.thread.pool.size=4 + +# +# Advanced Message Box Configurations +# +msgBox.usedatabase=true +messagePreservationDays=2 +messagePreservationHours=0 +messagePreservationMinutes=0 +messagePerservationIntervalDays=0 +messagePerservationIntervalHours=1 +messagePerservationIntervalMinutes=0 + +###---------------------------REGISTRY API IMPLEMENTATION---------------------------### + +class.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.registry.accessor=org.apache.airavata.rest.client.RegistryClient + +########################################################################### +# AMQP Notification Configuration +########################################################################### +amqp.notification.enable=1 + +amqp.broker.host=localhost +amqp.broker.port=5672 +amqp.broker.username=guest +amqp.broker.password=guest + +amqp.sender=org.apache.airavata.wsmg.client.amqp.rabbitmq.AMQPSenderImpl +amqp.topic.sender=org.apache.airavata.wsmg.client.amqp.rabbitmq.AMQPTopicSenderImpl +amqp.broadcast.sender=org.apache.airavata.wsmg.client.amqp.rabbitmq.AMQPBroadcastSenderImpl + +###---------------------------Computational Middleware Configurations---------------------------### + +#enable.application.job.status.history=true +#http://localhost:8080/axis2/services/RegistryService?wsdl +registry.service.wsdl=http://localhost:${port}/${server.context-root}/services/RegistryService?wsdl + +# If false, disables two phase commit when submitting jobs +TwoPhase=true + + +###---------------------------Monitoring module Configurations---------------------------### +#This will be the primary monitoring tool which runs in airavata, in future there will be multiple monitoring +#mechanisms and one would be able to start a monitor +primaryMonitor=org.apache.airavata.job.monitor.impl.pull.qstat.QstatMonitor +#We do not support a secondaray monitoring at this point or host specific monitoring +secondaryMonitor=org.apache.airavata.job.monitor.impl.push.amqp.AMQPMonitor +#This is the amqp related configuration and this lists down the Rabbitmq host, this is an xsede specific configuration +amqp.hosts=info1.dyn.teragrid.org,info2.dyn.teragrid.org +connection.name=xsede_private + + +###---------------------------Orchestrator module Configurations---------------------------### +job.submitter=org.apache.airavata.orchestrator.core.impl.EmbeddedGFACJobSubmitter +job.validator=org.apache.airavata.orchestrator.core.validator.impl.SimpleAppDataValidator +submitter.interval=10000 +threadpool.size=10 +start.submitter=true +embedded.mode=true +enable.validation=false +orchestrator=org.apache.airavata.orchestrator.server.OrchestratorServer + +###---------------------------API Server module Configurations---------------------------### +apiserver=org.apache.airavata.api.server.AiravataAPIServer + +servers=apiserver,orchestrator + +
