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/04/15 22:49:00 UTC
[24/28] airavata git commit: Fixed AIRAVATA-1670 ,
error job notifications handle
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/emailMonitoring
Commit: 90aa63955ac6cfb3718fc9702ccea6b65ae20314
Parents: ea88999
Author: shamrath <sh...@gmail.com>
Authored: Wed Apr 15 11:39:20 2015 -0400
Committer: shamrath <sh...@gmail.com>
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");