You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2012/07/05 20:24:01 UTC
svn commit: r1357788 -
/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
Author: lahiru
Date: Thu Jul 5 18:24:00 2012
New Revision: 1357788
URL: http://svn.apache.org/viewvc?rev=1357788&view=rev
Log:
setting queue name from application description.
Modified:
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java?rev=1357788&r1=1357787&r2=1357788&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java Thu Jul 5 18:24:00 2012
@@ -35,6 +35,7 @@ import org.apache.airavata.core.gfac.exc
import org.apache.airavata.core.gfac.utils.GFacConstants;
import org.apache.airavata.schemas.gfac.GramApplicationDeploymentType;
import org.apache.airavata.schemas.gfac.NameValuePairType;
+import org.apache.airavata.schemas.gfac.QueueType;
import org.apache.airavata.schemas.gfac.URIArrayType;
import org.apache.airavata.schemas.wec.ContextHeaderDocument;
import org.globus.gram.GramAttributes;
@@ -49,11 +50,12 @@ public class GramRSLGenerator {
private enum JobType {
SINGLE, MPI, MULTIPLE, CONDOR
- };
+ }
+
+ ;
public static GramAttributes configureRemoteJob(InvocationContext context) throws ToolsException {
GramApplicationDeploymentType app = (GramApplicationDeploymentType) context.getExecutionDescription().getApp().getType();
-
GramAttributes jobAttr = new GramAttributes();
jobAttr.setExecutable(app.getExecutableLocation());
jobAttr.setDirectory(app.getStaticWorkingDirectory());
@@ -65,8 +67,8 @@ public class GramRSLGenerator {
* and application description documents
*/
NameValuePairType[] env = app.getApplicationEnvironmentArray();
- if(env.length != 0){
- Map<String, String> nv =new HashMap<String, String>();
+ if (env.length != 0) {
+ Map<String, String> nv = new HashMap<String, String>();
for (int i = 0; i < env.length; i++) {
String key = env[i].getName();
String value = env[i].getValue();
@@ -95,99 +97,104 @@ public class GramRSLGenerator {
if (app.getStandardInput() != null && !"".equals(app.getStandardInput())) {
jobAttr.setStdin(app.getStandardInput());
- } else {
- MessageContext<Object> input = context.getInput();
- for (Iterator<String> iterator = input.getNames(); iterator.hasNext();) {
- String paramName = iterator.next();
- ActualParameter actualParameter = (ActualParameter) input.getValue(paramName);
- if ("URIArray".equals(actualParameter.getType().getType().toString())) {
- String[] values = ((URIArrayType) actualParameter.getType()).getValueArray();
- for (String value : values) {
- jobAttr.addArgument(value);
- }
- } else {
- String paramValue = input.getStringValue(paramName);
- jobAttr.addArgument(paramValue);
- }
- }
- }
+ } else {
+ MessageContext<Object> input = context.getInput();
+ for (Iterator<String> iterator = input.getNames(); iterator.hasNext(); ) {
+ String paramName = iterator.next();
+ ActualParameter actualParameter = (ActualParameter) input.getValue(paramName);
+ if ("URIArray".equals(actualParameter.getType().getType().toString())) {
+ String[] values = ((URIArrayType) actualParameter.getType()).getValueArray();
+ for (String value : values) {
+ jobAttr.addArgument(value);
+ }
+ } else {
+ String paramValue = input.getStringValue(paramName);
+ jobAttr.addArgument(paramValue);
+ }
+ }
+ }
// Using the workflowContext Header values if user provided them in the request and overwrite the default values in DD
-ContextHeaderDocument.ContextHeader currentContextHeader = WorkflowContextHeaderBuilder.getCurrentContextHeader();
-if(currentContextHeader.getWorkflowSchedulingContext()!= null){
-if (currentContextHeader != null &&
- currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray() != null &&
- currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray().length > 0) {
- try {
- int cpuCount = currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray()[0].getCpuCount();
- app.setCpuCount(cpuCount);
- } catch (NullPointerException e) {
- log.info("No Value sent in WorkflowContextHeader for CPU Count, value in the Deployment Descriptor will be used");
- context.getExecutionContext().getNotifier().executionFail(context,e,"No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
- }
- try {
- int nodeCount = currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray()[0].getNodeCount();
- app.setNodeCount(nodeCount);
- } catch (NullPointerException e) {
- log.info("No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
- context.getExecutionContext().getNotifier().executionFail(context,e,"No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
- }
- try {
- String queueName = currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray()[0].getQueueName();
- if(queueName != null){
- jobAttr.setQueue(queueName);
- }else{
- if (app.getQueue() != null) {
- if (app.getQueue().getQueueName() != null) {
- System.out.println("Testing");
- log.info("Setting job queue to " + app.getQueue().getQueueName());
- jobAttr.setQueue(app.getQueue().getQueueName());
+ ContextHeaderDocument.ContextHeader currentContextHeader = WorkflowContextHeaderBuilder.getCurrentContextHeader();
+ if (currentContextHeader.getWorkflowSchedulingContext() != null) {
+ if (currentContextHeader != null &&
+ currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray() != null &&
+ currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray().length > 0) {
+ try {
+ int cpuCount = currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray()[0].getCpuCount();
+ app.setCpuCount(cpuCount);
+ } catch (NullPointerException e) {
+ log.info("No Value sent in WorkflowContextHeader for CPU Count, value in the Deployment Descriptor will be used");
+ context.getExecutionContext().getNotifier().executionFail(context, e, "No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
+ }
+ try {
+ int nodeCount = currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray()[0].getNodeCount();
+ app.setNodeCount(nodeCount);
+ } catch (NullPointerException e) {
+ log.info("No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
+ context.getExecutionContext().getNotifier().executionFail(context, e, "No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
+ }
+ try {
+ String queueName = currentContextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray()[0].getQueueName();
+ if (queueName != null) {
+ if(app.getQueue() == null){
+ QueueType queueType = app.addNewQueue();
+ queueType.setQueueName(queueName);
+ }else{
+ app.getQueue().setQueueName(queueName);
+ }
+ }
+ } catch (NullPointerException e) {
+ log.info("No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
+ context.getExecutionContext().getNotifier().executionFail(context, e, "No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
}
}
}
- } catch (NullPointerException e) {
- log.info("No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
- context.getExecutionContext().getNotifier().executionFail(context,e,"No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used");
- }
-}
-}
-if (app.getNodeCount() > 0) {
- jobAttr.set("hostCount", String.valueOf(app.getNodeCount()));
-}
-if (app.getCpuCount() > 0) {
- log.info("Setting number of procs to " + app.getCpuCount());
- jobAttr.setNumProcs(app.getCpuCount());
-}
-if (app.getMinMemory() > 0) {
- log.info("Setting minimum memory to " + app.getMinMemory());
- jobAttr.setMinMemory(app.getMinMemory());
-}
-if (app.getMaxMemory() > 0) {
- log.info("Setting maximum memory to " + app.getMaxMemory());
- jobAttr.setMaxMemory(app.getMaxMemory());
-}
-if (app.getProjectAccount() != null) {
- if (app.getProjectAccount().getProjectAccountNumber() != null) {
- log.info("Setting project to " + app.getProjectAccount().getProjectAccountNumber());
- jobAttr.setProject(app.getProjectAccount().getProjectAccountNumber());
- }
-}
-String jobType = JobType.SINGLE.toString();
-if (app.getJobType() != null) {
- jobType = app.getJobType().toString();
-}
-if (jobType.equalsIgnoreCase(JobType.SINGLE.toString())) {
- log.info("Setting job type to single");
- jobAttr.setJobType(GramAttributes.JOBTYPE_SINGLE);
-} else if (jobType.equalsIgnoreCase(JobType.MPI.toString())) {
- log.info("Setting job type to mpi");
- jobAttr.setJobType(GramAttributes.JOBTYPE_MPI);
-} else if (jobType.equalsIgnoreCase(JobType.MULTIPLE.toString())) {
- log.info("Setting job type to multiple");
- jobAttr.setJobType(GramAttributes.JOBTYPE_MULTIPLE);
-} else if (jobType.equalsIgnoreCase(JobType.CONDOR.toString())) {
- jobAttr.setJobType(GramAttributes.JOBTYPE_CONDOR);
-}
+ if (app.getNodeCount() > 0) {
+ jobAttr.set("hostCount", String.valueOf(app.getNodeCount()));
+ log.info("Setting number of Nodes to " + app.getCpuCount());
+ }
+ if (app.getCpuCount() > 0) {
+ log.info("Setting number of procs to " + app.getCpuCount());
+ jobAttr.setNumProcs(app.getCpuCount());
+ }
+ if (app.getMinMemory() > 0) {
+ log.info("Setting minimum memory to " + app.getMinMemory());
+ jobAttr.setMinMemory(app.getMinMemory());
+ }
+ if (app.getMaxMemory() > 0) {
+ log.info("Setting maximum memory to " + app.getMaxMemory());
+ jobAttr.setMaxMemory(app.getMaxMemory());
+ }
+ if (app.getProjectAccount() != null) {
+ if (app.getProjectAccount().getProjectAccountNumber() != null) {
+ log.info("Setting project to " + app.getProjectAccount().getProjectAccountNumber());
+ jobAttr.setProject(app.getProjectAccount().getProjectAccountNumber());
+ }
+ }
+ if (app.getQueue() != null) {
+ if (app.getQueue().getQueueName() != null) {
+ System.out.println("Testing");
+ log.info("Setting job queue to " + app.getQueue().getQueueName());
+ jobAttr.setQueue(app.getQueue().getQueueName());
+ }
+ }
+ String jobType = JobType.SINGLE.toString();
+ if (app.getJobType() != null) {
+ jobType = app.getJobType().toString();
+ }
+ if (jobType.equalsIgnoreCase(JobType.SINGLE.toString())) {
+ log.info("Setting job type to single");
+ jobAttr.setJobType(GramAttributes.JOBTYPE_SINGLE);
+ } else if (jobType.equalsIgnoreCase(JobType.MPI.toString())) {
+ log.info("Setting job type to mpi");
+ jobAttr.setJobType(GramAttributes.JOBTYPE_MPI);
+ } else if (jobType.equalsIgnoreCase(JobType.MULTIPLE.toString())) {
+ log.info("Setting job type to multiple");
+ jobAttr.setJobType(GramAttributes.JOBTYPE_MULTIPLE);
+ } else if (jobType.equalsIgnoreCase(JobType.CONDOR.toString())) {
+ jobAttr.setJobType(GramAttributes.JOBTYPE_CONDOR);
+ }
-return jobAttr;
-}
+ return jobAttr;
+ }
}