Repository: airavata
Updated Branches:
  refs/heads/master fc2088202 -> 93d4421b7


http://git-wip-us.apache.org/repos/asf/airavata/blob/66ac6b92/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 4c19d31..a9bf275 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,6 +67,7 @@ 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_FIELD_DESC = new 
org.apache.thrift.protocol.TField("emailMonitor", 
org.apache.thrift.protocol.TType.STRUCT, (short)7);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -80,6 +81,7 @@ import org.slf4j.LoggerFactory;
   private String alternativeSSHHostName; // optional
   private int sshPort; // optional
   private MonitorMode monitorMode; // optional
+  private EmailMonitorProperty emailMonitor; // 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 {
@@ -96,7 +98,8 @@ import org.slf4j.LoggerFactory;
      * 
      * @see MonitorMode
      */
-    MONITOR_MODE((short)6, "monitorMode");
+    MONITOR_MODE((short)6, "monitorMode"),
+    EMAIL_MONITOR((short)7, "emailMonitor");
 
     private static final Map<String, _Fields> byName = new HashMap<String, 
_Fields>();
 
@@ -123,6 +126,8 @@ import org.slf4j.LoggerFactory;
           return SSH_PORT;
         case 6: // MONITOR_MODE
           return MONITOR_MODE;
+        case 7: // EMAIL_MONITOR
+          return EMAIL_MONITOR;
         default:
           return null;
       }
@@ -165,7 +170,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};
+  private _Fields optionals[] = 
{_Fields.ALTERNATIVE_SSHHOST_NAME,_Fields.SSH_PORT,_Fields.MONITOR_MODE,_Fields.EMAIL_MONITOR};
   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);
@@ -181,6 +186,8 @@ 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, new 
org.apache.thrift.meta_data.FieldMetaData("emailMonitor", 
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);
   }
@@ -224,6 +231,9 @@ import org.slf4j.LoggerFactory;
     if (other.isSetMonitorMode()) {
       this.monitorMode = other.monitorMode;
     }
+    if (other.isSetEmailMonitor()) {
+      this.emailMonitor = new EmailMonitorProperty(other.emailMonitor);
+    }
   }
 
   public SSHJobSubmission deepCopy() {
@@ -240,6 +250,7 @@ import org.slf4j.LoggerFactory;
     this.sshPort = 22;
 
     this.monitorMode = null;
+    this.emailMonitor = null;
   }
 
   public String getJobSubmissionInterfaceId() {
@@ -395,6 +406,29 @@ import org.slf4j.LoggerFactory;
     }
   }
 
+  public EmailMonitorProperty getEmailMonitor() {
+    return this.emailMonitor;
+  }
+
+  public void setEmailMonitor(EmailMonitorProperty emailMonitor) {
+    this.emailMonitor = emailMonitor;
+  }
+
+  public void unsetEmailMonitor() {
+    this.emailMonitor = null;
+  }
+
+  /** Returns true if field emailMonitor is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetEmailMonitor() {
+    return this.emailMonitor != null;
+  }
+
+  public void setEmailMonitorIsSet(boolean value) {
+    if (!value) {
+      this.emailMonitor = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case JOB_SUBMISSION_INTERFACE_ID:
@@ -445,6 +479,14 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case EMAIL_MONITOR:
+      if (value == null) {
+        unsetEmailMonitor();
+      } else {
+        setEmailMonitor((EmailMonitorProperty)value);
+      }
+      break;
+
     }
   }
 
@@ -468,6 +510,9 @@ import org.slf4j.LoggerFactory;
     case MONITOR_MODE:
       return getMonitorMode();
 
+    case EMAIL_MONITOR:
+      return getEmailMonitor();
+
     }
     throw new IllegalStateException();
   }
@@ -491,6 +536,8 @@ import org.slf4j.LoggerFactory;
       return isSetSshPort();
     case MONITOR_MODE:
       return isSetMonitorMode();
+    case EMAIL_MONITOR:
+      return isSetEmailMonitor();
     }
     throw new IllegalStateException();
   }
@@ -562,6 +609,15 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
+    boolean this_present_emailMonitor = true && this.isSetEmailMonitor();
+    boolean that_present_emailMonitor = true && that.isSetEmailMonitor();
+    if (this_present_emailMonitor || that_present_emailMonitor) {
+      if (!(this_present_emailMonitor && that_present_emailMonitor))
+        return false;
+      if (!this.emailMonitor.equals(that.emailMonitor))
+        return false;
+    }
+
     return true;
   }
 
@@ -638,6 +694,16 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
+    lastComparison = 
Boolean.valueOf(isSetEmailMonitor()).compareTo(other.isSetEmailMonitor());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEmailMonitor()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.emailMonitor, other.emailMonitor);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -707,6 +773,16 @@ import org.slf4j.LoggerFactory;
       }
       first = false;
     }
+    if (isSetEmailMonitor()) {
+      if (!first) sb.append(", ");
+      sb.append("emailMonitor:");
+      if (this.emailMonitor == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.emailMonitor);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -729,6 +805,9 @@ import org.slf4j.LoggerFactory;
     if (resourceJobManager != null) {
       resourceJobManager.validate();
     }
+    if (emailMonitor != null) {
+      emailMonitor.validate();
+    }
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
@@ -816,6 +895,15 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
             break;
+          case 7: // EMAIL_MONITOR
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.emailMonitor = new EmailMonitorProperty();
+              struct.emailMonitor.read(iprot);
+              struct.setEmailMonitorIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
         }
@@ -863,6 +951,13 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldEnd();
         }
       }
+      if (struct.emailMonitor != null) {
+        if (struct.isSetEmailMonitor()) {
+          oprot.writeFieldBegin(EMAIL_MONITOR_FIELD_DESC);
+          struct.emailMonitor.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -893,7 +988,10 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetMonitorMode()) {
         optionals.set(2);
       }
-      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetEmailMonitor()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
       if (struct.isSetAlternativeSSHHostName()) {
         oprot.writeString(struct.alternativeSSHHostName);
       }
@@ -903,6 +1001,9 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetMonitorMode()) {
         oprot.writeI32(struct.monitorMode.getValue());
       }
+      if (struct.isSetEmailMonitor()) {
+        struct.emailMonitor.write(oprot);
+      }
     }
 
     @Override
@@ -915,7 +1016,7 @@ import org.slf4j.LoggerFactory;
       struct.resourceJobManager = new ResourceJobManager();
       struct.resourceJobManager.read(iprot);
       struct.setResourceJobManagerIsSet(true);
-      BitSet incoming = iprot.readBitSet(3);
+      BitSet incoming = iprot.readBitSet(4);
       if (incoming.get(0)) {
         struct.alternativeSSHHostName = iprot.readString();
         struct.setAlternativeSSHHostNameIsSet(true);
@@ -928,6 +1029,11 @@ import org.slf4j.LoggerFactory;
         struct.monitorMode = MonitorMode.findByValue(iprot.readI32());
         struct.setMonitorModeIsSet(true);
       }
+      if (incoming.get(3)) {
+        struct.emailMonitor = new EmailMonitorProperty();
+        struct.emailMonitor.read(iprot);
+        struct.setEmailMonitorIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/66ac6b92/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 929e677..cf9b06c 100644
--- a/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
@@ -208,10 +208,37 @@ enum JobSubmissionProtocol {
 **/
 enum MonitorMode {
    POLL_JOB_MANAGER,
+   JOB_EMAIL_NOTIFICATION_MONITOR,
    XSEDE_AMQP_SUBSCRIBE
 }
 
 /**
+* 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
+}
+
+/**
  * Enumeration of data movement supported by Airavata
  *
  * SCP:
@@ -320,7 +347,8 @@ struct SSHJobSubmission {
     3: required ResourceJobManager resourceJobManager,
     4: optional string alternativeSSHHostName,
     5: optional i32 sshPort = 22,
-    6: optional MonitorMode monitorMode
+    6: optional MonitorMode monitorMode,
+    7: optional EmailMonitorProperty emailMonitor
 }
 
 struct GlobusJobSubmission {

Reply via email to