This is an automated email from the ASF dual-hosted git repository. dimuthuupe pushed a commit to branch staging in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/staging by this push: new b7b0842 Adding an expiration time for email monitoring b7b0842 is described below commit b7b08422d2bacbcfdf2dd9256a780e279481427c Author: Dimuthu Wannipurage <dimuthu.wannipur...@datasprouts.com> AuthorDate: Sun Nov 25 16:43:09 2018 +0530 Adding an expiration time for email monitoring --- .../templates/email-monitor/airavata-server.properties.j2 | 6 +++++- .../org/apache/airavata/monitor/email/EmailBasedMonitor.java | 11 ++++++++++- .../src/main/resources/airavata-server.properties | 4 ++++ .../resources/email-monitor/conf/airavata-server.properties | 6 +++++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2 b/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2 index 6c606c3..1bf7abf 100644 --- a/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2 +++ b/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2 @@ -29,4 +29,8 @@ email.based.monitoring.period=10000 #These properties will be used to published parsed email messages to job monitor queue job.monitor.broker.url={{ job_monitor_broker_url }} job.monitor.broker.topic={{ job_monitor_broker_topic }} -job.monitor.broker.publisher.id={{ email_job_monitor_broker_publisher }} \ No newline at end of file +job.monitor.broker.publisher.id={{ email_job_monitor_broker_publisher }} + +zookeeper.server.connection={{ zookeeper_connection_url }} +zookeeper.timeout=30000 +email.expiration.minutes=60 \ No newline at end of file diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java index 5f5a526..10e8877 100644 --- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java +++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java @@ -61,6 +61,7 @@ public class EmailBasedMonitor extends AbstractMonitor implements Runnable { private Map<String, ResourceJobManagerType> addressMap = new HashMap<>(); private Message[] flushUnseenMessages; private Map<ResourceJobManagerType, ResourceConfig> resourceConfigs = new HashMap<>(); + private long emailExpirationTimeMinutes; public EmailBasedMonitor() throws Exception { @@ -75,6 +76,7 @@ public class EmailBasedMonitor extends AbstractMonitor implements Runnable { password = ServerSettings.getEmailBasedMonitorPassword(); storeProtocol = ServerSettings.getEmailBasedMonitorStoreProtocol(); folderName = ServerSettings.getEmailBasedMonitorFolderName(); + emailExpirationTimeMinutes = Long.parseLong(ServerSettings.getSetting("email.expiration.minutes")); if (!(storeProtocol.equals(IMAPS) || storeProtocol.equals(POP3))) { throw new AiravataException("Unsupported store protocol , expected " + IMAPS + " or " + POP3 + " but found " + storeProtocol); @@ -239,7 +241,14 @@ public class EmailBasedMonitor extends AbstractMonitor implements Runnable { processedMessages.add(message); } catch (Exception e) { log.error("Error in submitting job status to queue", e); - unreadMessages.add(message); + if ((System.currentTimeMillis() - message.getReceivedDate().getTime()) > emailExpirationTimeMinutes * 60 * 1000) { + log.warn("Marking job status email as read as it was expired"); + processedMessages.add(message); + } else { + log.warn("Keeping job status email as unread untill it is expired in " + emailExpirationTimeMinutes + + " minutes. Email received time " + message.getReceivedDate()); + unreadMessages.add(message); + } } } if (!processedMessages.isEmpty()) { diff --git a/modules/job-monitor/email-monitor/src/main/resources/airavata-server.properties b/modules/job-monitor/email-monitor/src/main/resources/airavata-server.properties index e45b65c..dcd0521 100644 --- a/modules/job-monitor/email-monitor/src/main/resources/airavata-server.properties +++ b/modules/job-monitor/email-monitor/src/main/resources/airavata-server.properties @@ -30,3 +30,7 @@ email.based.monitoring.period=10000 job.monitor.broker.url=192.168.99.103:9092 job.monitor.broker.topic=parsed-data job.monitor.broker.publisher.id=EmailBasedProducer + +zookeeper.server.connection=localhost:2181 +zookeeper.timeout=30000 +email.expiration.minutes=60 \ No newline at end of file diff --git a/modules/job-monitor/job-monitor-distribution/src/main/resources/email-monitor/conf/airavata-server.properties b/modules/job-monitor/job-monitor-distribution/src/main/resources/email-monitor/conf/airavata-server.properties index 92669be..8c32e86 100644 --- a/modules/job-monitor/job-monitor-distribution/src/main/resources/email-monitor/conf/airavata-server.properties +++ b/modules/job-monitor/job-monitor-distribution/src/main/resources/email-monitor/conf/airavata-server.properties @@ -29,4 +29,8 @@ email.based.monitoring.period=10000 #These properties will be used to published parsed email messages to job monitor queue job.monitor.broker.url=CHANGEME job.monitor.broker.topic=parsed-data -job.monitor.broker.publisher.id=EmailBasedProducer \ No newline at end of file +job.monitor.broker.publisher.id=EmailBasedProducer + +zookeeper.server.connection=localhost:2181 +zookeeper.timeout=30000 +email.expiration.minutes=60 \ No newline at end of file