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