Repository: airavata Updated Branches: refs/heads/master ae15740d8 -> 2dde0d3aa
Fixed AIRAVATA-1670 , error job notifications handle Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/90aa6395 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/90aa6395 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/90aa6395 Branch: refs/heads/master Commit: 90aa63955ac6cfb3718fc9702ccea6b65ae20314 Parents: ea88999 Author: shamrath <[email protected]> Authored: Wed Apr 15 11:39:20 2015 -0400 Committer: shamrath <[email protected]> Committed: Wed Apr 15 11:39:20 2015 -0400 ---------------------------------------------------------------------- .../gfac/monitor/email/EmailBasedMonitor.java | 8 ++++--- .../monitor/email/parser/PBSEmailParser.java | 22 ++++++++++++-------- .../monitor/email/parser/SLURMEmailParser.java | 14 ++++++------- 3 files changed, 25 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/90aa6395/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 631e1a4..e45de1d 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 @@ -209,12 +209,14 @@ public class EmailBasedMonitor implements Runnable{ if (resultState == JobState.COMPLETE) { GFacThreadPoolExecutor.getFixedThreadPool().submit(new OutHandlerWorker(jEC, BetterGfacImpl.getMonitorPublisher())); }else if (resultState == JobState.QUEUED) { - // TODO - publish queued rabbitmq message + // nothing special thing to do, update the status change to rabbit mq at the end of this method. }else if (resultState == JobState.FAILED) { - // TODO - handle failed scenario jobMonitorMap.remove(jobStatusResult.getJobId()); log.info("Job failed email received , removed job from job monitoring"); -// monitorPublisher.publish(jEC.getJobDetails().getJobStatus()); + }else if (resultState == JobState.CANCELED) { + jobMonitorMap.remove(jobStatusResult.getJobId()); + log.info("Job canceled mail received, removed job from job monitoring"); + } publishJobStatusChange(jEC); } http://git-wip-us.apache.org/repos/asf/airavata/blob/90aa6395/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/PBSEmailParser.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/PBSEmailParser.java b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/PBSEmailParser.java index 6cb961a..a965839 100644 --- a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/PBSEmailParser.java +++ b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/PBSEmailParser.java @@ -40,6 +40,9 @@ public class PBSEmailParser implements EmailParser { private static final String REGEX = "[a-zA-Z: ]*(?<" + JOBID + ">[a-zA-Z0-9-\\.]*)\\s+.*\\s+.*\\s+(?<" + STATUS + ">[a-zA-Z\\ ]*)"; private static final String REGEX_EXIT_STATUS = "Exit_status=(?<" + EXIT_STATUS + ">[\\d]+)"; + public static final String BEGUN_EXECUTION = "Begun execution"; + public static final String EXECUTION_TERMINATED = "Execution terminated"; + public static final String ABORTED_BY_PBS_SERVER = "Aborted by PBS Server"; @Override public JobStatusResult parseEmail(Message message) throws MessagingException, AiravataException { @@ -65,18 +68,19 @@ public class PBSEmailParser implements EmailParser { private JobState getJobState(String statusLine, String content) { switch (statusLine) { - case "Begun execution": + case BEGUN_EXECUTION: return JobState.QUEUED; - case "Execution terminated": + case EXECUTION_TERMINATED: int exitStatus = getExitStatus(content); - switch (exitStatus) { - case 0: - return JobState.COMPLETE; - case 1: - return JobState.FAILED; - default: - return JobState.UNKNOWN; + if (exitStatus == 0) { + return JobState.COMPLETE; + } else if (exitStatus == 271) { + return JobState.CANCELED; + } else { + return JobState.FAILED; } + case ABORTED_BY_PBS_SERVER: + return JobState.FAILED; default: return JobState.UNKNOWN; } http://git-wip-us.apache.org/repos/asf/airavata/blob/90aa6395/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/SLURMEmailParser.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/SLURMEmailParser.java b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/SLURMEmailParser.java index 327caa6..872767b 100644 --- a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/SLURMEmailParser.java +++ b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/SLURMEmailParser.java @@ -40,6 +40,10 @@ public class SLURMEmailParser implements EmailParser { private static final String REGEX = "[A-Z]*\\s[a-zA-Z]*_[a-z]*=(?<" + JOBID + ">\\d*)\\s[a-zA-Z]*=[a-zA-Z0-9-]*\\s(?<" + STATUS + ">[]a-zA-Z]*),.*"; + public static final String BEGAN = "Began"; + public static final String ENDED = "Ended"; + public static final String FAILED = "Failed"; + @Override public JobStatusResult parseEmail(Message message) throws MessagingException, AiravataException{ JobStatusResult jobStatusResult = new JobStatusResult(); @@ -49,10 +53,6 @@ public class SLURMEmailParser implements EmailParser { if (matcher.find()) { jobStatusResult.setJobId(matcher.group(JOBID)); jobStatusResult.setState(getJobState(matcher.group(STATUS))); - // TODO remove following test lines - String jobId = matcher.group(JOBID); - String status = matcher.group(STATUS); -// log.info("SLURM " + status + " message received -> " + jobId); return jobStatusResult; } else { log.error("No matched found for subject -> " + subject); @@ -62,11 +62,11 @@ public class SLURMEmailParser implements EmailParser { private JobState getJobState(String state) { switch (state.trim()) { - case "Began": + case BEGAN: return JobState.QUEUED; - case "Ended": + case ENDED: return JobState.COMPLETE; - case "Failed": + case FAILED: return JobState.FAILED; default: log.error("Job State " + state + " isn't handle by SLURM parser");
