You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/10/19 17:56:00 UTC

airavata git commit: Use walltime provided by job submission task model if available

Repository: airavata
Updated Branches:
  refs/heads/orchestratorTaskBreakdown e7cbd9f81 -> 9e3d84be8


Use walltime provided by job submission task model if available


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

Branch: refs/heads/orchestratorTaskBreakdown
Commit: 9e3d84be8d39ac739a6a35b768589d4fc7207ae3
Parents: e7cbd9f
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Mon Oct 19 11:54:20 2015 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Mon Oct 19 11:55:35 2015 -0400

----------------------------------------------------------------------
 .../org/apache/airavata/gfac/core/GFacUtils.java   | 17 +++++++++++++++--
 .../gfac/impl/task/SSHForkJobSubmissionTask.java   |  2 +-
 .../gfac/impl/task/SSHJobSubmissionTask.java       |  2 +-
 3 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/9e3d84be/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
index 871a9ab..d135eec 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
@@ -41,12 +41,14 @@ import org.apache.airavata.model.messaging.event.*;
 import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
 import org.apache.airavata.model.status.*;
+import org.apache.airavata.model.task.JobSubmissionTaskModel;
 import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
 import org.apache.airavata.registry.cpi.*;
 import org.apache.airavata.registry.cpi.utils.Constants;
 import org.apache.commons.io.FileUtils;
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.utils.ZKPaths;
+import org.apache.thrift.TException;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.ZooDefs;
 import org.apache.zookeeper.data.ACL;
@@ -403,7 +405,7 @@ public class GFacUtils {
         return ZKPaths.makePath(ZkConstants.ZOOKEEPER_SERVERS_NODE, ZkConstants.ZOOKEEPER_GFAC_SERVER_NODE);
     }
 
-    public static JobDescriptor createJobDescriptor(ProcessContext processContext) throws GFacException, AppCatalogException, ApplicationSettingsException {
+    public static JobDescriptor createJobDescriptor(ProcessContext processContext, TaskContext taskContext) throws GFacException, AppCatalogException, ApplicationSettingsException {
         JobDescriptor jobDescriptor = new JobDescriptor();
         String emailIds = null;
         ProcessModel processModel = processContext.getProcessModel();
@@ -513,6 +515,15 @@ public class GFacUtils {
         jobDescriptor.setShellName("/bin/bash");
         jobDescriptor.setAllEnvExport(true);
         jobDescriptor.setOwner(processContext.getRemoteCluster().getServerInfo().getUserName());
+        // get walltime
+        try {
+            JobSubmissionTaskModel jobSubmissionTaskModel = ((JobSubmissionTaskModel) taskContext.getSubTaskModel());
+            if (jobSubmissionTaskModel.getWallTime() > 0) {
+                jobDescriptor.setMaxWallTime(jobSubmissionTaskModel.getWallTime() + "");
+            }
+        } catch (TException e) {
+            log.error("Error while getting job submissiont sub task model", e);
+        }
 
         ComputationalResourceSchedulingModel scheduling = processModel.getResourceSchedule();
         if (scheduling != null) {
@@ -535,7 +546,9 @@ public class GFacUtils {
                 jobDescriptor.setProcessesPerNode(ppn);
                 jobDescriptor.setCPUCount(totalCPUCount);
             }
-            if (scheduling.getWallTimeLimit() > 0) {
+            // max wall time may be set before this level if jobsubmission task has wall time configured to this job,
+            // if so we ignore scheduling configuration.
+            if (scheduling.getWallTimeLimit() > 0 && jobDescriptor.getMaxWallTime() != null) {
                 jobDescriptor.setMaxWallTime(String.valueOf(scheduling.getWallTimeLimit()));
                 if (resourceJobManager != null) {
                     if (resourceJobManager.getResourceJobManagerType().equals(ResourceJobManagerType.LSF)) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/9e3d84be/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java
index 4d121e5..3a14b2e 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java
@@ -63,7 +63,7 @@ public class SSHForkJobSubmissionTask implements JobSubmissionTask {
             JobModel jobModel = processContext.getJobModel();
             jobModel.setTaskId(taskContext.getTaskId());
             RemoteCluster remoteCluster = processContext.getRemoteCluster();
-            JobDescriptor jobDescriptor = GFacUtils.createJobDescriptor(processContext);
+            JobDescriptor jobDescriptor = GFacUtils.createJobDescriptor(processContext, taskContext);
             jobModel.setJobName(jobDescriptor.getJobName());
             ResourceJobManager resourceJobManager = GFacUtils.getResourceJobManager(processContext);
             JobManagerConfiguration jConfig = null;

http://git-wip-us.apache.org/repos/asf/airavata/blob/9e3d84be/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
index 7aba3b4..4cc041c 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
@@ -63,7 +63,7 @@ public class SSHJobSubmissionTask implements JobSubmissionTask {
 		    JobModel jobModel = processContext.getJobModel();
 		    jobModel.setTaskId(taskContext.getTaskId());
 		    RemoteCluster remoteCluster = processContext.getRemoteCluster();
-		    JobDescriptor jobDescriptor = GFacUtils.createJobDescriptor(processContext);
+		    JobDescriptor jobDescriptor = GFacUtils.createJobDescriptor(processContext,taskContext);
 		    jobModel.setJobName(jobDescriptor.getJobName());
 		    ResourceJobManager resourceJobManager = GFacUtils.getResourceJobManager(processContext);
 		    JobManagerConfiguration jConfig = null;