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");