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/05/14 17:14:20 UTC

airavata git commit: After submit to compute resource, use JobId to verify if job id is not null.

Repository: airavata
Updated Branches:
  refs/heads/master e6d66d000 -> 6b7a84ce2


After submit to compute resource, use JobId to verify if job id is not null.


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

Branch: refs/heads/master
Commit: 6b7a84ce2f3d4d5277cfbd1a12ee4e219fa6e31f
Parents: e6d66d0
Author: shamrath <sh...@gmail.com>
Authored: Thu May 14 11:14:17 2015 -0400
Committer: shamrath <sh...@gmail.com>
Committed: Thu May 14 11:14:17 2015 -0400

----------------------------------------------------------------------
 .../gfac/ssh/provider/impl/SSHProvider.java     | 25 ++++++++++++++------
 1 file changed, 18 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/6b7a84ce/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
index 9bc68bd..415b632 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
@@ -47,6 +47,7 @@ import org.apache.airavata.gsi.ssh.api.Cluster;
 import org.apache.airavata.gsi.ssh.api.CommandExecutor;
 import org.apache.airavata.gsi.ssh.api.SSHApiException;
 import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
+import org.apache.airavata.gsi.ssh.impl.JobStatus;
 import org.apache.airavata.gsi.ssh.impl.RawCommandInfo;
 import org.apache.airavata.gsi.ssh.impl.StandardOutReader;
 import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
@@ -166,19 +167,25 @@ public class SSHProvider extends AbstractProvider {
                         GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.SUBMITTED, monitorPublisher);
                         monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext)
                                 , GfacExperimentState.JOBSUBMITTED));
-                    }
-                    jobExecutionContext.setJobDetails(jobDetails);
-                    String verifyJobId = verifyJobSubmission(cluster, jobDetails);
-                    if (verifyJobId != null) {
-                        // JobStatus either changed from SUBMITTED to QUEUED or directly to QUEUED
-                        if (jobID == null) {
+                        jobExecutionContext.setJobDetails(jobDetails);
+                        if (verifyJobSubmissionByJobId(cluster, jobID)) {
+                            monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext)
+                                    , GfacExperimentState.JOBSUBMITTED));
+                            GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.QUEUED, monitorPublisher);
+                        }
+                    } else {
+                        jobExecutionContext.setJobDetails(jobDetails);
+                        String verifyJobId = verifyJobSubmission(cluster, jobDetails);
+                        if (verifyJobId != null) {
+                            // JobStatus either changed from SUBMITTED to QUEUED or directly to QUEUED
                             jobID = verifyJobId;
                             jobDetails.setJobID(jobID);
                             monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext)
                                     , GfacExperimentState.JOBSUBMITTED));
+                            GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.QUEUED, monitorPublisher);
                         }
-                        GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.QUEUED, monitorPublisher);
                     }
+
                     if (jobID == null) {
                         log.error("Couldn't find remote jobId for JobName:" + jobDetails.getJobName() + ", ExperimentId:" + jobExecutionContext.getExperimentID());
                         GFacUtils.updateExperimentStatus(jobExecutionContext.getExperimentID(), ExperimentState.FAILED);
@@ -212,6 +219,10 @@ public class SSHProvider extends AbstractProvider {
         }
     }
 
+    private boolean verifyJobSubmissionByJobId(Cluster cluster, String jobID) throws SSHApiException {
+        return cluster.getJobStatus(jobID) != null;
+    }
+
     private String verifyJobSubmission(Cluster cluster, JobDetails jobDetails) {
         String jobName = jobDetails.getJobName();
         String jobId = null;