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/22 22:43:12 UTC
[4/6] airavata git commit: Fixed AIRAVATA-1686
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index 66f33ab..4c19d31 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -67,7 +67,6 @@ import org.slf4j.LoggerFactory;
private static final org.apache.thrift.protocol.TField ALTERNATIVE_SSHHOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("alternativeSSHHostName", org.apache.thrift.protocol.TType.STRING, (short)4);
private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)5);
private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.I32, (short)6);
- private static final org.apache.thrift.protocol.TField EMAIL_MONITOR_PROPERTY_FIELD_DESC = new org.apache.thrift.protocol.TField("emailMonitorProperty", org.apache.thrift.protocol.TType.STRUCT, (short)7);
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
static {
@@ -81,7 +80,6 @@ import org.slf4j.LoggerFactory;
private String alternativeSSHHostName; // optional
private int sshPort; // optional
private MonitorMode monitorMode; // optional
- private EmailMonitorProperty emailMonitorProperty; // optional
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -98,8 +96,7 @@ import org.slf4j.LoggerFactory;
*
* @see MonitorMode
*/
- MONITOR_MODE((short)6, "monitorMode"),
- EMAIL_MONITOR_PROPERTY((short)7, "emailMonitorProperty");
+ MONITOR_MODE((short)6, "monitorMode");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -126,8 +123,6 @@ import org.slf4j.LoggerFactory;
return SSH_PORT;
case 6: // MONITOR_MODE
return MONITOR_MODE;
- case 7: // EMAIL_MONITOR_PROPERTY
- return EMAIL_MONITOR_PROPERTY;
default:
return null;
}
@@ -170,7 +165,7 @@ import org.slf4j.LoggerFactory;
// isset id assignments
private static final int __SSHPORT_ISSET_ID = 0;
private byte __isset_bitfield = 0;
- private _Fields optionals[] = {_Fields.ALTERNATIVE_SSHHOST_NAME,_Fields.SSH_PORT,_Fields.MONITOR_MODE,_Fields.EMAIL_MONITOR_PROPERTY};
+ private _Fields optionals[] = {_Fields.ALTERNATIVE_SSHHOST_NAME,_Fields.SSH_PORT,_Fields.MONITOR_MODE};
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -186,8 +181,6 @@ import org.slf4j.LoggerFactory;
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, MonitorMode.class)));
- tmpMap.put(_Fields.EMAIL_MONITOR_PROPERTY, new org.apache.thrift.meta_data.FieldMetaData("emailMonitorProperty", org.apache.thrift.TFieldRequirementType.OPTIONAL,
- new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EmailMonitorProperty.class)));
metaDataMap = Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SSHJobSubmission.class, metaDataMap);
}
@@ -231,9 +224,6 @@ import org.slf4j.LoggerFactory;
if (other.isSetMonitorMode()) {
this.monitorMode = other.monitorMode;
}
- if (other.isSetEmailMonitorProperty()) {
- this.emailMonitorProperty = new EmailMonitorProperty(other.emailMonitorProperty);
- }
}
public SSHJobSubmission deepCopy() {
@@ -250,7 +240,6 @@ import org.slf4j.LoggerFactory;
this.sshPort = 22;
this.monitorMode = null;
- this.emailMonitorProperty = null;
}
public String getJobSubmissionInterfaceId() {
@@ -406,29 +395,6 @@ import org.slf4j.LoggerFactory;
}
}
- public EmailMonitorProperty getEmailMonitorProperty() {
- return this.emailMonitorProperty;
- }
-
- public void setEmailMonitorProperty(EmailMonitorProperty emailMonitorProperty) {
- this.emailMonitorProperty = emailMonitorProperty;
- }
-
- public void unsetEmailMonitorProperty() {
- this.emailMonitorProperty = null;
- }
-
- /** Returns true if field emailMonitorProperty is set (has been assigned a value) and false otherwise */
- public boolean isSetEmailMonitorProperty() {
- return this.emailMonitorProperty != null;
- }
-
- public void setEmailMonitorPropertyIsSet(boolean value) {
- if (!value) {
- this.emailMonitorProperty = null;
- }
- }
-
public void setFieldValue(_Fields field, Object value) {
switch (field) {
case JOB_SUBMISSION_INTERFACE_ID:
@@ -479,14 +445,6 @@ import org.slf4j.LoggerFactory;
}
break;
- case EMAIL_MONITOR_PROPERTY:
- if (value == null) {
- unsetEmailMonitorProperty();
- } else {
- setEmailMonitorProperty((EmailMonitorProperty)value);
- }
- break;
-
}
}
@@ -510,9 +468,6 @@ import org.slf4j.LoggerFactory;
case MONITOR_MODE:
return getMonitorMode();
- case EMAIL_MONITOR_PROPERTY:
- return getEmailMonitorProperty();
-
}
throw new IllegalStateException();
}
@@ -536,8 +491,6 @@ import org.slf4j.LoggerFactory;
return isSetSshPort();
case MONITOR_MODE:
return isSetMonitorMode();
- case EMAIL_MONITOR_PROPERTY:
- return isSetEmailMonitorProperty();
}
throw new IllegalStateException();
}
@@ -609,15 +562,6 @@ import org.slf4j.LoggerFactory;
return false;
}
- boolean this_present_emailMonitorProperty = true && this.isSetEmailMonitorProperty();
- boolean that_present_emailMonitorProperty = true && that.isSetEmailMonitorProperty();
- if (this_present_emailMonitorProperty || that_present_emailMonitorProperty) {
- if (!(this_present_emailMonitorProperty && that_present_emailMonitorProperty))
- return false;
- if (!this.emailMonitorProperty.equals(that.emailMonitorProperty))
- return false;
- }
-
return true;
}
@@ -694,16 +638,6 @@ import org.slf4j.LoggerFactory;
return lastComparison;
}
}
- lastComparison = Boolean.valueOf(isSetEmailMonitorProperty()).compareTo(other.isSetEmailMonitorProperty());
- if (lastComparison != 0) {
- return lastComparison;
- }
- if (isSetEmailMonitorProperty()) {
- lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emailMonitorProperty, other.emailMonitorProperty);
- if (lastComparison != 0) {
- return lastComparison;
- }
- }
return 0;
}
@@ -773,16 +707,6 @@ import org.slf4j.LoggerFactory;
}
first = false;
}
- if (isSetEmailMonitorProperty()) {
- if (!first) sb.append(", ");
- sb.append("emailMonitorProperty:");
- if (this.emailMonitorProperty == null) {
- sb.append("null");
- } else {
- sb.append(this.emailMonitorProperty);
- }
- first = false;
- }
sb.append(")");
return sb.toString();
}
@@ -805,9 +729,6 @@ import org.slf4j.LoggerFactory;
if (resourceJobManager != null) {
resourceJobManager.validate();
}
- if (emailMonitorProperty != null) {
- emailMonitorProperty.validate();
- }
}
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -895,15 +816,6 @@ import org.slf4j.LoggerFactory;
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
- case 7: // EMAIL_MONITOR_PROPERTY
- if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
- struct.emailMonitorProperty = new EmailMonitorProperty();
- struct.emailMonitorProperty.read(iprot);
- struct.setEmailMonitorPropertyIsSet(true);
- } else {
- org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
- }
- break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -951,13 +863,6 @@ import org.slf4j.LoggerFactory;
oprot.writeFieldEnd();
}
}
- if (struct.emailMonitorProperty != null) {
- if (struct.isSetEmailMonitorProperty()) {
- oprot.writeFieldBegin(EMAIL_MONITOR_PROPERTY_FIELD_DESC);
- struct.emailMonitorProperty.write(oprot);
- oprot.writeFieldEnd();
- }
- }
oprot.writeFieldStop();
oprot.writeStructEnd();
}
@@ -988,10 +893,7 @@ import org.slf4j.LoggerFactory;
if (struct.isSetMonitorMode()) {
optionals.set(2);
}
- if (struct.isSetEmailMonitorProperty()) {
- optionals.set(3);
- }
- oprot.writeBitSet(optionals, 4);
+ oprot.writeBitSet(optionals, 3);
if (struct.isSetAlternativeSSHHostName()) {
oprot.writeString(struct.alternativeSSHHostName);
}
@@ -1001,9 +903,6 @@ import org.slf4j.LoggerFactory;
if (struct.isSetMonitorMode()) {
oprot.writeI32(struct.monitorMode.getValue());
}
- if (struct.isSetEmailMonitorProperty()) {
- struct.emailMonitorProperty.write(oprot);
- }
}
@Override
@@ -1016,7 +915,7 @@ import org.slf4j.LoggerFactory;
struct.resourceJobManager = new ResourceJobManager();
struct.resourceJobManager.read(iprot);
struct.setResourceJobManagerIsSet(true);
- BitSet incoming = iprot.readBitSet(4);
+ BitSet incoming = iprot.readBitSet(3);
if (incoming.get(0)) {
struct.alternativeSSHHostName = iprot.readString();
struct.setAlternativeSSHHostNameIsSet(true);
@@ -1029,11 +928,6 @@ import org.slf4j.LoggerFactory;
struct.monitorMode = MonitorMode.findByValue(iprot.readI32());
struct.setMonitorModeIsSet(true);
}
- if (incoming.get(3)) {
- struct.emailMonitorProperty = new EmailMonitorProperty();
- struct.emailMonitorProperty.read(iprot);
- struct.setEmailMonitorPropertyIsSet(true);
- }
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
index edccb7b..6e8361c 100644
--- a/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
@@ -213,33 +213,6 @@ enum MonitorMode {
}
/**
-* Email protocol
-**/
-enum EmailProtocol{
- POP3,
- IMAPS
-}
-
-
-/**
-* Email Monitoring Properties
-*
-* host : email host address
-* emailAddress : address which should get email notification
-* password : password to access email address
-* folderName : email folder name default is INBOX
-* storeProtocol : type of store protocol
-**/
-struct EmailMonitorProperty {
- 1: required string host,
- 2: required string emailAddress,
- 3: required string password,
- 4: required string folderName = "INBOX",
- 5: required EmailProtocol storeProtocol,
- 6: required string senderEmailAddress
-}
-
-/**
* Enumeration of data movement supported by Airavata
*
* SCP:
@@ -349,7 +322,6 @@ struct SSHJobSubmission {
4: optional string alternativeSSHHostName,
5: optional i32 sshPort = 22,
6: optional MonitorMode monitorMode,
- 7: optional EmailMonitorProperty emailMonitorProperty
}
struct GlobusJobSubmission {
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
index edd39ed..11ba727 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
@@ -186,21 +186,6 @@ public class ComputeResourceImpl implements ComputeResource {
resource.setMonitorMode(sshJobSubmission.getMonitorMode().toString());
}
resource.save();
- EmailMonitorProperty emailMonitorProperty = sshJobSubmission.getEmailMonitorProperty();
- if (emailMonitorProperty != null){
- EmailPropertyResource emailPropertyResource = new EmailPropertyResource();
- emailPropertyResource.setJobSubmissionInterfaceId(submissionId);
- emailPropertyResource.setHost(emailMonitorProperty.getHost());
- emailPropertyResource.setPassword(emailMonitorProperty.getPassword());
- emailPropertyResource.setEmailAddress(emailMonitorProperty.getEmailAddress());
- emailPropertyResource.setFolderName(emailMonitorProperty.getFolderName());
- emailPropertyResource.setSenderEmailAddress(emailMonitorProperty.getSenderEmailAddress());
-
- if (emailMonitorProperty.getStoreProtocol() != null){
- emailPropertyResource.setProtocol(emailMonitorProperty.getStoreProtocol().toString());
- }
- emailPropertyResource.save();
- }
return submissionId;
}catch (Exception e) {
logger.error("Error while saving SSH Job Submission...", e);
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/EmailMonitorProperty.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/EmailMonitorProperty.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/EmailMonitorProperty.java
deleted file mode 100644
index b6a669a..0000000
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/EmailMonitorProperty.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.aiaravata.application.catalog.data.model;
-
-import org.apache.openjpa.persistence.DataCache;
-
-import javax.persistence.*;
-
-@DataCache
-@Entity
-@Table(name = "EMAIL_MONITOR_PROPERTY")
-public class EmailMonitorProperty {
-
- @Id
- @Column(name = "JOB_SUBMISSION_INTERFACE_ID")
- private String jobSubmissionId;
-
- @Column(name = "HOST")
- private String host;
-
- @Column(name = "EMAIL_ADDRESS")
- private String emailAddress;
-
- @Column(name = "PASSWORD")
- private String password;
-
- @Column(name = "FOLDER_NAME")
- private String folderName;
-
- @Column(name = "EMAIL_PROTOCOL")
- private String emailProtocol;
-
- @Column(name = "SENDER_EMAIL_ADDRESS")
- private String senderEmailAddress;
-
- @ManyToOne(cascade= CascadeType.MERGE)
- @JoinColumn(name = "JOB_SUBMISSION_INTERFACE_ID")
- private SshJobSubmission submissionInterface;
-
-
- public String getHost() {
- return host;
- }
-
- public void setHost(String host) {
- this.host = host;
- }
-
- public String getEmailAddress() {
- return emailAddress;
- }
-
- public void setEmailAddress(String emailAddress) {
- this.emailAddress = emailAddress;
- }
-
- public String getFolderName() {
- return folderName;
- }
-
- public void setFolderName(String folderName) {
- this.folderName = folderName;
- }
-
- public String getEmailProtocol() {
- return emailProtocol;
- }
-
- public void setEmailProtocol(String emailProtocol) {
- this.emailProtocol = emailProtocol;
- }
-
- public String getJobSubmissionId() {
- return jobSubmissionId;
- }
-
- public void setJobSubmissionId(String jobSubmissionId) {
- this.jobSubmissionId = jobSubmissionId;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public SshJobSubmission getSubmissionInterface() {
- return submissionInterface;
- }
-
- public void setSubmissionInterface(SshJobSubmission submissionInterface) {
- this.submissionInterface = submissionInterface;
- }
-
- public String getSenderEmailAddress() {
- return senderEmailAddress;
- }
-
- public void setSenderEmailAddress(String senderEmailAddress) {
- this.senderEmailAddress = senderEmailAddress;
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/SshJobSubmission.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/SshJobSubmission.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/SshJobSubmission.java
index a5a1a8e..13a7861 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/SshJobSubmission.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/SshJobSubmission.java
@@ -32,7 +32,6 @@ import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
-import org.apache.airavata.model.appcatalog.computeresource.EmailMonitorProperty;
import org.apache.openjpa.persistence.DataCache;
@DataCache
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/EmailPropertyResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/EmailPropertyResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/EmailPropertyResource.java
deleted file mode 100644
index 6ce0e14..0000000
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/EmailPropertyResource.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.aiaravata.application.catalog.data.resources;
-
-import org.airavata.appcatalog.cpi.AppCatalogException;
-import org.apache.aiaravata.application.catalog.data.model.EmailMonitorProperty;
-import org.apache.aiaravata.application.catalog.data.model.ResourceJobManager;
-import org.apache.aiaravata.application.catalog.data.model.SshJobSubmission;
-import org.apache.aiaravata.application.catalog.data.util.AppCatalogJPAUtils;
-import org.apache.aiaravata.application.catalog.data.util.AppCatalogQueryGenerator;
-import org.apache.aiaravata.application.catalog.data.util.AppCatalogResourceType;
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.AiravataUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.List;
-
-public class EmailPropertyResource extends AbstractResource {
- private final static Logger logger = LoggerFactory.getLogger(EmailPropertyResource.class);
- private String jobSubmissionInterfaceId;
- private String host;
- private String emailAddress;
- private String password;
- private String folderName;
- private String protocol;
- private String senderEmailAddress;
- private SshJobSubmissionResource sshJobSubmissionResource;
-
- @Override
- public void remove(Object identifier) throws AppCatalogException {
- EntityManager em = null;
- try {
- em = AppCatalogJPAUtils.getEntityManager();
- em.getTransaction().begin();
- AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(EMAIL_PROPERTY);
- generator.setParameter(EmailMonitorPropertyConstants.JOB_SUBMISSION_INTERFACE_ID, identifier);
- Query q = generator.deleteQuery(em);
- q.executeUpdate();
- em.getTransaction().commit();
- em.close();
- } catch (ApplicationSettingsException e) {
- logger.error(e.getMessage(), e);
- throw new AppCatalogException(e);
- } finally {
- if (em != null && em.isOpen()) {
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- em.close();
- }
- }
- }
-
- @Override
- public Resource get(Object identifier) throws AppCatalogException {
- EntityManager em = null;
- try {
- em = AppCatalogJPAUtils.getEntityManager();
- em.getTransaction().begin();
- AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(EMAIL_PROPERTY);
- generator.setParameter(EmailMonitorPropertyConstants.JOB_SUBMISSION_INTERFACE_ID, identifier);
- Query q = generator.selectQuery(em);
- EmailMonitorProperty emailProperty = (EmailMonitorProperty) q.getSingleResult();
- EmailPropertyResource emailPropertyResource = (EmailPropertyResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.EMAIL_MONITOR_PROPERTY, emailProperty);
- em.getTransaction().commit();
- em.close();
- return emailPropertyResource;
- } catch (ApplicationSettingsException e) {
- logger.error(e.getMessage(), e);
- throw new AppCatalogException(e);
- } finally {
- if (em != null && em.isOpen()) {
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- em.close();
- }
- }
- }
-
- @Override
- public List<Resource> get(String fieldName, Object value) throws AppCatalogException {
- List<Resource> sshJobSubmissionResources = new ArrayList<Resource>();
- EntityManager em = null;
- try {
- em = AppCatalogJPAUtils.getEntityManager();
- em.getTransaction().begin();
- AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(EMAIL_PROPERTY);
- Query q;
- if (fieldName.equals(EmailMonitorPropertyConstants.JOB_SUBMISSION_INTERFACE_ID)){
- generator.setParameter(fieldName, value);
- q = generator.selectQuery(em);
- List<?> results = q.getResultList();
- for (Object result : results) {
- EmailMonitorProperty emailMonitorProperty = (EmailMonitorProperty) result;
- EmailPropertyResource emailPropertyResource = (EmailPropertyResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.EMAIL_MONITOR_PROPERTY, emailMonitorProperty);
- sshJobSubmissionResources.add(emailPropertyResource);
- }
- } else {
- em.getTransaction().commit();
- em.close();
- logger.error("Unsupported field name for Ssh Job Submission Resource.", new IllegalArgumentException());
- throw new IllegalArgumentException("Unsupported field name for Ssh Job Submission Resource.");
- }
- em.getTransaction().commit();
- em.close();
- } catch (ApplicationSettingsException e) {
- logger.error(e.getMessage(), e);
- throw new AppCatalogException(e);
- } finally {
- if (em != null && em.isOpen()) {
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- em.close();
- }
- }
- return sshJobSubmissionResources;
- }
-
- @Override
- public List<Resource> getAll() throws AppCatalogException {
- return null;
- }
-
- @Override
- public List<String> getAllIds() throws AppCatalogException {
- return null;
- }
-
- @Override
- public List<String> getIds(String fieldName, Object value) throws AppCatalogException {
- List<String> sshJobSubmissionResourceIDs = new ArrayList<String>();
- EntityManager em = null;
- try {
- em = AppCatalogJPAUtils.getEntityManager();
- em.getTransaction().begin();
- AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(EMAIL_PROPERTY);
- Query q;
- if (fieldName.equals(EmailMonitorPropertyConstants.JOB_SUBMISSION_INTERFACE_ID)) {
- generator.setParameter(fieldName, value);
- q = generator.selectQuery(em);
- List<?> results = q.getResultList();
- for (Object result : results) {
- EmailMonitorProperty monitorProperty = (EmailMonitorProperty) result;
- EmailPropertyResource emailPropertyResource = (EmailPropertyResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.EMAIL_MONITOR_PROPERTY, monitorProperty);
- sshJobSubmissionResourceIDs.add(emailPropertyResource.getJobSubmissionInterfaceId());
- }
- } else {
- em.getTransaction().commit();
- em.close();
- logger.error("Unsupported field name for Ssh Job Submission Resource.", new IllegalArgumentException());
- throw new IllegalArgumentException("Unsupported field name for Ssh Job Submission Resource.");
- }
- em.getTransaction().commit();
- em.close();
- } catch (ApplicationSettingsException e) {
- logger.error(e.getMessage(), e);
- throw new AppCatalogException(e);
- } finally {
- if (em != null && em.isOpen()) {
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- em.close();
- }
- }
- return sshJobSubmissionResourceIDs;
- }
-
- @Override
- public void save() throws AppCatalogException {
- EntityManager em = null;
- try {
- em = AppCatalogJPAUtils.getEntityManager();
- EmailMonitorProperty monitorProperty = em.find(EmailMonitorProperty.class, jobSubmissionInterfaceId);
- em.close();
- EmailMonitorProperty emailMonitorProperty;
- em = AppCatalogJPAUtils.getEntityManager();
- em.getTransaction().begin();
- if (monitorProperty == null) {
- emailMonitorProperty = new EmailMonitorProperty();
- } else {
- emailMonitorProperty = monitorProperty;
- }
- emailMonitorProperty.setJobSubmissionId(jobSubmissionInterfaceId);
- emailMonitorProperty.setEmailAddress(emailAddress);
- emailMonitorProperty.setEmailProtocol(protocol);
- emailMonitorProperty.setFolderName(folderName);
- emailMonitorProperty.setPassword(password);
- emailMonitorProperty.setHost(host);
- emailMonitorProperty.setSenderEmailAddress(senderEmailAddress);
- if (monitorProperty == null) {
- em.persist(emailMonitorProperty);
- } else {
- em.merge(emailMonitorProperty);
- }
- em.getTransaction().commit();
- em.close();
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- throw new AppCatalogException(e);
- } finally {
- if (em != null && em.isOpen()) {
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- em.close();
- }
- }
- }
-
- @Override
- public boolean isExists(Object identifier) throws AppCatalogException {
- EntityManager em = null;
- try {
- em = AppCatalogJPAUtils.getEntityManager();
- EmailMonitorProperty emailMonitorProperty = em.find(EmailMonitorProperty.class, identifier);
- em.close();
- return emailMonitorProperty != null;
- } catch (ApplicationSettingsException e) {
- logger.error(e.getMessage(), e);
- throw new AppCatalogException(e);
- } finally {
- if (em != null && em.isOpen()) {
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- em.close();
- }
- }
- }
-
- public String getJobSubmissionInterfaceId() {
- return jobSubmissionInterfaceId;
- }
-
- public void setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
- this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
- }
-
- public String getHost() {
- return host;
- }
-
- public void setHost(String host) {
- this.host = host;
- }
-
- public String getEmailAddress() {
- return emailAddress;
- }
-
- public void setEmailAddress(String emailAddress) {
- this.emailAddress = emailAddress;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getFolderName() {
- return folderName;
- }
-
- public void setFolderName(String folderName) {
- this.folderName = folderName;
- }
-
- public String getProtocol() {
- return protocol;
- }
-
- public void setProtocol(String protocol) {
- this.protocol = protocol;
- }
-
- public SshJobSubmissionResource getSshJobSubmissionResource() {
- return sshJobSubmissionResource;
- }
-
- public void setSshJobSubmissionResource(SshJobSubmissionResource sshJobSubmissionResource) {
- this.sshJobSubmissionResource = sshJobSubmissionResource;
- }
-
- public String getSenderEmailAddress() {
- return senderEmailAddress;
- }
-
- public void setSenderEmailAddress(String senderEmailAddress) {
- this.senderEmailAddress = senderEmailAddress;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
index d3b8b7d..4ee983f 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
@@ -25,7 +25,6 @@ import org.apache.aiaravata.application.catalog.data.model.*;
import org.apache.aiaravata.application.catalog.data.resources.*;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.model.appcatalog.computeresource.MonitorMode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -172,13 +171,6 @@ public class AppCatalogJPAUtils {
logger.error("Object should be a Ssh Job Submission.", new IllegalArgumentException());
throw new IllegalArgumentException("Object should be a Ssh Job Submission.");
}
- case EMAIL_MONITOR_PROPERTY:
- if (o instanceof EmailMonitorProperty){
- return createEmailPropertyResource((EmailMonitorProperty) o);
- }else{
- logger.error("Object should be a Ssh Job Submission.", new IllegalArgumentException());
- throw new IllegalArgumentException("Object should be a Ssh Job Submission.");
- }
case SCP_DATA_MOVEMENT:
if (o instanceof ScpDataMovement){
return createScpDataMovement((ScpDataMovement) o);
@@ -623,21 +615,6 @@ public class AppCatalogJPAUtils {
return sshJobSubmissionResource;
}
- private static Resource createEmailPropertyResource(EmailMonitorProperty o) {
- EmailPropertyResource emailPropertyResource = new EmailPropertyResource();
- if (o != null) {
- emailPropertyResource.setJobSubmissionInterfaceId(o.getJobSubmissionId());
- emailPropertyResource.setSshJobSubmissionResource((SshJobSubmissionResource) createSshJobSubmission(o.getSubmissionInterface()));
- emailPropertyResource.setEmailAddress(o.getEmailAddress());
- emailPropertyResource.setFolderName(o.getFolderName());
- emailPropertyResource.setPassword(o.getPassword());
- emailPropertyResource.setHost(o.getHost());
- emailPropertyResource.setProtocol(o.getEmailProtocol());
- emailPropertyResource.setSenderEmailAddress(o.getSenderEmailAddress());
- }
- return emailPropertyResource;
- }
-
private static Resource createScpDataMovement(ScpDataMovement o) {
ScpDataMovementResource scpDataMovementResource = new ScpDataMovementResource();
if (o != null){
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java
index 111f811..196d3a1 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogResourceType.java
@@ -62,6 +62,5 @@ public enum AppCatalogResourceType {
ClOUD_SUBMISSION,
WORKFLOW,
WORKFLOW_INPUT,
- WORKFLOW_OUTPUT,
- EMAIL_MONITOR_PROPERTY
+ WORKFLOW_OUTPUT
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
index ef758cd..123ae96 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
@@ -33,7 +33,6 @@ import org.apache.airavata.model.appcatalog.computeresource.*;
import org.apache.airavata.model.appcatalog.computeresource.BatchQueue;
import org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission;
import org.apache.airavata.model.appcatalog.computeresource.DataMovementInterface;
-import org.apache.airavata.model.appcatalog.computeresource.EmailMonitorProperty;
import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
@@ -344,28 +343,10 @@ public class AppCatalogThriftConversion {
sshJobSubmission.setSshPort(submission.getSshPort());
if (submission.getMonitorMode() != null){
sshJobSubmission.setMonitorMode(MonitorMode.valueOf(submission.getMonitorMode()));
- EmailPropertyResource emailPropertyResource = new EmailPropertyResource();
- if (emailPropertyResource.isExists(sshJobSubmission.getJobSubmissionInterfaceId())){
- EmailPropertyResource emailResource = (EmailPropertyResource)emailPropertyResource.get(submission.getJobSubmissionInterfaceId());
- sshJobSubmission.setEmailMonitorProperty(getEmailMonitorProperty(emailResource));
- }
}
return sshJobSubmission;
}
- public static EmailMonitorProperty getEmailMonitorProperty (EmailPropertyResource resource) throws AppCatalogException {
- EmailMonitorProperty monitorProperty = new EmailMonitorProperty();
- monitorProperty.setFolderName(resource.getFolderName());
- monitorProperty.setHost(resource.getHost());
- monitorProperty.setEmailAddress(resource.getEmailAddress());
- monitorProperty.setPassword(resource.getPassword());
- monitorProperty.setSenderEmailAddress(resource.getSenderEmailAddress());
- if (resource.getProtocol() != null){
- monitorProperty.setStoreProtocol(EmailProtocol.valueOf(resource.getProtocol()));
- }
- return monitorProperty;
- }
-
public static UnicoreJobSubmission getUnicoreJobSubmissionDescription (UnicoreJobSubmissionResource submission) throws AppCatalogException {
UnicoreJobSubmission unicoreJobSubmission = new UnicoreJobSubmission();
unicoreJobSubmission.setUnicoreEndPointURL(submission.getUnicoreEndpointUrl());
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml b/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml
index cd2445f..5fa184d 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/META-INF/persistence.xml
@@ -38,7 +38,6 @@
<class>org.apache.aiaravata.application.catalog.data.model.GridftpDataMovement</class>
<class>org.apache.aiaravata.application.catalog.data.model.GridftpEndpoint</class>
<class>org.apache.aiaravata.application.catalog.data.model.SshJobSubmission</class>
- <class>org.apache.aiaravata.application.catalog.data.model.EmailMonitorProperty</class>
<class>org.apache.aiaravata.application.catalog.data.model.ApplicationModule</class>
<class>org.apache.aiaravata.application.catalog.data.model.ApplicationDeployment</class>
<class>org.apache.aiaravata.application.catalog.data.model.ModuleLoadCmd</class>
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
index dd7cb41..fc24d83 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
@@ -126,19 +126,6 @@ CREATE TABLE SSH_JOB_SUBMISSION
FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
);
-CREATE TABLE EMAIL_MONITOR_PROPERTY
-(
- JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
- HOST VARCHAR(255),
- EMAIL_ADDRESS VARCHAR(255),
- PASSWORD VARCHAR(255),
- FOLDER_NAME VARCHAR(255),
- EMAIL_PROTOCOL VARCHAR(255),
- SENDER_EMAIL_ADDRESS VARCHAR(255),
- PRIMARY KEY(JOB_SUBMISSION_INTERFACE_ID),
- FOREIGN KEY (JOB_SUBMISSION_INTERFACE_ID) REFERENCES SSH_JOB_SUBMISSION(JOB_SUBMISSION_INTERFACE_ID)
-);
-
CREATE TABLE SCP_DATA_MOVEMENT
(
QUEUE_DESCRIPTION VARCHAR (255),
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
index c1b4757..234a26a 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
@@ -135,18 +135,6 @@ CREATE TABLE SSH_JOB_SUBMISSION
FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
);
-CREATE TABLE EMAIL_MONITOR_PROPERTY
-(
- JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
- HOST VARCHAR(255),
- EMAIL_ADDRESS VARCHAR(255),
- PASSWORD VARCHAR(255),
- FOLDER_NAME VARCHAR(255),
- EMAIL_PROTOCOL VARCHAR(255),
- SENDER_EMAIL_ADDRESS VARCHAR(255),
- PRIMARY KEY(JOB_SUBMISSION_INTERFACE_ID),
- FOREIGN KEY (JOB_SUBMISSION_INTERFACE_ID) REFERENCES SSH_JOB_SUBMISSION(JOB_SUBMISSION_INTERFACE_ID)
-);
CREATE TABLE SCP_DATA_MOVEMENT
(
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java
index bfc82d3..651f03e 100644
--- a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java
+++ b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java
@@ -169,10 +169,6 @@ public class ComputeResourceTest {
System.out.println("**********SSH Submission resource job manager ************* : " + sshJobSubmission.getResourceJobManager().toString());
System.out.println("**********Monitor mode ************* : " + sshJobSubmission.getMonitorMode().toString());
- EmailMonitorProperty emailMonitorProperty = sshJobSubmission.getEmailMonitorProperty();
- System.out.println("**********email address ************* : " + emailMonitorProperty.getEmailAddress());
-
-
// GlobusJobSubmission globusJobSubmission = computeResource.get(globusSubmissionId);
// System.out.println("**********Globus Submission resource job manager ************* : " + globusJobSubmission.getResourceJobManager().toString());
@@ -244,13 +240,7 @@ public class ComputeResourceTest {
commands.put(JobManagerCommand.SUBMISSION, "Sub command");
commands.put(JobManagerCommand.SHOW_QUEUE, "show q command");
jobManager.setJobManagerCommands(commands);
- jobSubmission.setMonitorMode(MonitorMode.JOB_EMAIL_NOTIFICATION_MONITOR);
- EmailMonitorProperty emailMonitorProperty = new EmailMonitorProperty();
- emailMonitorProperty.setEmailAddress("test");
- emailMonitorProperty.setPassword("aaa");
- emailMonitorProperty.setHost("testHost");
- emailMonitorProperty.setSenderEmailAddress("testSender@scigpa.org");
- jobSubmission.setEmailMonitorProperty(emailMonitorProperty);
+ jobSubmission.setMonitorMode(MonitorMode.POLL_JOB_MANAGER);
// String jobManagerID = appcatalog.getComputeResource().addResourceJobManager(jobManager);
// jobManager.setResourceJobManagerId(jobManagerID);
jobSubmission.setResourceJobManager(jobManager);
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
----------------------------------------------------------------------
diff --git a/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java b/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
index e37ea42..57a548c 100644
--- a/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
+++ b/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
@@ -69,7 +69,12 @@ public class ServerSettings extends ApplicationSettings {
// email based monitoring configurations
private static final String EMAIL_BASED_MONITORING_PERIOD = "email.based.monitoring.period";
-
+ private static final String EMAIL_BASED_MONITOR_HOST = "email.based.monitor.host";
+ private static final String EMAIL_BASED_MONITOR_ADDRESS = "email.based.monitor.address";
+ private static final String EMAIL_BASED_MONITOR_PASSWORD = "email.based.monitor.password";
+ private static final String EMAIL_BASED_MONITOR_FOLDER_NAME = "email.based.monitor.folder.name";
+ private static final String EMAIL_BASED_MONITOR_STORE_PROTOCOL = "email.based.monitor.store.protocol";
+ private static final String ENABLE_EMAIL_BASED_MONITORING = "enable.email.based.monitoring";
private static boolean stopAllThreads = false;
private static boolean emailBaseNotificationEnable;
@@ -217,10 +222,34 @@ public class ServerSettings extends ApplicationSettings {
return getSetting(WORKFLOW_PARSER);
}
+
public static int getEmailMonitorPeriod() throws ApplicationSettingsException {
return Integer.valueOf(getSetting(EMAIL_BASED_MONITORING_PERIOD, "100000"));
}
+ public static String getEmailBasedMonitorHost() throws ApplicationSettingsException {
+ return getSetting(EMAIL_BASED_MONITOR_HOST);
+ }
+
+ public static String getEmailBasedMonitorAddress() throws ApplicationSettingsException {
+ return getSetting(EMAIL_BASED_MONITOR_ADDRESS);
+ }
+
+ public static String getEmailBasedMonitorPassword() throws ApplicationSettingsException {
+ return getSetting(EMAIL_BASED_MONITOR_PASSWORD);
+ }
+
+ public static String getEmailBasedMonitorFolderName() throws ApplicationSettingsException {
+ return getSetting(EMAIL_BASED_MONITOR_FOLDER_NAME);
+ }
+
+ public static String getEmailBasedMonitorStoreProtocol() throws ApplicationSettingsException {
+ return getSetting(EMAIL_BASED_MONITOR_STORE_PROTOCOL);
+ }
+
+ public static boolean isEmailBasedNotificationEnable() {
+ return Boolean.valueOf(getSetting(ENABLE_EMAIL_BASED_MONITORING, "false"));
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/airavata-server.properties b/modules/configuration/server/src/main/resources/airavata-server.properties
index a00990e..150a093 100644
--- a/modules/configuration/server/src/main/resources/airavata-server.properties
+++ b/modules/configuration/server/src/main/resources/airavata-server.properties
@@ -195,6 +195,13 @@ host.scheduler=org.apache.airavata.gfac.core.scheduler.impl.SimpleHostScheduler
#mechanisms and one would be able to start a monitor
monitors=org.apache.airavata.gfac.monitor.impl.pull.qstat.QstatMonitor,org.apache.airavata.gfac.monitor.impl.LocalJobMonitor
+#These properties will used to enable email base monitoring
+email.based.monitor.host=imap.gmail.com
+email.based.monitor.address=test@scigap.com
+email.based.monitor.password=changeme
+email.based.monitor.folder.name=INBOX
+# either imaps or pop3
+email.based.monitor.store.protocol=imaps
#These property will be used to query the email server periodically. value in milliseconds(ms).
email.based.monitoring.period=10000
###########################################################################
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
index a7c01f9..29287cc 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
@@ -22,6 +22,7 @@ package org.apache.airavata.gfac.gsissh.provider.impl;
import org.airavata.appcatalog.cpi.AppCatalog;
import org.airavata.appcatalog.cpi.AppCatalogException;
+import org.apache.airavata.common.exception.AiravataException;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.gfac.ExecutionMode;
@@ -43,7 +44,6 @@ import org.apache.airavata.gsi.ssh.api.SSHApiException;
import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.EmailMonitorProperty;
import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
import org.apache.airavata.model.appcatalog.computeresource.MonitorMode;
import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
@@ -150,13 +150,14 @@ public class GSISSHProvider extends AbstractRecoverableProvider {
if (jobExecutionContext.getPreferredJobSubmissionProtocol() == JobSubmissionProtocol.SSH) {
MonitorMode monitorMode = sshJobSubmission.getMonitorMode();
if (monitorMode != null && monitorMode == MonitorMode.JOB_EMAIL_NOTIFICATION_MONITOR) {
- EmailMonitorProperty emailMonitorProp = sshJobSubmission.getEmailMonitorProperty();
- if (emailMonitorProp != null) {
- EmailBasedMonitor emailBasedMonitor = EmailMonitorFactory.getEmailBasedMonitor(emailMonitorProp,
+ try {
+ EmailBasedMonitor emailBasedMonitor = EmailMonitorFactory.getEmailBasedMonitor(
sshJobSubmission.getResourceJobManager().getResourceJobManagerType());
emailBasedMonitor.addToJobMonitorMap(jobExecutionContext);
- return;
+ } catch (AiravataException e) {
+ log.error("Couldn't active email monitoring, Error while initializing Email Based Monitor", e);
}
+ return;
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/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 a988752..3d5c8f9 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
@@ -33,8 +33,6 @@ import org.apache.airavata.gfac.monitor.email.parser.EmailParser;
import org.apache.airavata.gfac.monitor.email.parser.LSFEmailParser;
import org.apache.airavata.gfac.monitor.email.parser.PBSEmailParser;
import org.apache.airavata.gfac.monitor.email.parser.SLURMEmailParser;
-import org.apache.airavata.model.appcatalog.computeresource.EmailMonitorProperty;
-import org.apache.airavata.model.appcatalog.computeresource.EmailProtocol;
import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
import org.apache.airavata.model.messaging.event.JobIdentifier;
import org.apache.airavata.model.messaging.event.JobStatusChangeRequestEvent;
@@ -48,9 +46,10 @@ import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
+import javax.mail.search.AndTerm;
import javax.mail.search.FlagTerm;
import javax.mail.search.ReceivedDateTerm;
-import javax.validation.constraints.NotNull;
+import javax.mail.search.SearchTerm;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -63,7 +62,8 @@ public class EmailBasedMonitor implements Runnable{
private static final AiravataLogger log = AiravataLoggerFactory.getLogger(EmailBasedMonitor.class);
public static final int COMPARISON = 6; // after and equal
- private final EmailMonitorProperty emailMonitorProperty;
+ public static final String IMAPS = "imaps";
+ public static final String POP3 = "pop3";
private boolean stopMonitoring = false;
private Session session ;
@@ -72,17 +72,26 @@ public class EmailBasedMonitor implements Runnable{
private Properties properties;
private final ResourceJobManagerType RESOURCE_JOB_MONITOR_TYPE;
private Map<String, JobExecutionContext> jobMonitorMap = new ConcurrentHashMap<String, JobExecutionContext>();
+ private String host, emailAddress, password, storeProtocol, folderName ;
+ private Date monitorStartDate;
- public EmailBasedMonitor(EmailMonitorProperty emailMonitorProp, ResourceJobManagerType type) {
- this.emailMonitorProperty = emailMonitorProp;
+ public EmailBasedMonitor(ResourceJobManagerType type) throws AiravataException {
RESOURCE_JOB_MONITOR_TYPE = type;
init();
}
- private void init() {
+ private void init() throws AiravataException {
+ host = ServerSettings.getEmailBasedMonitorHost();
+ emailAddress = ServerSettings.getEmailBasedMonitorAddress();
+ password = ServerSettings.getEmailBasedMonitorPassword();
+ storeProtocol = ServerSettings.getEmailBasedMonitorStoreProtocol();
+ folderName = ServerSettings.getEmailBasedMonitorFolderName();
+ if (!(storeProtocol.equals(IMAPS) || storeProtocol.equals(POP3))) {
+ throw new AiravataException("Unsupported store protocol , expected " +
+ IMAPS + " or " + POP3 + " but found " + storeProtocol);
+ }
properties = new Properties();
- properties.put("mail.store.protocol", emailMonitorProperty.getStoreProtocol());
-
+ properties.put("mail.store.protocol", storeProtocol);
}
public void addToJobMonitorMap(JobExecutionContext jobExecutionContext) {
@@ -111,34 +120,28 @@ public class EmailBasedMonitor implements Runnable{
default:
throw new AiravataException("Un-handle resource job manager type: "+ RESOURCE_JOB_MONITOR_TYPE + " for email monitoring --> " + addressStr);
}
- return emailParser.parseEmail(message, emailMonitorProperty.getSenderEmailAddress());
+ return emailParser.parseEmail(message);
}
@Override
public void run() {
try {
session = Session.getDefaultInstance(properties);
- store = session.getStore(getProtocol(emailMonitorProperty.getStoreProtocol()));
- store.connect(emailMonitorProperty.getHost(), emailMonitorProperty.getEmailAddress(),
- emailMonitorProperty.getPassword());
- emailFolder = store.getFolder(emailMonitorProperty.getFolderName());
- emailFolder.open(Folder.READ_WRITE);
+ store = session.getStore(storeProtocol);
+ store.connect(host, emailAddress, password);
+ emailFolder = store.getFolder(folderName);
// first time we search for all unread messages.
- Date preDate = Calendar.getInstance().getTime();
- Date nextDate;
- processMessages(emailFolder.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false)));
- // then we search message continuously from prevDate to present.
+ SearchTerm unseenBefore = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
while (!(stopMonitoring || ServerSettings.isStopAllThreads())) {
if (!store.isConnected()) {
store.connect();
- emailFolder = store.getFolder(emailMonitorProperty.getFolderName());
- emailFolder.open(Folder.READ_WRITE);
+ emailFolder = store.getFolder(folderName);
}
Thread.sleep(ServerSettings.getEmailMonitorPeriod());// sleep a bit - get rest till job finishes
- nextDate = Calendar.getInstance().getTime();
- Message[] searchMessages = emailFolder.search(new ReceivedDateTerm(COMPARISON, preDate));
+ emailFolder.open(Folder.READ_WRITE);
+ Message[] searchMessages = emailFolder.search(unseenBefore);
processMessages(searchMessages);
- preDate = nextDate; // this is a critical line
+ emailFolder.close(false);
}
} catch (MessagingException e) {
log.error("Couldn't connect to the store ", e);
@@ -211,16 +214,6 @@ public class EmailBasedMonitor implements Runnable{
}
}
- private String getProtocol(EmailProtocol storeProtocol) throws AiravataException {
- switch (storeProtocol) {
- case IMAPS:
- return "imaps";
- case POP3:
- return "pop3";
- default:
- throw new AiravataException("Unhandled Email store protocol ");
- }
- }
private void process(JobStatusResult jobStatusResult, JobExecutionContext jEC){
JobState resultState = jobStatusResult.getState();
jEC.getJobDetails().setJobStatus(new JobStatus(resultState));
@@ -292,4 +285,8 @@ public class EmailBasedMonitor implements Runnable{
public void stopMonitoring() {
stopMonitoring = true;
}
+
+ public void setDate(Date date) {
+ this.monitorStartDate = date;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailMonitorFactory.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailMonitorFactory.java b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailMonitorFactory.java
index 25fe073..3a75331 100644
--- a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailMonitorFactory.java
+++ b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailMonitorFactory.java
@@ -20,45 +20,30 @@
*/
package org.apache.airavata.gfac.monitor.email;
-import org.apache.airavata.model.appcatalog.computeresource.EmailMonitorProperty;
+import org.apache.airavata.common.exception.AiravataException;
import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
+import java.util.Calendar;
+import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class EmailMonitorFactory {
- private static Map<String, EmailBasedMonitor> emailMonitors = new HashMap<String, EmailBasedMonitor>();
+ private static EmailBasedMonitor emailBasedMonitor;
+ private static Date startMonitorDate = Calendar.getInstance().getTime();
-
- public static EmailBasedMonitor getEmailBasedMonitor(EmailMonitorProperty emailMonitorProp,
- ResourceJobManagerType resourceJobManagerType) {
- String key = getKey(emailMonitorProp);
- EmailBasedMonitor monitor = emailMonitors.get(key);
- if (monitor == null) {
- synchronized (emailMonitors){
- if (monitor == null) {
- monitor = new EmailBasedMonitor(emailMonitorProp, resourceJobManagerType);
- emailMonitors.put(key, monitor);
- new Thread(monitor).start();
+ public static EmailBasedMonitor getEmailBasedMonitor(ResourceJobManagerType resourceJobManagerType) throws AiravataException {
+ if (emailBasedMonitor == null) {
+ synchronized (EmailMonitorFactory.class){
+ if (emailBasedMonitor == null) {
+ emailBasedMonitor = new EmailBasedMonitor(resourceJobManagerType);
+ emailBasedMonitor.setDate(startMonitorDate);
+ new Thread(emailBasedMonitor).start();
}
}
}
- return monitor;
- }
-
- public static void stopAllMonitors() {
- for (EmailBasedMonitor emailBasedMonitor : emailMonitors.values()) {
- emailBasedMonitor.stopMonitoring();
- }
- }
-
- private static String getKey(EmailMonitorProperty emailMonitorProp) {
- StringBuffer sb = new StringBuffer(emailMonitorProp.getHost().trim());
- sb.append("_").append(emailMonitorProp.getStoreProtocol().name());
- sb.append("_").append(emailMonitorProp.getEmailAddress().trim());
- sb.append("_").append(emailMonitorProp.getFolderName().trim());
- return sb.toString();
+ return emailBasedMonitor;
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/EmailParser.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/EmailParser.java b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/EmailParser.java
index 89abab1..84899f0 100644
--- a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/EmailParser.java
+++ b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/EmailParser.java
@@ -31,5 +31,5 @@ public interface EmailParser {
static final String JOBID = "jobId";
static final String EXIT_STATUS = "exitStatus";
- JobStatusResult parseEmail(Message message, String senderEmailAddress) throws MessagingException, AiravataException;
+ JobStatusResult parseEmail(Message message) throws MessagingException, AiravataException;
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java
index 58d977f..64f3639 100644
--- a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java
+++ b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/parser/LSFEmailParser.java
@@ -40,7 +40,7 @@ public class LSFEmailParser implements EmailParser {
+ ">.*)\\s[a-zA-Z =]+(?<" + EXIT_STATUS + ">\\d+)\\sSignal[ ]*=[ ]*(?<" + SIGNAL + ">[a-zA-z]*)";
@Override
- public JobStatusResult parseEmail(Message message, String senderEmailAddress) throws MessagingException, AiravataException {
+ public JobStatusResult parseEmail(Message message) throws MessagingException, AiravataException {
JobStatusResult jobStatusResult = new JobStatusResult();
try {
String content = ((String) message.getContent());
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/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 f253383..b5f543b 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
@@ -45,8 +45,9 @@ public class PBSEmailParser implements EmailParser {
public static final String ABORTED_BY_PBS_SERVER = "Aborted by PBS Server";
@Override
- public JobStatusResult parseEmail(Message message, String senderEmailAddress) throws MessagingException, AiravataException {
+ public JobStatusResult parseEmail(Message message) throws MessagingException, AiravataException {
JobStatusResult jobStatusResult = new JobStatusResult();
+// log.info("Parsing -> " + message.getSubject());
try {
String content = ((String) message.getContent());
Pattern pattern = Pattern.compile(REGEX);
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/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 a35f88d..47e78a7 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
@@ -43,7 +43,7 @@ public class SLURMEmailParser implements EmailParser {
public static final String FAILED = "Failed";
@Override
- public JobStatusResult parseEmail(Message message, String senderEmailAddress) throws MessagingException, AiravataException{
+ public JobStatusResult parseEmail(Message message) throws MessagingException, AiravataException{
JobStatusResult jobStatusResult = new JobStatusResult();
String subject = message.getSubject();
Pattern pattern = Pattern.compile(REGEX);
http://git-wip-us.apache.org/repos/asf/airavata/blob/35e0af8b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
index 5323112..83e60a5 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
@@ -22,6 +22,7 @@
package org.apache.airavata.gfac.ssh.provider.impl;
import org.airavata.appcatalog.cpi.AppCatalogException;
+import org.apache.airavata.common.exception.AiravataException;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.gfac.Constants;
@@ -49,7 +50,6 @@ import org.apache.airavata.gsi.ssh.impl.StandardOutReader;
import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
import org.apache.airavata.model.appcatalog.appinterface.DataType;
import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
-import org.apache.airavata.model.appcatalog.computeresource.EmailMonitorProperty;
import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
import org.apache.airavata.model.appcatalog.computeresource.MonitorMode;
import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
@@ -381,13 +381,14 @@ public class SSHProvider extends AbstractProvider {
SSHJobSubmission sshJobSubmission = jobExecutionContext.getAppCatalog().getComputeResource().getSSHJobSubmission(jobSubmissionInterfaceId);
MonitorMode monitorMode = sshJobSubmission.getMonitorMode();
if (monitorMode != null && monitorMode == MonitorMode.JOB_EMAIL_NOTIFICATION_MONITOR) {
- EmailMonitorProperty emailMonitorProp = sshJobSubmission.getEmailMonitorProperty();
- if (emailMonitorProp != null) {
- EmailBasedMonitor emailBasedMonitor = EmailMonitorFactory.getEmailBasedMonitor(emailMonitorProp,
+ try {
+ EmailBasedMonitor emailBasedMonitor = EmailMonitorFactory.getEmailBasedMonitor(
sshJobSubmission.getResourceJobManager().getResourceJobManagerType());
emailBasedMonitor.addToJobMonitorMap(jobExecutionContext);
- return;
+ } catch (AiravataException e) {
+ log.error("Couldn't active email monitoring, Error while initializing Email Based Monitor", e);
}
+ return;
}
}