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 17:40:09 UTC

[1/2] airavata git commit: Fixed AIRAVATA-1670 , error job notifications handle

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


[2/2] airavata git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/airavata

Posted by sh...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/airavata


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/2dde0d3a
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/2dde0d3a
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/2dde0d3a

Branch: refs/heads/master
Commit: 2dde0d3aa69bd48168dac624e358cab966311e5c
Parents: 90aa639 ae15740
Author: shamrath <sh...@gmail.com>
Authored: Wed Apr 15 11:39:56 2015 -0400
Committer: shamrath <sh...@gmail.com>
Committed: Wed Apr 15 11:39:56 2015 -0400

----------------------------------------------------------------------
 .../lib/airavata/messagingEvents_types.cpp      |  36 +++-
 .../lib/airavata/messagingEvents_types.h        |  20 +-
 .../Airavata/Model/Messaging/Event/Types.php    |  40 ++++
 .../airavata/model/messaging/event/ttypes.py    |  30 ++-
 .../messaging/event/TaskTerminateEvent.java     | 196 ++++++++++++++++++-
 .../messagingEvents.thrift                      |   2 +
 .../apache/airavata/gfac/cpi/GfacService.java   | 125 ++++++++++--
 .../apache/airavata/gfac/server/GfacServer.java |   2 +
 .../airavata/gfac/server/GfacServerHandler.java |  11 +-
 .../airavata/gfac/core/cpi/BetterGfacImpl.java  |  45 +++--
 .../gfac/core/utils/GFacThreadPoolExecutor.java |   3 +-
 .../gfac/monitor/email/EmailBasedMonitor.java   |   8 +-
 .../monitor/impl/pull/qstat/HPCPullMonitor.java |   8 +-
 .../core/impl/RabbitMQTaskLaunchConsumer.java   |   2 +-
 .../core/impl/RabbitMQTaskLaunchPublisher.java  |  11 +-
 .../core/impl/GFACPassiveJobSubmitter.java      |   6 +-
 16 files changed, 481 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/2dde0d3a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
----------------------------------------------------------------------
diff --cc modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
index e45de1d,95c98b8..36bd0eb
--- 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
@@@ -207,16 -207,18 +207,20 @@@ public class EmailBasedMonitor implemen
          JobState resultState = jobStatusResult.getState();
          jEC.getJobDetails().setJobStatus(new JobStatus(resultState));
          if (resultState == JobState.COMPLETE) {
-             GFacThreadPoolExecutor.getFixedThreadPool().submit(new OutHandlerWorker(jEC, BetterGfacImpl.getMonitorPublisher()));
+             try {
+                 GFacThreadPoolExecutor.getFixedThreadPool().submit(new OutHandlerWorker(jEC, BetterGfacImpl.getMonitorPublisher()));
+             } catch (ApplicationSettingsException e) {
+                 log.error(e.getMessage(), e);
+             }
          }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);
      }