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/18 17:03:47 UTC
airavata git commit: verify job in remote host before cancel
operation.
Repository: airavata
Updated Branches:
refs/heads/master 8ae827d91 -> 0a3ab51f8
verify job in remote host before cancel operation.
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/0a3ab51f
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/0a3ab51f
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/0a3ab51f
Branch: refs/heads/master
Commit: 0a3ab51f86eb6f87f58720f6573d1115ba34a016
Parents: 8ae827d
Author: shamrath <sh...@gmail.com>
Authored: Mon May 18 11:03:42 2015 -0400
Committer: shamrath <sh...@gmail.com>
Committed: Mon May 18 11:03:42 2015 -0400
----------------------------------------------------------------------
.../airavata/gfac/ssh/provider/impl/SSHProvider.java | 7 +++++--
.../airavata/gsi/ssh/impl/GSISSHAbstractCluster.java | 11 ++++++++---
2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/0a3ab51f/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 805eee8..b5c94e2 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
@@ -260,8 +260,11 @@ public class SSHProvider extends AbstractProvider {
}
try {
if (jobDetails.getJobID() != null) {
- cluster.cancelJob(jobDetails.getJobID());
- GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.CANCELED, monitorPublisher);
+ if (cluster.cancelJob(jobDetails.getJobID()) != null) {
+ GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.CANCELED, monitorPublisher);
+ } else {
+ log.info("Job Cancel operation failed");
+ }
} else {
log.error("No Job Id is set, so cannot perform the cancel operation !!!");
throw new GFacProviderException("Cancel request failed to cancel job as JobId is null in Job Execution Context");
http://git-wip-us.apache.org/repos/asf/airavata/blob/0a3ab51f/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
index 3c2293d..fd3dea7 100644
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
+++ b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
@@ -237,12 +237,17 @@ public class GSISSHAbstractCluster implements Cluster {
}
public synchronized JobDescriptor cancelJob(String jobID) throws SSHApiException {
- RawCommandInfo rawCommandInfo = jobManagerConfiguration.getCancelCommand(jobID);
+ JobStatus jobStatus = getJobStatus(jobID);
+ if (jobStatus == null || jobStatus == JobStatus.U) {
+ log.info("Validation before cancel is failed, couldn't found job in remote host to cancel. Job may be already completed|failed|canceled");
+ return null;
+ }
+ RawCommandInfo rawCommandInfo = jobManagerConfiguration.getCancelCommand(jobID);
StandardOutReader stdOutReader = new StandardOutReader();
log.info("Executing RawCommand : " + rawCommandInfo.getCommand());
CommandExecutor.executeCommand(rawCommandInfo, this.getSession(), stdOutReader);
- String outputifAvailable = getOutputifAvailable(stdOutReader, "Error reading output of job submission",jobManagerConfiguration.getBaseCancelCommand());
+ String outputifAvailable = getOutputifAvailable(stdOutReader, "Error reading output of job submission", jobManagerConfiguration.getBaseCancelCommand());
// this might not be the case for all teh resources, if so Cluster implementation can override this method
// because here after cancelling we try to get the job description and return it back
try {
@@ -254,7 +259,7 @@ public class GSISSHAbstractCluster implements Cluster {
log.debug("Job Cancel operation was not successful !");
return null;
}
- }catch (Exception e){
+ } catch (Exception e) {
//its ok to fail to get status when the job is gone
return null;
}