You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2017/02/10 19:42:18 UTC
airavata git commit: fixing LSFEmail parser
Repository: airavata
Updated Branches:
refs/heads/develop 56acd6b2b -> 2c5854b1f
fixing LSFEmail parser
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/2c5854b1
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/2c5854b1
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/2c5854b1
Branch: refs/heads/develop
Commit: 2c5854b1f0eb25b15383e85b6334a0f2e6bb4f0f
Parents: 56acd6b
Author: scnakandala <su...@gmail.com>
Authored: Fri Feb 10 14:42:11 2017 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Fri Feb 10 14:42:11 2017 -0500
----------------------------------------------------------------------
.../monitor/email/parser/LSFEmailParser.java | 49 ++++++++++----------
1 file changed, 24 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/2c5854b1/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java
index a2dd17e..1cefdca 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java
@@ -35,46 +35,45 @@ import java.util.regex.Pattern;
public class LSFEmailParser implements EmailParser {
private static final Logger log = LoggerFactory.getLogger(LSFEmailParser.class);
- //root@c312-206.ls4.tacc.utexas.edu
- private static final String SIGNAL = "signal";
- private static final String LONESTAR_REGEX = "Job (?<" + JOBID + ">\\d+) \\(.*\\) (?<" + STATUS
- + ">.*)\\s[a-zA-Z =]+(?<" + EXIT_STATUS + ">\\d+)\\sSignal[ ]*=[ ]*(?<" + SIGNAL + ">[a-zA-z]*)";
+ private static final String REGEX = "[a-zA-Z]+\\s+(?<" + JOBID + ">[\\d]+):\\s+<(?<" + JOBNAME + ">[a-zA-Z0-9]+)>\\s+(?<" + STATUS + ">[a-zA-Z]+)";
+ public static final String STARTED = "started";
+ public static final String COMPLETE = "Exited";
@Override
public JobStatusResult parseEmail(Message message) throws MessagingException, AiravataException {
JobStatusResult jobStatusResult = new JobStatusResult();
- try {
- parseContent(((String) message.getContent()), jobStatusResult);
- } catch (IOException e) {
- throw new AiravataException("i[EJM]: Error while reading content of the email message");
- }
+
+ parseContent(message, jobStatusResult);
return jobStatusResult;
}
- private boolean parseContent(String content, JobStatusResult jobStatusResult) throws IOException, MessagingException {
- content = content.replaceAll("[^\\x00-\\x7F]", "");
- Pattern pattern = Pattern.compile(LONESTAR_REGEX);
- Matcher matcher = pattern.matcher(content);
- if (matcher.find()) {
- jobStatusResult.setJobId(matcher.group(JOBID));
- String status = matcher.group(STATUS);
- jobStatusResult.setState(getJobState(status, content));
- return true;
- } else {
- log.error("[EJM]: No matched found for content => \n" + content);
+ private void parseContent(Message message, JobStatusResult jobStatusResult) throws MessagingException, AiravataException {
+ String subject = message.getSubject();
+ Pattern pattern = Pattern.compile(REGEX);
+ Matcher matcher = pattern.matcher(subject);
+ try {
+ if (matcher.find()) {
+ jobStatusResult.setJobId(matcher.group(JOBID));
+ jobStatusResult.setJobName(matcher.group(JOBNAME));
+ String content = (String) message.getContent();
+ jobStatusResult.setState(getJobState(matcher.group(STATUS), content));
+ } else {
+ log.error("[EJM]: No matched found for subject => \n" + subject);
+ }
+ } catch (IOException e) {
+ throw new AiravataException("[EJM]: Error while reading content of the email message");
}
- return false;
}
private JobState getJobState(String status, String content) {
switch (status) {
- case "Aborted":
- return JobState.FAILED;
- case "Success":
+ case STARTED:
+ return JobState.ACTIVE;
+ case COMPLETE:
return JobState.COMPLETE;
default:
return JobState.UNKNOWN;
- }
+ }
}
}