Repository: airavata Updated Branches: refs/heads/airavata-0.15-release-branch df5b46459 -> 5200ce5ca
reverted 919e6d657ca3da7954 and f4d8fb9a1096a2c647 which substring the jobId, then add backlight computer resouce to email based monitor code Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/5200ce5c Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/5200ce5c Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/5200ce5c Branch: refs/heads/airavata-0.15-release-branch Commit: 5200ce5ca65c7ff4befed645d28bab006a3f1c61 Parents: df5b464 Author: Shameera Rathanyaka <[email protected]> Authored: Tue Jun 9 12:17:16 2015 -0400 Committer: Shameera Rathanyaka <[email protected]> Committed: Tue Jun 9 12:17:16 2015 -0400 ---------------------------------------------------------------------- .../gfac/monitor/email/EmailBasedMonitor.java | 7 ++- .../gfac/ssh/provider/impl/SSHProvider.java | 52 +++++++++----------- .../gsi/ssh/api/job/PBSOutputParser.java | 3 ++ .../gsi/ssh/impl/GSISSHAbstractCluster.java | 9 ---- 4 files changed, 28 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/5200ce5c/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java index fd9d536..a9363cb 100644 --- a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java +++ b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java @@ -157,10 +157,9 @@ public class EmailBasedMonitor implements Runnable{ default: if (addressStr.contains("ls4.tacc.utexas.edu>")) { // lonestar return ResourceJobManagerType.UGE; - } else if (addressStr.contains("blacklight.psc.xsede.org")){ - return ResourceJobManagerType.PBS; - } - else { + } else if (addressStr.contains("blacklight.psc.xsede.org")) { + return ResourceJobManagerType.PBS; + } else { throw new AiravataException("[EJM]: Couldn't identify Resource job manager type from address " + addressStr); } } http://git-wip-us.apache.org/repos/asf/airavata/blob/5200ce5c/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 27708c7..a9eaae2 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 @@ -21,18 +21,6 @@ package org.apache.airavata.gfac.ssh.provider.impl; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Calendar; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Set; - import org.airavata.appcatalog.cpi.AppCatalogException; import org.apache.airavata.common.exception.AiravataException; import org.apache.airavata.common.exception.ApplicationSettingsException; @@ -72,15 +60,19 @@ import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerTy import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission; import org.apache.airavata.model.workspace.experiment.CorrectiveAction; import org.apache.airavata.model.workspace.experiment.ErrorCategory; +import org.apache.airavata.model.workspace.experiment.ExperimentState; import org.apache.airavata.model.workspace.experiment.JobDetails; import org.apache.airavata.model.workspace.experiment.JobState; import org.apache.airavata.model.workspace.experiment.TaskState; import org.apache.xmlbeans.XmlException; +import org.apache.zookeeper.KeeperException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import sun.reflect.generics.reflectiveObjects.NotImplementedException; +import java.io.*; +import java.util.*; + /** * Execute application using remote SSH */ @@ -178,27 +170,27 @@ public class SSHProvider extends AbstractProvider { monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext) , GfacExperimentState.JOBSUBMITTED)); jobExecutionContext.setJobDetails(jobDetails); - try { - boolean verifyJobSubmissionByJobId = verifyJobSubmissionByJobId(cluster, jobID); - if (verifyJobSubmissionByJobId) { - monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext) - , GfacExperimentState.JOBSUBMITTED)); - GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.QUEUED, monitorPublisher); - } - } catch (SSHApiException e) { - log.error("Not able to find job " + jobID , e); - } - } else { - jobExecutionContext.setJobDetails(jobDetails); - String verifyJobId = verifyJobSubmission(cluster, jobDetails); - if (verifyJobId != null && !verifyJobId.isEmpty()) { - // JobStatus either changed from SUBMITTED to QUEUED or directly to QUEUED - jobID = verifyJobId; - jobDetails.setJobID(jobID); + if (verifyJobSubmissionByJobId(cluster, jobID)) { monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext) , GfacExperimentState.JOBSUBMITTED)); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.QUEUED, monitorPublisher); } + } else { + jobExecutionContext.setJobDetails(jobDetails); + int verificationTryCount = 0; + while (verificationTryCount++ < 3) { + String verifyJobId = verifyJobSubmission(cluster, jobDetails); + if (verifyJobId != null && !verifyJobId.isEmpty()) { + // 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); + break; + } + Thread.sleep(verificationTryCount*1000); + } } if (jobID == null || jobID.isEmpty()) { http://git-wip-us.apache.org/repos/asf/airavata/blob/5200ce5c/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java ---------------------------------------------------------------------- diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java index 81f241d..6bc5cde 100644 --- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java +++ b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java @@ -124,6 +124,9 @@ public class PBSOutputParser implements OutputParser { public String parseJobSubmission(String rawOutput) { log.debug(rawOutput); + if(rawOutput.contains(".")){ + rawOutput = rawOutput.substring(0, rawOutput.indexOf(".")); + } return rawOutput; //In PBS stdout is going to be directly the jobID } http://git-wip-us.apache.org/repos/asf/airavata/blob/5200ce5c/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 a858ada..f8b46c8 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 @@ -242,9 +242,6 @@ public class GSISSHAbstractCluster implements Cluster { 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; } - if(jobID.contains(".")){ - jobID = jobID.substring(0, jobID.indexOf(".")); - } RawCommandInfo rawCommandInfo = jobManagerConfiguration.getCancelCommand(jobID); StandardOutReader stdOutReader = new StandardOutReader(); @@ -411,9 +408,6 @@ public class GSISSHAbstractCluster implements Cluster { public synchronized JobDescriptor getJobDescriptorById(String jobID) throws SSHApiException { - if(jobID.contains(".")){ - jobID = jobID.substring(0, jobID.indexOf(".")); - } RawCommandInfo rawCommandInfo = jobManagerConfiguration.getMonitorCommand(jobID); StandardOutReader stdOutReader = new StandardOutReader(); log.info("Executing RawCommand : " + rawCommandInfo.getCommand()); @@ -425,9 +419,6 @@ public class GSISSHAbstractCluster implements Cluster { } public synchronized JobStatus getJobStatus(String jobID) throws SSHApiException { - if(jobID.contains(".")){ - jobID = jobID.substring(0, jobID.indexOf(".")); - } RawCommandInfo rawCommandInfo = jobManagerConfiguration.getMonitorCommand(jobID); StandardOutReader stdOutReader = new StandardOutReader(); log.info("Executing RawCommand : " + rawCommandInfo.getCommand());
