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/10 22:33:55 UTC
[1/4] airavata git commit: Modified computer resource.thrift file to
support email based monitoring.
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 {
[3/4] airavata git commit: Merge branch 'master' into emailMonitoring
Posted by sh...@apache.org.
Merge branch 'master' into emailMonitoring
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/042e25c7
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/042e25c7
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/042e25c7
Branch: refs/heads/master
Commit: 042e25c761d4356df12ff1d65382a9a814026044
Parents: 66ac6b9 fc20882
Author: shamrath <sh...@gmail.com>
Authored: Thu Apr 9 19:45:40 2015 -0400
Committer: shamrath <sh...@gmail.com>
Committed: Thu Apr 9 19:45:40 2015 -0400
----------------------------------------------------------------------
.../gfac/monitor/email/EmailBasedMonitor.java | 27 ++--
.../test-suite/multi-tenanted-airavata/README | 2 +-
.../test-suite/multi-tenanted-airavata/pom.xml | 29 ++++
.../ApplicationRegister.java | 147 +++++++++++--------
.../ComputeResourceRegister.java | 2 +-
.../ExperimentExecution.java | 140 ++++++++++--------
.../FrameworkBootstrapping.java | 2 +-
.../multitenantedairavata/GatewayRegister.java | 23 ++-
.../utils/FrameworkUtils.java | 54 +++++++
.../utils/TestFrameworkConstants.java | 3 +
.../main/resources/test-framework.properties | 3 +
11 files changed, 293 insertions(+), 139 deletions(-)
----------------------------------------------------------------------
[4/4] airavata git commit: AIRAVATA-1666 - Added compute resource
level email based monitoring check.
Posted by sh...@apache.org.
AIRAVATA-1666 - Added compute resource level email based monitoring check.
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/93d4421b
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/93d4421b
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/93d4421b
Branch: refs/heads/master
Commit: 93d4421b7e5c0d32fc62ceae3d0d0c88cdaf7838
Parents: 042e25c
Author: shamrath <sh...@gmail.com>
Authored: Fri Apr 10 11:50:20 2015 -0400
Committer: shamrath <sh...@gmail.com>
Committed: Fri Apr 10 11:50:20 2015 -0400
----------------------------------------------------------------------
.../lib/airavata/computeResourceModel_types.cpp | 12 +-
.../lib/airavata/computeResourceModel_types.h | 16 +--
.../Model/AppCatalog/ComputeResource/Types.php | 20 ++--
.../model/appcatalog/computeresource/ttypes.py | 18 +--
.../client/samples/CreateLaunchExperiment.java | 21 ++--
.../computeresource/SSHJobSubmission.java | 112 +++++++++----------
.../computeResourceModel.thrift | 2 +-
.../gsissh/provider/impl/GSISSHProvider.java | 87 +++++++-------
.../gfac/monitor/email/EmailBasedMonitor.java | 61 ++++++----
.../gfac/monitor/email/EmailMonitorFactory.java | 58 ++++++++++
.../gfac/ssh/provider/impl/SSHProvider.java | 58 ++++++----
11 files changed, 279 insertions(+), 186 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp
index 8b83573..2a57b7d 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp
@@ -1142,8 +1142,8 @@ uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
break;
case 7:
if (ftype == ::apache::thrift::protocol::T_STRUCT) {
- xfer += this->emailMonitor.read(iprot);
- this->__isset.emailMonitor = true;
+ xfer += this->emailMonitorProperty.read(iprot);
+ this->__isset.emailMonitorProperty = true;
} else {
xfer += iprot->skip(ftype);
}
@@ -1197,9 +1197,9 @@ uint32_t SSHJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot) c
xfer += oprot->writeI32((int32_t)this->monitorMode);
xfer += oprot->writeFieldEnd();
}
- if (this->__isset.emailMonitor) {
- xfer += oprot->writeFieldBegin("emailMonitor", ::apache::thrift::protocol::T_STRUCT, 7);
- xfer += this->emailMonitor.write(oprot);
+ if (this->__isset.emailMonitorProperty) {
+ xfer += oprot->writeFieldBegin("emailMonitorProperty", ::apache::thrift::protocol::T_STRUCT, 7);
+ xfer += this->emailMonitorProperty.write(oprot);
xfer += oprot->writeFieldEnd();
}
xfer += oprot->writeFieldStop();
@@ -1215,7 +1215,7 @@ void swap(SSHJobSubmission &a, SSHJobSubmission &b) {
swap(a.alternativeSSHHostName, b.alternativeSSHHostName);
swap(a.sshPort, b.sshPort);
swap(a.monitorMode, b.monitorMode);
- swap(a.emailMonitor, b.emailMonitor);
+ swap(a.emailMonitorProperty, b.emailMonitorProperty);
swap(a.__isset, b.__isset);
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h
index 05a2dfd..2b72a04 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h
@@ -647,11 +647,11 @@ class LOCALDataMovement {
void swap(LOCALDataMovement &a, LOCALDataMovement &b);
typedef struct _SSHJobSubmission__isset {
- _SSHJobSubmission__isset() : alternativeSSHHostName(false), sshPort(true), monitorMode(false), emailMonitor(false) {}
+ _SSHJobSubmission__isset() : alternativeSSHHostName(false), sshPort(true), monitorMode(false), emailMonitorProperty(false) {}
bool alternativeSSHHostName;
bool sshPort;
bool monitorMode;
- bool emailMonitor;
+ bool emailMonitorProperty;
} _SSHJobSubmission__isset;
class SSHJobSubmission {
@@ -671,7 +671,7 @@ class SSHJobSubmission {
std::string alternativeSSHHostName;
int32_t sshPort;
MonitorMode::type monitorMode;
- EmailMonitorProperty emailMonitor;
+ EmailMonitorProperty emailMonitorProperty;
_SSHJobSubmission__isset __isset;
@@ -702,9 +702,9 @@ class SSHJobSubmission {
__isset.monitorMode = true;
}
- void __set_emailMonitor(const EmailMonitorProperty& val) {
- emailMonitor = val;
- __isset.emailMonitor = true;
+ void __set_emailMonitorProperty(const EmailMonitorProperty& val) {
+ emailMonitorProperty = val;
+ __isset.emailMonitorProperty = true;
}
bool operator == (const SSHJobSubmission & rhs) const
@@ -727,9 +727,9 @@ class SSHJobSubmission {
return false;
else if (__isset.monitorMode && !(monitorMode == rhs.monitorMode))
return false;
- if (__isset.emailMonitor != rhs.__isset.emailMonitor)
+ if (__isset.emailMonitorProperty != rhs.__isset.emailMonitorProperty)
return false;
- else if (__isset.emailMonitor && !(emailMonitor == rhs.emailMonitor))
+ else if (__isset.emailMonitorProperty && !(emailMonitorProperty == rhs.emailMonitorProperty))
return false;
return true;
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
index e488087..22c46a9 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
@@ -1232,7 +1232,7 @@ class SSHJobSubmission {
public $alternativeSSHHostName = null;
public $sshPort = 22;
public $monitorMode = null;
- public $emailMonitor = null;
+ public $emailMonitorProperty = null;
public function __construct($vals=null) {
if (!isset(self::$_TSPEC)) {
@@ -1263,7 +1263,7 @@ class SSHJobSubmission {
'type' => TType::I32,
),
7 => array(
- 'var' => 'emailMonitor',
+ 'var' => 'emailMonitorProperty',
'type' => TType::STRUCT,
'class' => '\Airavata\Model\AppCatalog\ComputeResource\EmailMonitorProperty',
),
@@ -1288,8 +1288,8 @@ class SSHJobSubmission {
if (isset($vals['monitorMode'])) {
$this->monitorMode = $vals['monitorMode'];
}
- if (isset($vals['emailMonitor'])) {
- $this->emailMonitor = $vals['emailMonitor'];
+ if (isset($vals['emailMonitorProperty'])) {
+ $this->emailMonitorProperty = $vals['emailMonitorProperty'];
}
}
}
@@ -1358,8 +1358,8 @@ class SSHJobSubmission {
break;
case 7:
if ($ftype == TType::STRUCT) {
- $this->emailMonitor = new \Airavata\Model\AppCatalog\ComputeResource\EmailMonitorProperty();
- $xfer += $this->emailMonitor->read($input);
+ $this->emailMonitorProperty = new \Airavata\Model\AppCatalog\ComputeResource\EmailMonitorProperty();
+ $xfer += $this->emailMonitorProperty->read($input);
} else {
$xfer += $input->skip($ftype);
}
@@ -1410,12 +1410,12 @@ class SSHJobSubmission {
$xfer += $output->writeI32($this->monitorMode);
$xfer += $output->writeFieldEnd();
}
- if ($this->emailMonitor !== null) {
- if (!is_object($this->emailMonitor)) {
+ if ($this->emailMonitorProperty !== null) {
+ if (!is_object($this->emailMonitorProperty)) {
throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
}
- $xfer += $output->writeFieldBegin('emailMonitor', TType::STRUCT, 7);
- $xfer += $this->emailMonitor->write($output);
+ $xfer += $output->writeFieldBegin('emailMonitorProperty', TType::STRUCT, 7);
+ $xfer += $this->emailMonitorProperty->write($output);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
index e635472..8b34be1 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
@@ -1216,7 +1216,7 @@ class SSHJobSubmission:
- alternativeSSHHostName
- sshPort
- monitorMode
- - emailMonitor
+ - emailMonitorProperty
"""
thrift_spec = (
@@ -1227,17 +1227,17 @@ class SSHJobSubmission:
(4, TType.STRING, 'alternativeSSHHostName', None, None, ), # 4
(5, TType.I32, 'sshPort', None, 22, ), # 5
(6, TType.I32, 'monitorMode', None, None, ), # 6
- (7, TType.STRUCT, 'emailMonitor', (EmailMonitorProperty, EmailMonitorProperty.thrift_spec), None, ), # 7
+ (7, TType.STRUCT, 'emailMonitorProperty', (EmailMonitorProperty, EmailMonitorProperty.thrift_spec), None, ), # 7
)
- def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, resourceJobManager=None, alternativeSSHHostName=None, sshPort=thrift_spec[5][4], monitorMode=None, emailMonitor=None,):
+ def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, resourceJobManager=None, alternativeSSHHostName=None, sshPort=thrift_spec[5][4], monitorMode=None, emailMonitorProperty=None,):
self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
self.securityProtocol = securityProtocol
self.resourceJobManager = resourceJobManager
self.alternativeSSHHostName = alternativeSSHHostName
self.sshPort = sshPort
self.monitorMode = monitorMode
- self.emailMonitor = emailMonitor
+ self.emailMonitorProperty = emailMonitorProperty
def read(self, iprot):
if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -1281,8 +1281,8 @@ class SSHJobSubmission:
iprot.skip(ftype)
elif fid == 7:
if ftype == TType.STRUCT:
- self.emailMonitor = EmailMonitorProperty()
- self.emailMonitor.read(iprot)
+ self.emailMonitorProperty = EmailMonitorProperty()
+ self.emailMonitorProperty.read(iprot)
else:
iprot.skip(ftype)
else:
@@ -1319,9 +1319,9 @@ class SSHJobSubmission:
oprot.writeFieldBegin('monitorMode', TType.I32, 6)
oprot.writeI32(self.monitorMode)
oprot.writeFieldEnd()
- if self.emailMonitor is not None:
- oprot.writeFieldBegin('emailMonitor', TType.STRUCT, 7)
- self.emailMonitor.write(oprot)
+ if self.emailMonitorProperty is not None:
+ oprot.writeFieldBegin('emailMonitorProperty', TType.STRUCT, 7)
+ self.emailMonitorProperty.write(oprot)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index d173a0b..9ad71f4 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@ -61,7 +61,7 @@ public class CreateLaunchExperiment {
private static String echoAppId = "Echo_fcac7076-e350-4dfb-a6eb-73e2d648fc60";
private static String mpiAppId = "HelloMPI_bfd56d58-6085-4b7f-89fc-646576830518";
private static String wrfAppId = "WRF_7ad5da38-c08b-417c-a9ea-da9298839762";
- private static String amberAppId = "Amber_aa083c86-4680-4002-b3ef-fad93c181926";
+ private static String amberAppId = "Amber_717cba99-1085-45de-861c-952001c5243c";
private static String gromacsAppId = "GROMACS_05622038-9edd-4cb1-824e-0b7cb993364b";
private static String espressoAppId = "ESPRESSO_10cc2820-5d0b-4c63-9546-8a8b595593c1";
private static String lammpsAppId = "LAMMPS_2472685b-8acf-497e-aafe-cc66fe5f4cb6";
@@ -168,13 +168,13 @@ public class CreateLaunchExperiment {
// final String expId = createMPIExperimentForFSD(airavataClient);
// final String expId = createEchoExperimentForStampede(airavataClient);
// final String expId = createEchoExperimentForTrestles(airavataClient);
- final String expId = createExperimentEchoForLocalHost(airavataClient);
- experimentIds.add(expId);
+// final String expId = createExperimentEchoForLocalHost(airavataClient);
// final String expId = createExperimentWRFTrestles(airavataClient);
// final String expId = createExperimentForBR2(airavataClient);
// final String expId = createExperimentForBR2Amber(airavataClient);
// final String expId = createExperimentWRFStampede(airavataClient);
-// final String expId = createExperimentForStampedeAmber(airavataClient);
+ final String expId = createExperimentForStampedeAmber(airavataClient);
+// String expId = createExperimentForTrestlesAmber(airavataClient);
// final String expId = createExperimentGROMACSStampede(airavataClient);
// final String expId = createExperimentESPRESSOStampede(airavataClient);
// final String expId = createExperimentLAMMPSStampede(airavataClient);
@@ -184,6 +184,7 @@ public class CreateLaunchExperiment {
// final String expId = createExperimentForLSF(airavataClient);
// final String expId = createExperimentLAMMPSForLSF(airavataClient);
// final String expId = "Ultrascan_ln_eb029947-391a-4ccf-8ace-9bafebe07cc0";
+ experimentIds.add(expId);
System.out.println("Experiment ID : " + expId);
// updateExperiment(airavata, expId);
@@ -1312,11 +1313,11 @@ public class CreateLaunchExperiment {
// }
for (InputDataObjectType inputDataObjectType : exInputs) {
if (inputDataObjectType.getName().equalsIgnoreCase("Heat_Restart_File")) {
- inputDataObjectType.setValue("file://root@test-drive.airavata.org:/var/www/experimentData/admin101a290e6330f15a91349159553ae8b6bb1/02_Heat.rst");
+ inputDataObjectType.setValue("/Users/shameera/Projects/scigap/apps/AMBER_FILES/02_Heat.rst");
} else if (inputDataObjectType.getName().equalsIgnoreCase("Production_Control_File")) {
- inputDataObjectType.setValue("file://root@test-drive.airavata.org:/var/www/experimentData/admin101a290e6330f15a91349159553ae8b6bb1/03_Prod.in");
+ inputDataObjectType.setValue("/Users/shameera/Projects/scigap/apps/AMBER_FILES/03_Prod.in");
} else if (inputDataObjectType.getName().equalsIgnoreCase("Parameter_Topology_File")) {
- inputDataObjectType.setValue("file://root@test-drive.airavata.org:/var/www/experimentData/admin101a290e6330f15a91349159553ae8b6bb1/prmtop");
+ inputDataObjectType.setValue("/Users/shameera/Projects/scigap/apps/AMBER_FILES/prmtop");
}
}
@@ -1377,11 +1378,11 @@ public class CreateLaunchExperiment {
// }
for (InputDataObjectType inputDataObjectType : exInputs) {
if (inputDataObjectType.getName().equalsIgnoreCase("Heat_Restart_File")) {
- inputDataObjectType.setValue("/Users/chathuri/dev/airavata/source/php/inputs/AMBER_FILES/02_Heat.rst");
+ inputDataObjectType.setValue("/Users/shameera/Projects/scigap/apps/AMBER_FILES/02_Heat.rst");
} else if (inputDataObjectType.getName().equalsIgnoreCase("Production_Control_File")) {
- inputDataObjectType.setValue("/Users/chathuri/dev/airavata/source/php/inputs/AMBER_FILES/03_Prod.in");
+ inputDataObjectType.setValue("/Users/shameera/Projects/scigap/apps/AMBER_FILES/03_Prod.in");
} else if (inputDataObjectType.getName().equalsIgnoreCase("Parameter_Topology_File")) {
- inputDataObjectType.setValue("/Users/chathuri/dev/airavata/source/php/inputs/AMBER_FILES/prmtop");
+ inputDataObjectType.setValue("/Users/shameera/Projects/scigap/apps/AMBER_FILES/prmtop");
}
}
List<OutputDataObjectType> exOut = client.getApplicationOutputs(amberAppId);
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/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 a9bf275..66f33ab 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,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 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 +81,7 @@ import org.slf4j.LoggerFactory;
private String alternativeSSHHostName; // optional
private int sshPort; // optional
private MonitorMode monitorMode; // optional
- private EmailMonitorProperty emailMonitor; // 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 {
@@ -99,7 +99,7 @@ import org.slf4j.LoggerFactory;
* @see MonitorMode
*/
MONITOR_MODE((short)6, "monitorMode"),
- EMAIL_MONITOR((short)7, "emailMonitor");
+ EMAIL_MONITOR_PROPERTY((short)7, "emailMonitorProperty");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -126,8 +126,8 @@ import org.slf4j.LoggerFactory;
return SSH_PORT;
case 6: // MONITOR_MODE
return MONITOR_MODE;
- case 7: // EMAIL_MONITOR
- return EMAIL_MONITOR;
+ case 7: // EMAIL_MONITOR_PROPERTY
+ return EMAIL_MONITOR_PROPERTY;
default:
return null;
}
@@ -170,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,_Fields.EMAIL_MONITOR};
+ private _Fields optionals[] = {_Fields.ALTERNATIVE_SSHHOST_NAME,_Fields.SSH_PORT,_Fields.MONITOR_MODE,_Fields.EMAIL_MONITOR_PROPERTY};
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,7 +186,7 @@ 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,
+ 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,8 +231,8 @@ import org.slf4j.LoggerFactory;
if (other.isSetMonitorMode()) {
this.monitorMode = other.monitorMode;
}
- if (other.isSetEmailMonitor()) {
- this.emailMonitor = new EmailMonitorProperty(other.emailMonitor);
+ if (other.isSetEmailMonitorProperty()) {
+ this.emailMonitorProperty = new EmailMonitorProperty(other.emailMonitorProperty);
}
}
@@ -250,7 +250,7 @@ import org.slf4j.LoggerFactory;
this.sshPort = 22;
this.monitorMode = null;
- this.emailMonitor = null;
+ this.emailMonitorProperty = null;
}
public String getJobSubmissionInterfaceId() {
@@ -406,26 +406,26 @@ import org.slf4j.LoggerFactory;
}
}
- public EmailMonitorProperty getEmailMonitor() {
- return this.emailMonitor;
+ public EmailMonitorProperty getEmailMonitorProperty() {
+ return this.emailMonitorProperty;
}
- public void setEmailMonitor(EmailMonitorProperty emailMonitor) {
- this.emailMonitor = emailMonitor;
+ public void setEmailMonitorProperty(EmailMonitorProperty emailMonitorProperty) {
+ this.emailMonitorProperty = emailMonitorProperty;
}
- public void unsetEmailMonitor() {
- this.emailMonitor = null;
+ public void unsetEmailMonitorProperty() {
+ this.emailMonitorProperty = null;
}
- /** Returns true if field emailMonitor is set (has been assigned a value) and false otherwise */
- public boolean isSetEmailMonitor() {
- return this.emailMonitor != 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 setEmailMonitorIsSet(boolean value) {
+ public void setEmailMonitorPropertyIsSet(boolean value) {
if (!value) {
- this.emailMonitor = null;
+ this.emailMonitorProperty = null;
}
}
@@ -479,11 +479,11 @@ import org.slf4j.LoggerFactory;
}
break;
- case EMAIL_MONITOR:
+ case EMAIL_MONITOR_PROPERTY:
if (value == null) {
- unsetEmailMonitor();
+ unsetEmailMonitorProperty();
} else {
- setEmailMonitor((EmailMonitorProperty)value);
+ setEmailMonitorProperty((EmailMonitorProperty)value);
}
break;
@@ -510,8 +510,8 @@ import org.slf4j.LoggerFactory;
case MONITOR_MODE:
return getMonitorMode();
- case EMAIL_MONITOR:
- return getEmailMonitor();
+ case EMAIL_MONITOR_PROPERTY:
+ return getEmailMonitorProperty();
}
throw new IllegalStateException();
@@ -536,8 +536,8 @@ import org.slf4j.LoggerFactory;
return isSetSshPort();
case MONITOR_MODE:
return isSetMonitorMode();
- case EMAIL_MONITOR:
- return isSetEmailMonitor();
+ case EMAIL_MONITOR_PROPERTY:
+ return isSetEmailMonitorProperty();
}
throw new IllegalStateException();
}
@@ -609,12 +609,12 @@ 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))
+ 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.emailMonitor.equals(that.emailMonitor))
+ if (!this.emailMonitorProperty.equals(that.emailMonitorProperty))
return false;
}
@@ -694,12 +694,12 @@ import org.slf4j.LoggerFactory;
return lastComparison;
}
}
- lastComparison = Boolean.valueOf(isSetEmailMonitor()).compareTo(other.isSetEmailMonitor());
+ lastComparison = Boolean.valueOf(isSetEmailMonitorProperty()).compareTo(other.isSetEmailMonitorProperty());
if (lastComparison != 0) {
return lastComparison;
}
- if (isSetEmailMonitor()) {
- lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emailMonitor, other.emailMonitor);
+ if (isSetEmailMonitorProperty()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emailMonitorProperty, other.emailMonitorProperty);
if (lastComparison != 0) {
return lastComparison;
}
@@ -773,13 +773,13 @@ import org.slf4j.LoggerFactory;
}
first = false;
}
- if (isSetEmailMonitor()) {
+ if (isSetEmailMonitorProperty()) {
if (!first) sb.append(", ");
- sb.append("emailMonitor:");
- if (this.emailMonitor == null) {
+ sb.append("emailMonitorProperty:");
+ if (this.emailMonitorProperty == null) {
sb.append("null");
} else {
- sb.append(this.emailMonitor);
+ sb.append(this.emailMonitorProperty);
}
first = false;
}
@@ -805,8 +805,8 @@ import org.slf4j.LoggerFactory;
if (resourceJobManager != null) {
resourceJobManager.validate();
}
- if (emailMonitor != null) {
- emailMonitor.validate();
+ if (emailMonitorProperty != null) {
+ emailMonitorProperty.validate();
}
}
@@ -895,11 +895,11 @@ import org.slf4j.LoggerFactory;
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
- case 7: // EMAIL_MONITOR
+ case 7: // EMAIL_MONITOR_PROPERTY
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
- struct.emailMonitor = new EmailMonitorProperty();
- struct.emailMonitor.read(iprot);
- struct.setEmailMonitorIsSet(true);
+ struct.emailMonitorProperty = new EmailMonitorProperty();
+ struct.emailMonitorProperty.read(iprot);
+ struct.setEmailMonitorPropertyIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -951,10 +951,10 @@ import org.slf4j.LoggerFactory;
oprot.writeFieldEnd();
}
}
- if (struct.emailMonitor != null) {
- if (struct.isSetEmailMonitor()) {
- oprot.writeFieldBegin(EMAIL_MONITOR_FIELD_DESC);
- struct.emailMonitor.write(oprot);
+ if (struct.emailMonitorProperty != null) {
+ if (struct.isSetEmailMonitorProperty()) {
+ oprot.writeFieldBegin(EMAIL_MONITOR_PROPERTY_FIELD_DESC);
+ struct.emailMonitorProperty.write(oprot);
oprot.writeFieldEnd();
}
}
@@ -988,7 +988,7 @@ import org.slf4j.LoggerFactory;
if (struct.isSetMonitorMode()) {
optionals.set(2);
}
- if (struct.isSetEmailMonitor()) {
+ if (struct.isSetEmailMonitorProperty()) {
optionals.set(3);
}
oprot.writeBitSet(optionals, 4);
@@ -1001,8 +1001,8 @@ import org.slf4j.LoggerFactory;
if (struct.isSetMonitorMode()) {
oprot.writeI32(struct.monitorMode.getValue());
}
- if (struct.isSetEmailMonitor()) {
- struct.emailMonitor.write(oprot);
+ if (struct.isSetEmailMonitorProperty()) {
+ struct.emailMonitorProperty.write(oprot);
}
}
@@ -1030,9 +1030,9 @@ import org.slf4j.LoggerFactory;
struct.setMonitorModeIsSet(true);
}
if (incoming.get(3)) {
- struct.emailMonitor = new EmailMonitorProperty();
- struct.emailMonitor.read(iprot);
- struct.setEmailMonitorIsSet(true);
+ struct.emailMonitorProperty = new EmailMonitorProperty();
+ struct.emailMonitorProperty.read(iprot);
+ struct.setEmailMonitorPropertyIsSet(true);
}
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/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 cf9b06c..b13b2e5 100644
--- a/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
@@ -348,7 +348,7 @@ struct SSHJobSubmission {
4: optional string alternativeSSHHostName,
5: optional i32 sshPort = 22,
6: optional MonitorMode monitorMode,
- 7: optional EmailMonitorProperty emailMonitor
+ 7: optional EmailMonitorProperty emailMonitorProperty
}
struct GlobusJobSubmission {
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/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 2b23596..075f942 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
@@ -21,6 +21,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.ApplicationSettingsException;
import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.gfac.ExecutionMode;
@@ -36,11 +37,14 @@ import org.apache.airavata.gfac.core.utils.GFacUtils;
import org.apache.airavata.gfac.gsissh.security.GSISecurityContext;
import org.apache.airavata.gfac.gsissh.util.GFACGSISSHUtils;
import org.apache.airavata.gfac.monitor.email.EmailBasedMonitor;
+import org.apache.airavata.gfac.monitor.email.EmailMonitorFactory;
import org.apache.airavata.gsi.ssh.api.Cluster;
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;
import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
@@ -138,48 +142,53 @@ public class GSISSHProvider extends AbstractRecoverableProvider {
}
- public void delegateToMonitorHandlers(JobExecutionContext jobExecutionContext, SSHJobSubmission sshJobSubmission, String jobID) throws GFacHandlerException {
- if (ServerSettings.isEmailBasedNotificationEnable()) {
- try {
- EmailBasedMonitor emailBasedMonitor = EmailBasedMonitor.getInstant(BetterGfacImpl.getMonitorPublisher());
- emailBasedMonitor.addToJobMonitorMap(jobExecutionContext);
- } catch (ApplicationSettingsException e) {
- throw new GFacHandlerException("Error while delegating job execution context to email based monitor");
- }
- } else {
- List<ThreadedHandler> daemonHandlers = BetterGfacImpl.getDaemonHandlers();
- if (daemonHandlers == null) {
- daemonHandlers = BetterGfacImpl.getDaemonHandlers();
- }
- ThreadedHandler pullMonitorHandler = null;
- ThreadedHandler pushMonitorHandler = null;
- MonitorMode monitorMode = sshJobSubmission.getMonitorMode();
- for (ThreadedHandler threadedHandler : daemonHandlers) {
- if ("org.apache.airavata.gfac.monitor.handlers.GridPullMonitorHandler".equals(threadedHandler.getClass().getName())) {
- pullMonitorHandler = threadedHandler;
- if (monitorMode == null || monitorMode == MonitorMode.POLL_JOB_MANAGER) {
- log.info("Job is launched successfully now parsing it to monitoring in pull mode, JobID Returned: " + jobID);
- pullMonitorHandler.invoke(jobExecutionContext);
- } else {
- log.error("Currently we only support Pull and Push monitoring and monitorMode should be PULL" +
- " to handle by the GridPullMonitorHandler");
- }
- } else if ("org.apache.airavata.gfac.monitor.handlers.GridPushMonitorHandler".equals(threadedHandler.getClass().getName())) {
- pushMonitorHandler = threadedHandler;
- if (monitorMode == null || monitorMode == MonitorMode.XSEDE_AMQP_SUBSCRIBE) {
- log.info("Job is launched successfully now parsing it to monitoring in push mode, JobID Returned: " + jobID);
- pushMonitorHandler.invoke(jobExecutionContext);
- } else {
- log.error("Currently we only support Pull and Push monitoring and monitorMode should be PUSH" +
- " to handle by the GridPushMonitorHandler");
- }
+ public void delegateToMonitorHandlers(JobExecutionContext jobExecutionContext, SSHJobSubmission sshJobSubmission, String jobID) throws GFacHandlerException, AppCatalogException {
+ if (jobExecutionContext.getPreferredJobSubmissionProtocol() == JobSubmissionProtocol.SSH) {
+ if (sshJobSubmission.getMonitorMode() == MonitorMode.JOB_EMAIL_NOTIFICATION_MONITOR) {
+ EmailMonitorProperty emailMonitorProp = sshJobSubmission.getEmailMonitorProperty();
+ if (emailMonitorProp != null) {
+ EmailMonitorFactory emailMonitorFactory = new EmailMonitorFactory();
+ EmailBasedMonitor emailBasedMonitor = emailMonitorFactory.getEmailBasedMonitor(emailMonitorProp);
+ emailBasedMonitor.addToJobMonitorMap(jobExecutionContext);
+ return;
}
- // have to handle the GridPushMonitorHandler logic
}
- if (pullMonitorHandler == null && pushMonitorHandler == null && ExecutionMode.ASYNCHRONOUS.equals(jobExecutionContext.getGFacConfiguration().getExecutionMode())) {
- log.error("No Daemon handler is configured in gfac-config.xml, either pull or push, so monitoring will not invoked" +
- ", execution is configured as asynchronous, so Outhandler will not be invoked");
+ }
+
+ // if email monitor is not activeated or not configure we use pull or push monitor
+ List<ThreadedHandler> daemonHandlers = BetterGfacImpl.getDaemonHandlers();
+ if (daemonHandlers == null) {
+ daemonHandlers = BetterGfacImpl.getDaemonHandlers();
+ }
+ ThreadedHandler pullMonitorHandler = null;
+ ThreadedHandler pushMonitorHandler = null;
+ MonitorMode monitorMode = sshJobSubmission.getMonitorMode();
+ for (ThreadedHandler threadedHandler : daemonHandlers) {
+ if ("org.apache.airavata.gfac.monitor.handlers.GridPullMonitorHandler".equals(threadedHandler.getClass().getName())) {
+ pullMonitorHandler = threadedHandler;
+ if (monitorMode == null || monitorMode == MonitorMode.POLL_JOB_MANAGER) {
+ log.info("Job is launched successfully now parsing it to monitoring in pull mode, JobID Returned: " + jobID);
+ pullMonitorHandler.invoke(jobExecutionContext);
+ } else {
+ log.error("Currently we only support Pull and Push monitoring and monitorMode should be PULL" +
+ " to handle by the GridPullMonitorHandler");
+ }
+ } else if ("org.apache.airavata.gfac.monitor.handlers.GridPushMonitorHandler".equals(threadedHandler.getClass().getName())) {
+ pushMonitorHandler = threadedHandler;
+ if (monitorMode == null || monitorMode == MonitorMode.XSEDE_AMQP_SUBSCRIBE) {
+ log.info("Job is launched successfully now parsing it to monitoring in push mode, JobID Returned: " + jobID);
+ pushMonitorHandler.invoke(jobExecutionContext);
+ } else {
+ log.error("Currently we only support Pull and Push monitoring and monitorMode should be PUSH" +
+ " to handle by the GridPushMonitorHandler");
+ }
}
+ // have to handle the GridPushMonitorHandler logic
+ }
+ if (pullMonitorHandler == null && pushMonitorHandler == null && ExecutionMode.ASYNCHRONOUS.equals(jobExecutionContext.getGFacConfiguration().getExecutionMode())) {
+ log.error("No Daemon handler is configured in gfac-config.xml, either pull or push, so monitoring will not invoked" +
+ ", execution is configured as asynchronous, so Outhandler will not be invoked");
+
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/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 b6bfa6c..affe156 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
@@ -21,18 +21,19 @@
package org.apache.airavata.gfac.monitor.email;
import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.logger.AiravataLogger;
import org.apache.airavata.common.logger.AiravataLoggerFactory;
-import org.apache.airavata.common.utils.MonitorPublisher;
import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.cpi.BetterGfacImpl;
import org.apache.airavata.gfac.core.utils.GFacThreadPoolExecutor;
import org.apache.airavata.gfac.core.utils.OutHandlerWorker;
import org.apache.airavata.gfac.monitor.email.parser.EmailParser;
import org.apache.airavata.gfac.monitor.email.parser.LonestarEmailParser;
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.messaging.event.JobIdentifier;
import org.apache.airavata.model.messaging.event.JobStatusChangeRequestEvent;
import org.apache.airavata.model.workspace.experiment.JobState;
@@ -59,39 +60,34 @@ public class EmailBasedMonitor implements Runnable{
private static final String PBS_CONSULT_SDSC_EDU = "pbsconsult@sdsc.edu";
private static final String SLURM_BATCH_STAMPEDE = "slurm@batch1.stampede.tacc.utexas.edu";
private static final String LONESTAR_ADDRESS = "root@c312-206.ls4.tacc.utexas.edu";
- private static EmailBasedMonitor emailBasedMonitor;
- private final MonitorPublisher monitorPublisher;
+ private final EmailMonitorProperty emailMonitorProperty;
+ private boolean stopMonitoring = false;
private Session session ;
private Store store;
private Folder emailFolder;
- private String host, emailAddress, password, folderName, mailStoreProtocol;
+// private String host, emailAddress, password, folderName, mailStoreProtocol;
private Properties properties;
private Map<String, JobExecutionContext> jobMonitorMap = new ConcurrentHashMap<String, JobExecutionContext>();
- private EmailBasedMonitor(MonitorPublisher monitorPublisher) throws ApplicationSettingsException {
- this.monitorPublisher = monitorPublisher;
+ public EmailBasedMonitor(EmailMonitorProperty emailMonitorProp) {
+ this.emailMonitorProperty = emailMonitorProp;
init();
}
- private void init() throws ApplicationSettingsException {
- host = ServerSettings.getEmailBasedMonitorHost();
- emailAddress = ServerSettings.getEmailBasedMonitorAddress();
- password = ServerSettings.getEmailBasedMonitorPassword();
- folderName = ServerSettings.getEmailBasedMonitorFolderName();
- mailStoreProtocol = ServerSettings.getEmailBasedMonitorStoreProtocol();
-
+ private void init() {
properties = new Properties();
- properties.put("mail.store.protocol", mailStoreProtocol);
+ properties.put("mail.store.protocol", emailMonitorProperty.getStoreProtocol());
}
- public static EmailBasedMonitor getInstant(MonitorPublisher monitorPublisher) throws ApplicationSettingsException {
+/* public static EmailBasedMonitor getInstant(EmailMonitorProperty emailMonitorProp, MonitorPublisher monitorPublisher)
+ throws ApplicationSettingsException {
if (emailBasedMonitor == null) {
synchronized (EmailBasedMonitor.class) {
if (emailBasedMonitor == null) {
- emailBasedMonitor = new EmailBasedMonitor(monitorPublisher);
+ emailBasedMonitor = new EmailBasedMonitor(emailMonitorProp);
Thread thread = new Thread(emailBasedMonitor);
thread.start();
}
@@ -99,7 +95,7 @@ public class EmailBasedMonitor implements Runnable{
}
return emailBasedMonitor;
- }
+ }*/
public void addToJobMonitorMap(JobExecutionContext jobExecutionContext) {
addToJobMonitorMap(jobExecutionContext.getJobDetails().getJobID(), jobExecutionContext);
@@ -134,14 +130,15 @@ public class EmailBasedMonitor implements Runnable{
public void run() {
try {
session = Session.getDefaultInstance(properties);
- store = session.getStore(mailStoreProtocol);
- store.connect(host, emailAddress, password);
- while (!ServerSettings.isStopAllThreads()) {
+ store = session.getStore(getProtocol(emailMonitorProperty.getStoreProtocol()));
+ store.connect(emailMonitorProperty.getHost(), emailMonitorProperty.getEmailAddress(),
+ emailMonitorProperty.getPassword());
+ while (!(stopMonitoring || ServerSettings.isStopAllThreads())) {
if (!store.isConnected()) {
store.connect();
}
Thread.sleep(2000);
- emailFolder = store.getFolder(folderName);
+ emailFolder = store.getFolder(emailMonitorProperty.getFolderName());
emailFolder.open(Folder.READ_WRITE);
Message[] searchMessages = emailFolder.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
List<Message> processedMessages = new ArrayList<>();
@@ -177,6 +174,8 @@ public class EmailBasedMonitor implements Runnable{
log.error("Couldn't connect to the store ", e);
} catch (InterruptedException e) {
log.error("Interrupt exception while sleep ", e);
+ } catch (AiravataException e) {
+ log.error("UnHandled arguments ", e);
} finally {
try {
store.close();
@@ -186,11 +185,21 @@ 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));
if (resultState == JobState.COMPLETE) {
- GFacThreadPoolExecutor.getFixedThreadPool().submit(new OutHandlerWorker(jEC, monitorPublisher));
+ GFacThreadPoolExecutor.getFixedThreadPool().submit(new OutHandlerWorker(jEC, BetterGfacImpl.getMonitorPublisher()));
}else if (resultState == JobState.QUEUED) {
// TODO - publish queued rabbitmq message
}else if (resultState == JobState.FAILED) {
@@ -216,7 +225,7 @@ public class EmailBasedMonitor implements Runnable{
"experiment {} , task {}", jobStatus.getJobIdentity().getExperimentId(),
jobStatus.getJobIdentity().getTaskId());
- monitorPublisher.publish(jobStatus);
+ BetterGfacImpl.getMonitorPublisher().publish(jobStatus);
}
private void writeEnvelopeOnError(Message m) throws MessagingException {
@@ -235,4 +244,8 @@ public class EmailBasedMonitor implements Runnable{
if (m.getSubject() != null)
log.error("SUBJECT: " + m.getSubject());
}
+
+ public void stopMonitoring() {
+ stopMonitoring = true;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/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
new file mode 100644
index 0000000..2c24973
--- /dev/null
+++ b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailMonitorFactory.java
@@ -0,0 +1,58 @@
+/*
+ *
+ * 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.airavata.gfac.monitor.email;
+
+import org.apache.airavata.model.appcatalog.computeresource.EmailMonitorProperty;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class EmailMonitorFactory {
+
+ private Map<String, EmailBasedMonitor> emailMonitors = new HashMap<String, EmailBasedMonitor>();
+
+
+ public synchronized EmailBasedMonitor getEmailBasedMonitor(EmailMonitorProperty emailMonitorProp) {
+ String key = getKey(emailMonitorProp);
+ EmailBasedMonitor monitor = emailMonitors.get(key);
+ if (monitor == null) {
+ monitor = new EmailBasedMonitor(emailMonitorProp);
+ emailMonitors.put(key, monitor);
+ new Thread(monitor).start();
+ }
+ return monitor;
+ }
+
+ public void stopAllMonitors() {
+ for (EmailBasedMonitor emailBasedMonitor : emailMonitors.values()) {
+ emailBasedMonitor.stopMonitoring();
+ }
+ }
+
+ private 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();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/93d4421b/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 b201c79..7c29352 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
@@ -21,6 +21,7 @@
package org.apache.airavata.gfac.ssh.provider.impl;
+import org.airavata.appcatalog.cpi.AppCatalogException;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.gfac.Constants;
@@ -36,6 +37,7 @@ import org.apache.airavata.gfac.core.provider.AbstractProvider;
import org.apache.airavata.gfac.core.provider.GFacProviderException;
import org.apache.airavata.gfac.core.utils.GFacUtils;
import org.apache.airavata.gfac.monitor.email.EmailBasedMonitor;
+import org.apache.airavata.gfac.monitor.email.EmailMonitorFactory;
import org.apache.airavata.gfac.ssh.security.SSHSecurityContext;
import org.apache.airavata.gfac.ssh.util.GFACSSHUtils;
import org.apache.airavata.gsi.ssh.api.Cluster;
@@ -47,9 +49,12 @@ 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;
import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
+import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
import org.apache.airavata.model.workspace.experiment.ErrorCategory;
import org.apache.airavata.model.workspace.experiment.JobDetails;
@@ -369,33 +374,40 @@ public class SSHProvider extends AbstractProvider {
return stdOutputString;
}
- public void delegateToMonitorHandlers(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
- if (ServerSettings.isEmailBasedNotificationEnable()) {
- try {
- EmailBasedMonitor emailBasedMonitor = EmailBasedMonitor.getInstant(BetterGfacImpl.getMonitorPublisher());
- emailBasedMonitor.addToJobMonitorMap(jobExecutionContext);
- } catch (ApplicationSettingsException e) {
- throw new GFacHandlerException("Error while delegating job execution context to email based monitor");
- }
- } else {
- List<ThreadedHandler> daemonHandlers = BetterGfacImpl.getDaemonHandlers();
- if (daemonHandlers == null) {
- daemonHandlers = BetterGfacImpl.getDaemonHandlers();
- }
- ThreadedHandler pullMonitorHandler = null;
- ThreadedHandler pushMonitorHandler = null;
- for (ThreadedHandler threadedHandler : daemonHandlers) {
- if ("org.apache.airavata.gfac.monitor.handlers.GridPullMonitorHandler".equals(threadedHandler.getClass().getName())) {
- pullMonitorHandler = threadedHandler;
- pullMonitorHandler.invoke(jobExecutionContext);
+ public void delegateToMonitorHandlers(JobExecutionContext jobExecutionContext) throws GFacHandlerException, AppCatalogException {
+ if (jobExecutionContext.getPreferredJobSubmissionProtocol()== JobSubmissionProtocol.SSH) {
+ String jobSubmissionInterfaceId = jobExecutionContext.getPreferredJobSubmissionInterface().getJobSubmissionInterfaceId();
+ SSHJobSubmission sshJobSubmission = jobExecutionContext.getAppCatalog().getComputeResource().getSSHJobSubmission(jobSubmissionInterfaceId);
+ if (sshJobSubmission.getMonitorMode() == MonitorMode.JOB_EMAIL_NOTIFICATION_MONITOR) {
+ EmailMonitorProperty emailMonitorProp = sshJobSubmission.getEmailMonitorProperty();
+ if (emailMonitorProp != null) {
+ EmailMonitorFactory emailMonitorFactory = new EmailMonitorFactory();
+ EmailBasedMonitor emailBasedMonitor = emailMonitorFactory.getEmailBasedMonitor(emailMonitorProp);
+ emailBasedMonitor.addToJobMonitorMap(jobExecutionContext);
+ return;
}
- // have to handle the GridPushMonitorHandler logic
}
- if (pullMonitorHandler == null && pushMonitorHandler == null && ExecutionMode.ASYNCHRONOUS.equals(jobExecutionContext.getGFacConfiguration().getExecutionMode())) {
- log.error("No Daemon handler is configured in gfac-config.xml, either pull or push, so monitoring will not invoked" +
- ", execution is configured as asynchronous, so Outhandler will not be invoked");
+ }
+
+ // if email monitor is not activeated or not configure we use pull or push monitor
+ List<ThreadedHandler> daemonHandlers = BetterGfacImpl.getDaemonHandlers();
+ if (daemonHandlers == null) {
+ daemonHandlers = BetterGfacImpl.getDaemonHandlers();
+ }
+ ThreadedHandler pullMonitorHandler = null;
+ ThreadedHandler pushMonitorHandler = null;
+ for (ThreadedHandler threadedHandler : daemonHandlers) {
+ if ("org.apache.airavata.gfac.monitor.handlers.GridPullMonitorHandler".equals(threadedHandler.getClass().getName())) {
+ pullMonitorHandler = threadedHandler;
+ pullMonitorHandler.invoke(jobExecutionContext);
}
+ // have to handle the GridPushMonitorHandler logic
}
+ if (pullMonitorHandler == null && pushMonitorHandler == null && ExecutionMode.ASYNCHRONOUS.equals(jobExecutionContext.getGFacConfiguration().getExecutionMode())) {
+ log.error("No Daemon handler is configured in gfac-config.xml, either pull or push, so monitoring will not invoked" +
+ ", execution is configured as asynchronous, so Outhandler will not be invoked");
+ }
+
}
}
[2/4] airavata git commit: Modified computer resource.thrift file to
support email based monitoring.
Posted by sh...@apache.org.
Modified computer resource.thrift file to support email based monitoring.
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/66ac6b92
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/66ac6b92
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/66ac6b92
Branch: refs/heads/master
Commit: 66ac6b9287f7971f5e01901c8ada37ed669cb587
Parents: bf0fddb
Author: shamrath <sh...@gmail.com>
Authored: Wed Apr 8 17:06:37 2015 -0400
Committer: shamrath <sh...@gmail.com>
Committed: Wed Apr 8 17:06:37 2015 -0400
----------------------------------------------------------------------
.../lib/airavata/computeResourceModel_types.cpp | 400 ++++++---
.../lib/airavata/computeResourceModel_types.h | 94 ++-
.../Model/AppCatalog/ComputeResource/Types.php | 192 ++++-
.../model/appcatalog/computeresource/ttypes.py | 169 +++-
.../airavata/model/messaging/event/ttypes.py | 79 ++
.../computeresource/EmailMonitorProperty.java | 805 +++++++++++++++++++
.../computeresource/EmailProtocol.java | 66 ++
.../appcatalog/computeresource/MonitorMode.java | 5 +-
.../computeresource/SSHJobSubmission.java | 114 ++-
.../computeResourceModel.thrift | 30 +-
10 files changed, 1816 insertions(+), 138 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/66ac6b92/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp
index d54c519..8b83573 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.cpp
@@ -113,13 +113,25 @@ const std::map<int, const char*> _JobSubmissionProtocol_VALUES_TO_NAMES(::apache
int _kMonitorModeValues[] = {
MonitorMode::POLL_JOB_MANAGER,
+ MonitorMode::JOB_EMAIL_NOTIFICATION_MONITOR,
MonitorMode::XSEDE_AMQP_SUBSCRIBE
};
const char* _kMonitorModeNames[] = {
"POLL_JOB_MANAGER",
+ "JOB_EMAIL_NOTIFICATION_MONITOR",
"XSEDE_AMQP_SUBSCRIBE"
};
-const std::map<int, const char*> _MonitorMode_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, _kMonitorModeValues, _kMonitorModeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+const std::map<int, const char*> _MonitorMode_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, _kMonitorModeValues, _kMonitorModeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+int _kEmailProtocolValues[] = {
+ EmailProtocol::POP3,
+ EmailProtocol::IMAPS
+};
+const char* _kEmailProtocolNames[] = {
+ "POP3",
+ "IMAPS"
+};
+const std::map<int, const char*> _EmailProtocol_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, _kEmailProtocolValues, _kEmailProtocolNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
int _kDataMovementProtocolValues[] = {
DataMovementProtocol::LOCAL,
@@ -449,6 +461,136 @@ void swap(BatchQueue &a, BatchQueue &b) {
swap(a.__isset, b.__isset);
}
+const char* EmailMonitorProperty::ascii_fingerprint = "1991A6BD46E68BF843F10524459D65B1";
+const uint8_t EmailMonitorProperty::binary_fingerprint[16] = {0x19,0x91,0xA6,0xBD,0x46,0xE6,0x8B,0xF8,0x43,0xF1,0x05,0x24,0x45,0x9D,0x65,0xB1};
+
+uint32_t EmailMonitorProperty::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+ bool isset_host = false;
+ bool isset_emailAddress = false;
+ bool isset_password = false;
+ bool isset_folderName = false;
+ bool isset_storeProtocol = false;
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 1:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->host);
+ isset_host = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 2:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->emailAddress);
+ isset_emailAddress = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 3:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->password);
+ isset_password = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 4:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->folderName);
+ isset_folderName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 5:
+ if (ftype == ::apache::thrift::protocol::T_I32) {
+ int32_t ecast10;
+ xfer += iprot->readI32(ecast10);
+ this->storeProtocol = (EmailProtocol::type)ecast10;
+ isset_storeProtocol = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ if (!isset_host)
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ if (!isset_emailAddress)
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ if (!isset_password)
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ if (!isset_folderName)
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ if (!isset_storeProtocol)
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ return xfer;
+}
+
+uint32_t EmailMonitorProperty::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ xfer += oprot->writeStructBegin("EmailMonitorProperty");
+
+ xfer += oprot->writeFieldBegin("host", ::apache::thrift::protocol::T_STRING, 1);
+ xfer += oprot->writeString(this->host);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("emailAddress", ::apache::thrift::protocol::T_STRING, 2);
+ xfer += oprot->writeString(this->emailAddress);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("password", ::apache::thrift::protocol::T_STRING, 3);
+ xfer += oprot->writeString(this->password);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("folderName", ::apache::thrift::protocol::T_STRING, 4);
+ xfer += oprot->writeString(this->folderName);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldBegin("storeProtocol", ::apache::thrift::protocol::T_I32, 5);
+ xfer += oprot->writeI32((int32_t)this->storeProtocol);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+void swap(EmailMonitorProperty &a, EmailMonitorProperty &b) {
+ using ::std::swap;
+ swap(a.host, b.host);
+ swap(a.emailAddress, b.emailAddress);
+ swap(a.password, b.password);
+ swap(a.folderName, b.folderName);
+ swap(a.storeProtocol, b.storeProtocol);
+}
+
const char* SCPDataMovement::ascii_fingerprint = "63CAE6EE336A7DBD91CCCD6E22628F4A";
const uint8_t SCPDataMovement::binary_fingerprint[16] = {0x63,0xCA,0xE6,0xEE,0x33,0x6A,0x7D,0xBD,0x91,0xCC,0xCD,0x6E,0x22,0x62,0x8F,0x4A};
@@ -484,9 +626,9 @@ uint32_t SCPDataMovement::read(::apache::thrift::protocol::TProtocol* iprot) {
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast10;
- xfer += iprot->readI32(ecast10);
- this->securityProtocol = (SecurityProtocol::type)ecast10;
+ int32_t ecast11;
+ xfer += iprot->readI32(ecast11);
+ this->securityProtocol = (SecurityProtocol::type)ecast11;
isset_securityProtocol = true;
} else {
xfer += iprot->skip(ftype);
@@ -596,9 +738,9 @@ uint32_t GridFTPDataMovement::read(::apache::thrift::protocol::TProtocol* iprot)
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast11;
- xfer += iprot->readI32(ecast11);
- this->securityProtocol = (SecurityProtocol::type)ecast11;
+ int32_t ecast12;
+ xfer += iprot->readI32(ecast12);
+ this->securityProtocol = (SecurityProtocol::type)ecast12;
isset_securityProtocol = true;
} else {
xfer += iprot->skip(ftype);
@@ -608,14 +750,14 @@ uint32_t GridFTPDataMovement::read(::apache::thrift::protocol::TProtocol* iprot)
if (ftype == ::apache::thrift::protocol::T_LIST) {
{
this->gridFTPEndPoints.clear();
- uint32_t _size12;
- ::apache::thrift::protocol::TType _etype15;
- xfer += iprot->readListBegin(_etype15, _size12);
- this->gridFTPEndPoints.resize(_size12);
- uint32_t _i16;
- for (_i16 = 0; _i16 < _size12; ++_i16)
+ uint32_t _size13;
+ ::apache::thrift::protocol::TType _etype16;
+ xfer += iprot->readListBegin(_etype16, _size13);
+ this->gridFTPEndPoints.resize(_size13);
+ uint32_t _i17;
+ for (_i17 = 0; _i17 < _size13; ++_i17)
{
- xfer += iprot->readString(this->gridFTPEndPoints[_i16]);
+ xfer += iprot->readString(this->gridFTPEndPoints[_i17]);
}
xfer += iprot->readListEnd();
}
@@ -657,10 +799,10 @@ uint32_t GridFTPDataMovement::write(::apache::thrift::protocol::TProtocol* oprot
xfer += oprot->writeFieldBegin("gridFTPEndPoints", ::apache::thrift::protocol::T_LIST, 3);
{
xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->gridFTPEndPoints.size()));
- std::vector<std::string> ::const_iterator _iter17;
- for (_iter17 = this->gridFTPEndPoints.begin(); _iter17 != this->gridFTPEndPoints.end(); ++_iter17)
+ std::vector<std::string> ::const_iterator _iter18;
+ for (_iter18 = this->gridFTPEndPoints.begin(); _iter18 != this->gridFTPEndPoints.end(); ++_iter18)
{
- xfer += oprot->writeString((*_iter17));
+ xfer += oprot->writeString((*_iter18));
}
xfer += oprot->writeListEnd();
}
@@ -714,9 +856,9 @@ uint32_t UnicoreDataMovement::read(::apache::thrift::protocol::TProtocol* iprot)
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast18;
- xfer += iprot->readI32(ecast18);
- this->securityProtocol = (SecurityProtocol::type)ecast18;
+ int32_t ecast19;
+ xfer += iprot->readI32(ecast19);
+ this->securityProtocol = (SecurityProtocol::type)ecast19;
isset_securityProtocol = true;
} else {
xfer += iprot->skip(ftype);
@@ -920,8 +1062,8 @@ void swap(LOCALDataMovement &a, LOCALDataMovement &b) {
swap(a.dataMovementInterfaceId, b.dataMovementInterfaceId);
}
-const char* SSHJobSubmission::ascii_fingerprint = "A62183DAA7AFF027173705420A9D99D0";
-const uint8_t SSHJobSubmission::binary_fingerprint[16] = {0xA6,0x21,0x83,0xDA,0xA7,0xAF,0xF0,0x27,0x17,0x37,0x05,0x42,0x0A,0x9D,0x99,0xD0};
+const char* SSHJobSubmission::ascii_fingerprint = "C2237B7244CABB71130AEE137701206F";
+const uint8_t SSHJobSubmission::binary_fingerprint[16] = {0xC2,0x23,0x7B,0x72,0x44,0xCA,0xBB,0x71,0x13,0x0A,0xEE,0x13,0x77,0x01,0x20,0x6F};
uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
@@ -956,9 +1098,9 @@ uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast19;
- xfer += iprot->readI32(ecast19);
- this->securityProtocol = (SecurityProtocol::type)ecast19;
+ int32_t ecast20;
+ xfer += iprot->readI32(ecast20);
+ this->securityProtocol = (SecurityProtocol::type)ecast20;
isset_securityProtocol = true;
} else {
xfer += iprot->skip(ftype);
@@ -990,14 +1132,22 @@ uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
break;
case 6:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast20;
- xfer += iprot->readI32(ecast20);
- this->monitorMode = (MonitorMode::type)ecast20;
+ int32_t ecast21;
+ xfer += iprot->readI32(ecast21);
+ this->monitorMode = (MonitorMode::type)ecast21;
this->__isset.monitorMode = true;
} else {
xfer += iprot->skip(ftype);
}
break;
+ case 7:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->emailMonitor.read(iprot);
+ this->__isset.emailMonitor = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
default:
xfer += iprot->skip(ftype);
break;
@@ -1047,6 +1197,11 @@ uint32_t SSHJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot) c
xfer += oprot->writeI32((int32_t)this->monitorMode);
xfer += oprot->writeFieldEnd();
}
+ if (this->__isset.emailMonitor) {
+ xfer += oprot->writeFieldBegin("emailMonitor", ::apache::thrift::protocol::T_STRUCT, 7);
+ xfer += this->emailMonitor.write(oprot);
+ xfer += oprot->writeFieldEnd();
+ }
xfer += oprot->writeFieldStop();
xfer += oprot->writeStructEnd();
return xfer;
@@ -1060,6 +1215,7 @@ void swap(SSHJobSubmission &a, SSHJobSubmission &b) {
swap(a.alternativeSSHHostName, b.alternativeSSHHostName);
swap(a.sshPort, b.sshPort);
swap(a.monitorMode, b.monitorMode);
+ swap(a.emailMonitor, b.emailMonitor);
swap(a.__isset, b.__isset);
}
@@ -1098,9 +1254,9 @@ uint32_t GlobusJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast21;
- xfer += iprot->readI32(ecast21);
- this->securityProtocol = (SecurityProtocol::type)ecast21;
+ int32_t ecast22;
+ xfer += iprot->readI32(ecast22);
+ this->securityProtocol = (SecurityProtocol::type)ecast22;
isset_securityProtocol = true;
} else {
xfer += iprot->skip(ftype);
@@ -1110,14 +1266,14 @@ uint32_t GlobusJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
if (ftype == ::apache::thrift::protocol::T_LIST) {
{
this->globusGateKeeperEndPoint.clear();
- uint32_t _size22;
- ::apache::thrift::protocol::TType _etype25;
- xfer += iprot->readListBegin(_etype25, _size22);
- this->globusGateKeeperEndPoint.resize(_size22);
- uint32_t _i26;
- for (_i26 = 0; _i26 < _size22; ++_i26)
+ uint32_t _size23;
+ ::apache::thrift::protocol::TType _etype26;
+ xfer += iprot->readListBegin(_etype26, _size23);
+ this->globusGateKeeperEndPoint.resize(_size23);
+ uint32_t _i27;
+ for (_i27 = 0; _i27 < _size23; ++_i27)
{
- xfer += iprot->readString(this->globusGateKeeperEndPoint[_i26]);
+ xfer += iprot->readString(this->globusGateKeeperEndPoint[_i27]);
}
xfer += iprot->readListEnd();
}
@@ -1158,10 +1314,10 @@ uint32_t GlobusJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot
xfer += oprot->writeFieldBegin("globusGateKeeperEndPoint", ::apache::thrift::protocol::T_LIST, 3);
{
xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->globusGateKeeperEndPoint.size()));
- std::vector<std::string> ::const_iterator _iter27;
- for (_iter27 = this->globusGateKeeperEndPoint.begin(); _iter27 != this->globusGateKeeperEndPoint.end(); ++_iter27)
+ std::vector<std::string> ::const_iterator _iter28;
+ for (_iter28 = this->globusGateKeeperEndPoint.begin(); _iter28 != this->globusGateKeeperEndPoint.end(); ++_iter28)
{
- xfer += oprot->writeString((*_iter27));
+ xfer += oprot->writeString((*_iter28));
}
xfer += oprot->writeListEnd();
}
@@ -1216,9 +1372,9 @@ uint32_t UnicoreJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast28;
- xfer += iprot->readI32(ecast28);
- this->securityProtocol = (SecurityProtocol::type)ecast28;
+ int32_t ecast29;
+ xfer += iprot->readI32(ecast29);
+ this->securityProtocol = (SecurityProtocol::type)ecast29;
isset_securityProtocol = true;
} else {
xfer += iprot->skip(ftype);
@@ -1317,9 +1473,9 @@ uint32_t CloudJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast29;
- xfer += iprot->readI32(ecast29);
- this->securityProtocol = (SecurityProtocol::type)ecast29;
+ int32_t ecast30;
+ xfer += iprot->readI32(ecast30);
+ this->securityProtocol = (SecurityProtocol::type)ecast30;
isset_securityProtocol = true;
} else {
xfer += iprot->skip(ftype);
@@ -1343,9 +1499,9 @@ uint32_t CloudJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
break;
case 5:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast30;
- xfer += iprot->readI32(ecast30);
- this->providerName = (ProviderName::type)ecast30;
+ int32_t ecast31;
+ xfer += iprot->readI32(ecast31);
+ this->providerName = (ProviderName::type)ecast31;
isset_providerName = true;
} else {
xfer += iprot->skip(ftype);
@@ -1462,9 +1618,9 @@ uint32_t JobSubmissionInterface::read(::apache::thrift::protocol::TProtocol* ipr
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast31;
- xfer += iprot->readI32(ecast31);
- this->jobSubmissionProtocol = (JobSubmissionProtocol::type)ecast31;
+ int32_t ecast32;
+ xfer += iprot->readI32(ecast32);
+ this->jobSubmissionProtocol = (JobSubmissionProtocol::type)ecast32;
isset_jobSubmissionProtocol = true;
} else {
xfer += iprot->skip(ftype);
@@ -1560,9 +1716,9 @@ uint32_t DataMovementInterface::read(::apache::thrift::protocol::TProtocol* ipro
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast32;
- xfer += iprot->readI32(ecast32);
- this->dataMovementProtocol = (DataMovementProtocol::type)ecast32;
+ int32_t ecast33;
+ xfer += iprot->readI32(ecast33);
+ this->dataMovementProtocol = (DataMovementProtocol::type)ecast33;
isset_dataMovementProtocol = true;
} else {
xfer += iprot->skip(ftype);
@@ -1667,14 +1823,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
if (ftype == ::apache::thrift::protocol::T_LIST) {
{
this->hostAliases.clear();
- uint32_t _size33;
- ::apache::thrift::protocol::TType _etype36;
- xfer += iprot->readListBegin(_etype36, _size33);
- this->hostAliases.resize(_size33);
- uint32_t _i37;
- for (_i37 = 0; _i37 < _size33; ++_i37)
+ uint32_t _size34;
+ ::apache::thrift::protocol::TType _etype37;
+ xfer += iprot->readListBegin(_etype37, _size34);
+ this->hostAliases.resize(_size34);
+ uint32_t _i38;
+ for (_i38 = 0; _i38 < _size34; ++_i38)
{
- xfer += iprot->readString(this->hostAliases[_i37]);
+ xfer += iprot->readString(this->hostAliases[_i38]);
}
xfer += iprot->readListEnd();
}
@@ -1687,14 +1843,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
if (ftype == ::apache::thrift::protocol::T_LIST) {
{
this->ipAddresses.clear();
- uint32_t _size38;
- ::apache::thrift::protocol::TType _etype41;
- xfer += iprot->readListBegin(_etype41, _size38);
- this->ipAddresses.resize(_size38);
- uint32_t _i42;
- for (_i42 = 0; _i42 < _size38; ++_i42)
+ uint32_t _size39;
+ ::apache::thrift::protocol::TType _etype42;
+ xfer += iprot->readListBegin(_etype42, _size39);
+ this->ipAddresses.resize(_size39);
+ uint32_t _i43;
+ for (_i43 = 0; _i43 < _size39; ++_i43)
{
- xfer += iprot->readString(this->ipAddresses[_i42]);
+ xfer += iprot->readString(this->ipAddresses[_i43]);
}
xfer += iprot->readListEnd();
}
@@ -1715,14 +1871,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
if (ftype == ::apache::thrift::protocol::T_LIST) {
{
this->batchQueues.clear();
- uint32_t _size43;
- ::apache::thrift::protocol::TType _etype46;
- xfer += iprot->readListBegin(_etype46, _size43);
- this->batchQueues.resize(_size43);
- uint32_t _i47;
- for (_i47 = 0; _i47 < _size43; ++_i47)
+ uint32_t _size44;
+ ::apache::thrift::protocol::TType _etype47;
+ xfer += iprot->readListBegin(_etype47, _size44);
+ this->batchQueues.resize(_size44);
+ uint32_t _i48;
+ for (_i48 = 0; _i48 < _size44; ++_i48)
{
- xfer += this->batchQueues[_i47].read(iprot);
+ xfer += this->batchQueues[_i48].read(iprot);
}
xfer += iprot->readListEnd();
}
@@ -1735,19 +1891,19 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
if (ftype == ::apache::thrift::protocol::T_MAP) {
{
this->fileSystems.clear();
- uint32_t _size48;
- ::apache::thrift::protocol::TType _ktype49;
- ::apache::thrift::protocol::TType _vtype50;
- xfer += iprot->readMapBegin(_ktype49, _vtype50, _size48);
- uint32_t _i52;
- for (_i52 = 0; _i52 < _size48; ++_i52)
+ uint32_t _size49;
+ ::apache::thrift::protocol::TType _ktype50;
+ ::apache::thrift::protocol::TType _vtype51;
+ xfer += iprot->readMapBegin(_ktype50, _vtype51, _size49);
+ uint32_t _i53;
+ for (_i53 = 0; _i53 < _size49; ++_i53)
{
- FileSystems::type _key53;
- int32_t ecast55;
- xfer += iprot->readI32(ecast55);
- _key53 = (FileSystems::type)ecast55;
- std::string& _val54 = this->fileSystems[_key53];
- xfer += iprot->readString(_val54);
+ FileSystems::type _key54;
+ int32_t ecast56;
+ xfer += iprot->readI32(ecast56);
+ _key54 = (FileSystems::type)ecast56;
+ std::string& _val55 = this->fileSystems[_key54];
+ xfer += iprot->readString(_val55);
}
xfer += iprot->readMapEnd();
}
@@ -1760,14 +1916,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
if (ftype == ::apache::thrift::protocol::T_LIST) {
{
this->jobSubmissionInterfaces.clear();
- uint32_t _size56;
- ::apache::thrift::protocol::TType _etype59;
- xfer += iprot->readListBegin(_etype59, _size56);
- this->jobSubmissionInterfaces.resize(_size56);
- uint32_t _i60;
- for (_i60 = 0; _i60 < _size56; ++_i60)
+ uint32_t _size57;
+ ::apache::thrift::protocol::TType _etype60;
+ xfer += iprot->readListBegin(_etype60, _size57);
+ this->jobSubmissionInterfaces.resize(_size57);
+ uint32_t _i61;
+ for (_i61 = 0; _i61 < _size57; ++_i61)
{
- xfer += this->jobSubmissionInterfaces[_i60].read(iprot);
+ xfer += this->jobSubmissionInterfaces[_i61].read(iprot);
}
xfer += iprot->readListEnd();
}
@@ -1780,14 +1936,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
if (ftype == ::apache::thrift::protocol::T_LIST) {
{
this->dataMovementInterfaces.clear();
- uint32_t _size61;
- ::apache::thrift::protocol::TType _etype64;
- xfer += iprot->readListBegin(_etype64, _size61);
- this->dataMovementInterfaces.resize(_size61);
- uint32_t _i65;
- for (_i65 = 0; _i65 < _size61; ++_i65)
+ uint32_t _size62;
+ ::apache::thrift::protocol::TType _etype65;
+ xfer += iprot->readListBegin(_etype65, _size62);
+ this->dataMovementInterfaces.resize(_size62);
+ uint32_t _i66;
+ for (_i66 = 0; _i66 < _size62; ++_i66)
{
- xfer += this->dataMovementInterfaces[_i65].read(iprot);
+ xfer += this->dataMovementInterfaces[_i66].read(iprot);
}
xfer += iprot->readListEnd();
}
@@ -1836,10 +1992,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
xfer += oprot->writeFieldBegin("hostAliases", ::apache::thrift::protocol::T_LIST, 3);
{
xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->hostAliases.size()));
- std::vector<std::string> ::const_iterator _iter66;
- for (_iter66 = this->hostAliases.begin(); _iter66 != this->hostAliases.end(); ++_iter66)
+ std::vector<std::string> ::const_iterator _iter67;
+ for (_iter67 = this->hostAliases.begin(); _iter67 != this->hostAliases.end(); ++_iter67)
{
- xfer += oprot->writeString((*_iter66));
+ xfer += oprot->writeString((*_iter67));
}
xfer += oprot->writeListEnd();
}
@@ -1849,10 +2005,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
xfer += oprot->writeFieldBegin("ipAddresses", ::apache::thrift::protocol::T_LIST, 4);
{
xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->ipAddresses.size()));
- std::vector<std::string> ::const_iterator _iter67;
- for (_iter67 = this->ipAddresses.begin(); _iter67 != this->ipAddresses.end(); ++_iter67)
+ std::vector<std::string> ::const_iterator _iter68;
+ for (_iter68 = this->ipAddresses.begin(); _iter68 != this->ipAddresses.end(); ++_iter68)
{
- xfer += oprot->writeString((*_iter67));
+ xfer += oprot->writeString((*_iter68));
}
xfer += oprot->writeListEnd();
}
@@ -1867,10 +2023,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
xfer += oprot->writeFieldBegin("batchQueues", ::apache::thrift::protocol::T_LIST, 6);
{
xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->batchQueues.size()));
- std::vector<BatchQueue> ::const_iterator _iter68;
- for (_iter68 = this->batchQueues.begin(); _iter68 != this->batchQueues.end(); ++_iter68)
+ std::vector<BatchQueue> ::const_iterator _iter69;
+ for (_iter69 = this->batchQueues.begin(); _iter69 != this->batchQueues.end(); ++_iter69)
{
- xfer += (*_iter68).write(oprot);
+ xfer += (*_iter69).write(oprot);
}
xfer += oprot->writeListEnd();
}
@@ -1880,11 +2036,11 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
xfer += oprot->writeFieldBegin("fileSystems", ::apache::thrift::protocol::T_MAP, 7);
{
xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_I32, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->fileSystems.size()));
- std::map<FileSystems::type, std::string> ::const_iterator _iter69;
- for (_iter69 = this->fileSystems.begin(); _iter69 != this->fileSystems.end(); ++_iter69)
+ std::map<FileSystems::type, std::string> ::const_iterator _iter70;
+ for (_iter70 = this->fileSystems.begin(); _iter70 != this->fileSystems.end(); ++_iter70)
{
- xfer += oprot->writeI32((int32_t)_iter69->first);
- xfer += oprot->writeString(_iter69->second);
+ xfer += oprot->writeI32((int32_t)_iter70->first);
+ xfer += oprot->writeString(_iter70->second);
}
xfer += oprot->writeMapEnd();
}
@@ -1894,10 +2050,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
xfer += oprot->writeFieldBegin("jobSubmissionInterfaces", ::apache::thrift::protocol::T_LIST, 8);
{
xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->jobSubmissionInterfaces.size()));
- std::vector<JobSubmissionInterface> ::const_iterator _iter70;
- for (_iter70 = this->jobSubmissionInterfaces.begin(); _iter70 != this->jobSubmissionInterfaces.end(); ++_iter70)
+ std::vector<JobSubmissionInterface> ::const_iterator _iter71;
+ for (_iter71 = this->jobSubmissionInterfaces.begin(); _iter71 != this->jobSubmissionInterfaces.end(); ++_iter71)
{
- xfer += (*_iter70).write(oprot);
+ xfer += (*_iter71).write(oprot);
}
xfer += oprot->writeListEnd();
}
@@ -1907,10 +2063,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
xfer += oprot->writeFieldBegin("dataMovementInterfaces", ::apache::thrift::protocol::T_LIST, 9);
{
xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->dataMovementInterfaces.size()));
- std::vector<DataMovementInterface> ::const_iterator _iter71;
- for (_iter71 = this->dataMovementInterfaces.begin(); _iter71 != this->dataMovementInterfaces.end(); ++_iter71)
+ std::vector<DataMovementInterface> ::const_iterator _iter72;
+ for (_iter72 = this->dataMovementInterfaces.begin(); _iter72 != this->dataMovementInterfaces.end(); ++_iter72)
{
- xfer += (*_iter71).write(oprot);
+ xfer += (*_iter72).write(oprot);
}
xfer += oprot->writeListEnd();
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/66ac6b92/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h
index 76037b2..05a2dfd 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/computeResourceModel_types.h
@@ -99,12 +99,22 @@ extern const std::map<int, const char*> _JobSubmissionProtocol_VALUES_TO_NAMES;
struct MonitorMode {
enum type {
POLL_JOB_MANAGER = 0,
- XSEDE_AMQP_SUBSCRIBE = 1
+ JOB_EMAIL_NOTIFICATION_MONITOR = 1,
+ XSEDE_AMQP_SUBSCRIBE = 2
};
};
extern const std::map<int, const char*> _MonitorMode_VALUES_TO_NAMES;
+struct EmailProtocol {
+ enum type {
+ POP3 = 0,
+ IMAPS = 1
+ };
+};
+
+extern const std::map<int, const char*> _EmailProtocol_VALUES_TO_NAMES;
+
struct DataMovementProtocol {
enum type {
LOCAL = 0,
@@ -317,6 +327,71 @@ class BatchQueue {
void swap(BatchQueue &a, BatchQueue &b);
+
+class EmailMonitorProperty {
+ public:
+
+ static const char* ascii_fingerprint; // = "1991A6BD46E68BF843F10524459D65B1";
+ static const uint8_t binary_fingerprint[16]; // = {0x19,0x91,0xA6,0xBD,0x46,0xE6,0x8B,0xF8,0x43,0xF1,0x05,0x24,0x45,0x9D,0x65,0xB1};
+
+ EmailMonitorProperty() : host(), emailAddress(), password(), folderName("INBOX"), storeProtocol((EmailProtocol::type)0) {
+ }
+
+ virtual ~EmailMonitorProperty() throw() {}
+
+ std::string host;
+ std::string emailAddress;
+ std::string password;
+ std::string folderName;
+ EmailProtocol::type storeProtocol;
+
+ void __set_host(const std::string& val) {
+ host = val;
+ }
+
+ void __set_emailAddress(const std::string& val) {
+ emailAddress = val;
+ }
+
+ void __set_password(const std::string& val) {
+ password = val;
+ }
+
+ void __set_folderName(const std::string& val) {
+ folderName = val;
+ }
+
+ void __set_storeProtocol(const EmailProtocol::type val) {
+ storeProtocol = val;
+ }
+
+ bool operator == (const EmailMonitorProperty & rhs) const
+ {
+ if (!(host == rhs.host))
+ return false;
+ if (!(emailAddress == rhs.emailAddress))
+ return false;
+ if (!(password == rhs.password))
+ return false;
+ if (!(folderName == rhs.folderName))
+ return false;
+ if (!(storeProtocol == rhs.storeProtocol))
+ return false;
+ return true;
+ }
+ bool operator != (const EmailMonitorProperty &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const EmailMonitorProperty & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(EmailMonitorProperty &a, EmailMonitorProperty &b);
+
typedef struct _SCPDataMovement__isset {
_SCPDataMovement__isset() : alternativeSCPHostName(false), sshPort(true) {}
bool alternativeSCPHostName;
@@ -572,17 +647,18 @@ class LOCALDataMovement {
void swap(LOCALDataMovement &a, LOCALDataMovement &b);
typedef struct _SSHJobSubmission__isset {
- _SSHJobSubmission__isset() : alternativeSSHHostName(false), sshPort(true), monitorMode(false) {}
+ _SSHJobSubmission__isset() : alternativeSSHHostName(false), sshPort(true), monitorMode(false), emailMonitor(false) {}
bool alternativeSSHHostName;
bool sshPort;
bool monitorMode;
+ bool emailMonitor;
} _SSHJobSubmission__isset;
class SSHJobSubmission {
public:
- static const char* ascii_fingerprint; // = "A62183DAA7AFF027173705420A9D99D0";
- static const uint8_t binary_fingerprint[16]; // = {0xA6,0x21,0x83,0xDA,0xA7,0xAF,0xF0,0x27,0x17,0x37,0x05,0x42,0x0A,0x9D,0x99,0xD0};
+ static const char* ascii_fingerprint; // = "C2237B7244CABB71130AEE137701206F";
+ static const uint8_t binary_fingerprint[16]; // = {0xC2,0x23,0x7B,0x72,0x44,0xCA,0xBB,0x71,0x13,0x0A,0xEE,0x13,0x77,0x01,0x20,0x6F};
SSHJobSubmission() : jobSubmissionInterfaceId("DO_NOT_SET_AT_CLIENTS"), securityProtocol((SecurityProtocol::type)0), alternativeSSHHostName(), sshPort(22), monitorMode((MonitorMode::type)0) {
}
@@ -595,6 +671,7 @@ class SSHJobSubmission {
std::string alternativeSSHHostName;
int32_t sshPort;
MonitorMode::type monitorMode;
+ EmailMonitorProperty emailMonitor;
_SSHJobSubmission__isset __isset;
@@ -625,6 +702,11 @@ class SSHJobSubmission {
__isset.monitorMode = true;
}
+ void __set_emailMonitor(const EmailMonitorProperty& val) {
+ emailMonitor = val;
+ __isset.emailMonitor = true;
+ }
+
bool operator == (const SSHJobSubmission & rhs) const
{
if (!(jobSubmissionInterfaceId == rhs.jobSubmissionInterfaceId))
@@ -645,6 +727,10 @@ class SSHJobSubmission {
return false;
else if (__isset.monitorMode && !(monitorMode == rhs.monitorMode))
return false;
+ if (__isset.emailMonitor != rhs.__isset.emailMonitor)
+ return false;
+ else if (__isset.emailMonitor && !(emailMonitor == rhs.emailMonitor))
+ return false;
return true;
}
bool operator != (const SSHJobSubmission &rhs) const {
http://git-wip-us.apache.org/repos/asf/airavata/blob/66ac6b92/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
index 2280d94..e488087 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
@@ -98,10 +98,21 @@ final class JobSubmissionProtocol {
final class MonitorMode {
const POLL_JOB_MANAGER = 0;
- const XSEDE_AMQP_SUBSCRIBE = 1;
+ const JOB_EMAIL_NOTIFICATION_MONITOR = 1;
+ const XSEDE_AMQP_SUBSCRIBE = 2;
static public $__names = array(
0 => 'POLL_JOB_MANAGER',
- 1 => 'XSEDE_AMQP_SUBSCRIBE',
+ 1 => 'JOB_EMAIL_NOTIFICATION_MONITOR',
+ 2 => 'XSEDE_AMQP_SUBSCRIBE',
+ );
+}
+
+final class EmailProtocol {
+ const POP3 = 0;
+ const IMAPS = 1;
+ static public $__names = array(
+ 0 => 'POP3',
+ 1 => 'IMAPS',
);
}
@@ -509,6 +520,158 @@ class BatchQueue {
}
+class EmailMonitorProperty {
+ static $_TSPEC;
+
+ public $host = null;
+ public $emailAddress = null;
+ public $password = null;
+ public $folderName = "INBOX";
+ public $storeProtocol = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'host',
+ 'type' => TType::STRING,
+ ),
+ 2 => array(
+ 'var' => 'emailAddress',
+ 'type' => TType::STRING,
+ ),
+ 3 => array(
+ 'var' => 'password',
+ 'type' => TType::STRING,
+ ),
+ 4 => array(
+ 'var' => 'folderName',
+ 'type' => TType::STRING,
+ ),
+ 5 => array(
+ 'var' => 'storeProtocol',
+ 'type' => TType::I32,
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['host'])) {
+ $this->host = $vals['host'];
+ }
+ if (isset($vals['emailAddress'])) {
+ $this->emailAddress = $vals['emailAddress'];
+ }
+ if (isset($vals['password'])) {
+ $this->password = $vals['password'];
+ }
+ if (isset($vals['folderName'])) {
+ $this->folderName = $vals['folderName'];
+ }
+ if (isset($vals['storeProtocol'])) {
+ $this->storeProtocol = $vals['storeProtocol'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'EmailMonitorProperty';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->host);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->emailAddress);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 3:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->password);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 4:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->folderName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 5:
+ if ($ftype == TType::I32) {
+ $xfer += $input->readI32($this->storeProtocol);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('EmailMonitorProperty');
+ if ($this->host !== null) {
+ $xfer += $output->writeFieldBegin('host', TType::STRING, 1);
+ $xfer += $output->writeString($this->host);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->emailAddress !== null) {
+ $xfer += $output->writeFieldBegin('emailAddress', TType::STRING, 2);
+ $xfer += $output->writeString($this->emailAddress);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->password !== null) {
+ $xfer += $output->writeFieldBegin('password', TType::STRING, 3);
+ $xfer += $output->writeString($this->password);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->folderName !== null) {
+ $xfer += $output->writeFieldBegin('folderName', TType::STRING, 4);
+ $xfer += $output->writeString($this->folderName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->storeProtocol !== null) {
+ $xfer += $output->writeFieldBegin('storeProtocol', TType::I32, 5);
+ $xfer += $output->writeI32($this->storeProtocol);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
class SCPDataMovement {
static $_TSPEC;
@@ -1069,6 +1232,7 @@ class SSHJobSubmission {
public $alternativeSSHHostName = null;
public $sshPort = 22;
public $monitorMode = null;
+ public $emailMonitor = null;
public function __construct($vals=null) {
if (!isset(self::$_TSPEC)) {
@@ -1098,6 +1262,11 @@ class SSHJobSubmission {
'var' => 'monitorMode',
'type' => TType::I32,
),
+ 7 => array(
+ 'var' => 'emailMonitor',
+ 'type' => TType::STRUCT,
+ 'class' => '\Airavata\Model\AppCatalog\ComputeResource\EmailMonitorProperty',
+ ),
);
}
if (is_array($vals)) {
@@ -1119,6 +1288,9 @@ class SSHJobSubmission {
if (isset($vals['monitorMode'])) {
$this->monitorMode = $vals['monitorMode'];
}
+ if (isset($vals['emailMonitor'])) {
+ $this->emailMonitor = $vals['emailMonitor'];
+ }
}
}
@@ -1184,6 +1356,14 @@ class SSHJobSubmission {
$xfer += $input->skip($ftype);
}
break;
+ case 7:
+ if ($ftype == TType::STRUCT) {
+ $this->emailMonitor = new \Airavata\Model\AppCatalog\ComputeResource\EmailMonitorProperty();
+ $xfer += $this->emailMonitor->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
default:
$xfer += $input->skip($ftype);
break;
@@ -1230,6 +1410,14 @@ class SSHJobSubmission {
$xfer += $output->writeI32($this->monitorMode);
$xfer += $output->writeFieldEnd();
}
+ if ($this->emailMonitor !== null) {
+ if (!is_object($this->emailMonitor)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('emailMonitor', TType::STRUCT, 7);
+ $xfer += $this->emailMonitor->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
http://git-wip-us.apache.org/repos/asf/airavata/blob/66ac6b92/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
index 7f70c25..e635472 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
@@ -237,16 +237,37 @@ class MonitorMode:
"""
POLL_JOB_MANAGER = 0
- XSEDE_AMQP_SUBSCRIBE = 1
+ JOB_EMAIL_NOTIFICATION_MONITOR = 1
+ XSEDE_AMQP_SUBSCRIBE = 2
_VALUES_TO_NAMES = {
0: "POLL_JOB_MANAGER",
- 1: "XSEDE_AMQP_SUBSCRIBE",
+ 1: "JOB_EMAIL_NOTIFICATION_MONITOR",
+ 2: "XSEDE_AMQP_SUBSCRIBE",
}
_NAMES_TO_VALUES = {
"POLL_JOB_MANAGER": 0,
- "XSEDE_AMQP_SUBSCRIBE": 1,
+ "JOB_EMAIL_NOTIFICATION_MONITOR": 1,
+ "XSEDE_AMQP_SUBSCRIBE": 2,
+ }
+
+class EmailProtocol:
+ """
+ Email protocol
+
+ """
+ POP3 = 0
+ IMAPS = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "POP3",
+ 1: "IMAPS",
+ }
+
+ _NAMES_TO_VALUES = {
+ "POP3": 0,
+ "IMAPS": 1,
}
class DataMovementProtocol:
@@ -587,6 +608,133 @@ class BatchQueue:
def __ne__(self, other):
return not (self == other)
+class EmailMonitorProperty:
+ """
+ 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
+
+
+ Attributes:
+ - host
+ - emailAddress
+ - password
+ - folderName
+ - storeProtocol
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'host', None, None, ), # 1
+ (2, TType.STRING, 'emailAddress', None, None, ), # 2
+ (3, TType.STRING, 'password', None, None, ), # 3
+ (4, TType.STRING, 'folderName', None, "INBOX", ), # 4
+ (5, TType.I32, 'storeProtocol', None, None, ), # 5
+ )
+
+ def __init__(self, host=None, emailAddress=None, password=None, folderName=thrift_spec[4][4], storeProtocol=None,):
+ self.host = host
+ self.emailAddress = emailAddress
+ self.password = password
+ self.folderName = folderName
+ self.storeProtocol = storeProtocol
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRING:
+ self.host = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.emailAddress = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.password = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.folderName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.storeProtocol = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('EmailMonitorProperty')
+ if self.host is not None:
+ oprot.writeFieldBegin('host', TType.STRING, 1)
+ oprot.writeString(self.host)
+ oprot.writeFieldEnd()
+ if self.emailAddress is not None:
+ oprot.writeFieldBegin('emailAddress', TType.STRING, 2)
+ oprot.writeString(self.emailAddress)
+ oprot.writeFieldEnd()
+ if self.password is not None:
+ oprot.writeFieldBegin('password', TType.STRING, 3)
+ oprot.writeString(self.password)
+ oprot.writeFieldEnd()
+ if self.folderName is not None:
+ oprot.writeFieldBegin('folderName', TType.STRING, 4)
+ oprot.writeString(self.folderName)
+ oprot.writeFieldEnd()
+ if self.storeProtocol is not None:
+ oprot.writeFieldBegin('storeProtocol', TType.I32, 5)
+ oprot.writeI32(self.storeProtocol)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.host is None:
+ raise TProtocol.TProtocolException(message='Required field host is unset!')
+ if self.emailAddress is None:
+ raise TProtocol.TProtocolException(message='Required field emailAddress is unset!')
+ if self.password is None:
+ raise TProtocol.TProtocolException(message='Required field password is unset!')
+ if self.folderName is None:
+ raise TProtocol.TProtocolException(message='Required field folderName is unset!')
+ if self.storeProtocol is None:
+ raise TProtocol.TProtocolException(message='Required field storeProtocol is unset!')
+ return
+
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
class SCPDataMovement:
"""
Data Movement through Secured Copy
@@ -1068,6 +1216,7 @@ class SSHJobSubmission:
- alternativeSSHHostName
- sshPort
- monitorMode
+ - emailMonitor
"""
thrift_spec = (
@@ -1078,15 +1227,17 @@ class SSHJobSubmission:
(4, TType.STRING, 'alternativeSSHHostName', None, None, ), # 4
(5, TType.I32, 'sshPort', None, 22, ), # 5
(6, TType.I32, 'monitorMode', None, None, ), # 6
+ (7, TType.STRUCT, 'emailMonitor', (EmailMonitorProperty, EmailMonitorProperty.thrift_spec), None, ), # 7
)
- def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, resourceJobManager=None, alternativeSSHHostName=None, sshPort=thrift_spec[5][4], monitorMode=None,):
+ def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, resourceJobManager=None, alternativeSSHHostName=None, sshPort=thrift_spec[5][4], monitorMode=None, emailMonitor=None,):
self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
self.securityProtocol = securityProtocol
self.resourceJobManager = resourceJobManager
self.alternativeSSHHostName = alternativeSSHHostName
self.sshPort = sshPort
self.monitorMode = monitorMode
+ self.emailMonitor = emailMonitor
def read(self, iprot):
if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -1128,6 +1279,12 @@ class SSHJobSubmission:
self.monitorMode = iprot.readI32();
else:
iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRUCT:
+ self.emailMonitor = EmailMonitorProperty()
+ self.emailMonitor.read(iprot)
+ else:
+ iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
@@ -1162,6 +1319,10 @@ class SSHJobSubmission:
oprot.writeFieldBegin('monitorMode', TType.I32, 6)
oprot.writeI32(self.monitorMode)
oprot.writeFieldEnd()
+ if self.emailMonitor is not None:
+ oprot.writeFieldBegin('emailMonitor', TType.STRUCT, 7)
+ self.emailMonitor.write(oprot)
+ oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
http://git-wip-us.apache.org/repos/asf/airavata/blob/66ac6b92/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
index 279231b..5cfac76 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
@@ -46,6 +46,7 @@ class MessageType:
JOB = 3
LAUNCHTASK = 4
TERMINATETASK = 5
+ TASKOUTPUT = 6
_VALUES_TO_NAMES = {
0: "EXPERIMENT",
@@ -54,6 +55,7 @@ class MessageType:
3: "JOB",
4: "LAUNCHTASK",
5: "TERMINATETASK",
+ 6: "TASKOUTPUT",
}
_NAMES_TO_VALUES = {
@@ -63,6 +65,7 @@ class MessageType:
"JOB": 3,
"LAUNCHTASK": 4,
"TERMINATETASK": 5,
+ "TASKOUTPUT": 6,
}
@@ -785,6 +788,82 @@ class JobIdentifier:
def __ne__(self, other):
return not (self == other)
+class ProcessSubmitEvent:
+ """
+ Attributes:
+ - taskId
+ - credentialToken
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'taskId', None, None, ), # 1
+ (2, TType.STRING, 'credentialToken', None, None, ), # 2
+ )
+
+ def __init__(self, taskId=None, credentialToken=None,):
+ self.taskId = taskId
+ self.credentialToken = credentialToken
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRING:
+ self.taskId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.credentialToken = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('ProcessSubmitEvent')
+ if self.taskId is not None:
+ oprot.writeFieldBegin('taskId', TType.STRING, 1)
+ oprot.writeString(self.taskId)
+ oprot.writeFieldEnd()
+ if self.credentialToken is not None:
+ oprot.writeFieldBegin('credentialToken', TType.STRING, 2)
+ oprot.writeString(self.credentialToken)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.taskId is None:
+ raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+ if self.credentialToken is None:
+ raise TProtocol.TProtocolException(message='Required field credentialToken is unset!')
+ return
+
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
class TaskSubmitEvent:
"""
Attributes:
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/EmailMonitorProperty.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/EmailMonitorProperty.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/EmailMonitorProperty.java
new file mode 100644
index 0000000..bad6eee
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/EmailMonitorProperty.java
@@ -0,0 +1,805 @@
+/**
+ * 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.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 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
+ *
+ */
+@SuppressWarnings("all") public class EmailMonitorProperty implements org.apache.thrift.TBase<EmailMonitorProperty, EmailMonitorProperty._Fields>, java.io.Serializable, Cloneable, Comparable<EmailMonitorProperty> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EmailMonitorProperty");
+
+ private static final org.apache.thrift.protocol.TField HOST_FIELD_DESC = new org.apache.thrift.protocol.TField("host", org.apache.thrift.protocol.TType.STRING, (short)1);
+ private static final org.apache.thrift.protocol.TField EMAIL_ADDRESS_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddress", org.apache.thrift.protocol.TType.STRING, (short)2);
+ private static final org.apache.thrift.protocol.TField PASSWORD_FIELD_DESC = new org.apache.thrift.protocol.TField("password", org.apache.thrift.protocol.TType.STRING, (short)3);
+ private static final org.apache.thrift.protocol.TField FOLDER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("folderName", org.apache.thrift.protocol.TType.STRING, (short)4);
+ private static final org.apache.thrift.protocol.TField STORE_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("storeProtocol", org.apache.thrift.protocol.TType.I32, (short)5);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new EmailMonitorPropertyStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new EmailMonitorPropertyTupleSchemeFactory());
+ }
+
+ private String host; // required
+ private String emailAddress; // required
+ private String password; // required
+ private String folderName; // required
+ private EmailProtocol storeProtocol; // required
+
+ /** 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 {
+ HOST((short)1, "host"),
+ EMAIL_ADDRESS((short)2, "emailAddress"),
+ PASSWORD((short)3, "password"),
+ FOLDER_NAME((short)4, "folderName"),
+ /**
+ *
+ * @see EmailProtocol
+ */
+ STORE_PROTOCOL((short)5, "storeProtocol");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // HOST
+ return HOST;
+ case 2: // EMAIL_ADDRESS
+ return EMAIL_ADDRESS;
+ case 3: // PASSWORD
+ return PASSWORD;
+ case 4: // FOLDER_NAME
+ return FOLDER_NAME;
+ case 5: // STORE_PROTOCOL
+ return STORE_PROTOCOL;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ 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);
+ tmpMap.put(_Fields.HOST, new org.apache.thrift.meta_data.FieldMetaData("host", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.EMAIL_ADDRESS, new org.apache.thrift.meta_data.FieldMetaData("emailAddress", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.PASSWORD, new org.apache.thrift.meta_data.FieldMetaData("password", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.FOLDER_NAME, new org.apache.thrift.meta_data.FieldMetaData("folderName", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.STORE_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("storeProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, EmailProtocol.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(EmailMonitorProperty.class, metaDataMap);
+ }
+
+ public EmailMonitorProperty() {
+ this.folderName = "INBOX";
+
+ }
+
+ public EmailMonitorProperty(
+ String host,
+ String emailAddress,
+ String password,
+ String folderName,
+ EmailProtocol storeProtocol)
+ {
+ this();
+ this.host = host;
+ this.emailAddress = emailAddress;
+ this.password = password;
+ this.folderName = folderName;
+ this.storeProtocol = storeProtocol;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public EmailMonitorProperty(EmailMonitorProperty other) {
+ if (other.isSetHost()) {
+ this.host = other.host;
+ }
+ if (other.isSetEmailAddress()) {
+ this.emailAddress = other.emailAddress;
+ }
+ if (other.isSetPassword()) {
+ this.password = other.password;
+ }
+ if (other.isSetFolderName()) {
+ this.folderName = other.folderName;
+ }
+ if (other.isSetStoreProtocol()) {
+ this.storeProtocol = other.storeProtocol;
+ }
+ }
+
+ public EmailMonitorProperty deepCopy() {
+ return new EmailMonitorProperty(this);
+ }
+
+ @Override
+ public void clear() {
+ this.host = null;
+ this.emailAddress = null;
+ this.password = null;
+ this.folderName = "INBOX";
+
+ this.storeProtocol = null;
+ }
+
+ public String getHost() {
+ return this.host;
+ }
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+
+ public void unsetHost() {
+ this.host = null;
+ }
+
+ /** Returns true if field host is set (has been assigned a value) and false otherwise */
+ public boolean isSetHost() {
+ return this.host != null;
+ }
+
+ public void setHostIsSet(boolean value) {
+ if (!value) {
+ this.host = null;
+ }
+ }
+
+ public String getEmailAddress() {
+ return this.emailAddress;
+ }
+
+ public void setEmailAddress(String emailAddress) {
+ this.emailAddress = emailAddress;
+ }
+
+ public void unsetEmailAddress() {
+ this.emailAddress = null;
+ }
+
+ /** Returns true if field emailAddress is set (has been assigned a value) and false otherwise */
+ public boolean isSetEmailAddress() {
+ return this.emailAddress != null;
+ }
+
+ public void setEmailAddressIsSet(boolean value) {
+ if (!value) {
+ this.emailAddress = null;
+ }
+ }
+
+ public String getPassword() {
+ return this.password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public void unsetPassword() {
+ this.password = null;
+ }
+
+ /** Returns true if field password is set (has been assigned a value) and false otherwise */
+ public boolean isSetPassword() {
+ return this.password != null;
+ }
+
+ public void setPasswordIsSet(boolean value) {
+ if (!value) {
+ this.password = null;
+ }
+ }
+
+ public String getFolderName() {
+ return this.folderName;
+ }
+
+ public void setFolderName(String folderName) {
+ this.folderName = folderName;
+ }
+
+ public void unsetFolderName() {
+ this.folderName = null;
+ }
+
+ /** Returns true if field folderName is set (has been assigned a value) and false otherwise */
+ public boolean isSetFolderName() {
+ return this.folderName != null;
+ }
+
+ public void setFolderNameIsSet(boolean value) {
+ if (!value) {
+ this.folderName = null;
+ }
+ }
+
+ /**
+ *
+ * @see EmailProtocol
+ */
+ public EmailProtocol getStoreProtocol() {
+ return this.storeProtocol;
+ }
+
+ /**
+ *
+ * @see EmailProtocol
+ */
+ public void setStoreProtocol(EmailProtocol storeProtocol) {
+ this.storeProtocol = storeProtocol;
+ }
+
+ public void unsetStoreProtocol() {
+ this.storeProtocol = null;
+ }
+
+ /** Returns true if field storeProtocol is set (has been assigned a value) and false otherwise */
+ public boolean isSetStoreProtocol() {
+ return this.storeProtocol != null;
+ }
+
+ public void setStoreProtocolIsSet(boolean value) {
+ if (!value) {
+ this.storeProtocol = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case HOST:
+ if (value == null) {
+ unsetHost();
+ } else {
+ setHost((String)value);
+ }
+ break;
+
+ case EMAIL_ADDRESS:
+ if (value == null) {
+ unsetEmailAddress();
+ } else {
+ setEmailAddress((String)value);
+ }
+ break;
+
+ case PASSWORD:
+ if (value == null) {
+ unsetPassword();
+ } else {
+ setPassword((String)value);
+ }
+ break;
+
+ case FOLDER_NAME:
+ if (value == null) {
+ unsetFolderName();
+ } else {
+ setFolderName((String)value);
+ }
+ break;
+
+ case STORE_PROTOCOL:
+ if (value == null) {
+ unsetStoreProtocol();
+ } else {
+ setStoreProtocol((EmailProtocol)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case HOST:
+ return getHost();
+
+ case EMAIL_ADDRESS:
+ return getEmailAddress();
+
+ case PASSWORD:
+ return getPassword();
+
+ case FOLDER_NAME:
+ return getFolderName();
+
+ case STORE_PROTOCOL:
+ return getStoreProtocol();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case HOST:
+ return isSetHost();
+ case EMAIL_ADDRESS:
+ return isSetEmailAddress();
+ case PASSWORD:
+ return isSetPassword();
+ case FOLDER_NAME:
+ return isSetFolderName();
+ case STORE_PROTOCOL:
+ return isSetStoreProtocol();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof EmailMonitorProperty)
+ return this.equals((EmailMonitorProperty)that);
+ return false;
+ }
+
+ public boolean equals(EmailMonitorProperty that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_host = true && this.isSetHost();
+ boolean that_present_host = true && that.isSetHost();
+ if (this_present_host || that_present_host) {
+ if (!(this_present_host && that_present_host))
+ return false;
+ if (!this.host.equals(that.host))
+ return false;
+ }
+
+ boolean this_present_emailAddress = true && this.isSetEmailAddress();
+ boolean that_present_emailAddress = true && that.isSetEmailAddress();
+ if (this_present_emailAddress || that_present_emailAddress) {
+ if (!(this_present_emailAddress && that_present_emailAddress))
+ return false;
+ if (!this.emailAddress.equals(that.emailAddress))
+ return false;
+ }
+
+ boolean this_present_password = true && this.isSetPassword();
+ boolean that_present_password = true && that.isSetPassword();
+ if (this_present_password || that_present_password) {
+ if (!(this_present_password && that_present_password))
+ return false;
+ if (!this.password.equals(that.password))
+ return false;
+ }
+
+ boolean this_present_folderName = true && this.isSetFolderName();
+ boolean that_present_folderName = true && that.isSetFolderName();
+ if (this_present_folderName || that_present_folderName) {
+ if (!(this_present_folderName && that_present_folderName))
+ return false;
+ if (!this.folderName.equals(that.folderName))
+ return false;
+ }
+
+ boolean this_present_storeProtocol = true && this.isSetStoreProtocol();
+ boolean that_present_storeProtocol = true && that.isSetStoreProtocol();
+ if (this_present_storeProtocol || that_present_storeProtocol) {
+ if (!(this_present_storeProtocol && that_present_storeProtocol))
+ return false;
+ if (!this.storeProtocol.equals(that.storeProtocol))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @Override
+ public int compareTo(EmailMonitorProperty other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetHost()).compareTo(other.isSetHost());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetHost()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.host, other.host);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetEmailAddress()).compareTo(other.isSetEmailAddress());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetEmailAddress()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emailAddress, other.emailAddress);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetPassword()).compareTo(other.isSetPassword());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetPassword()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.password, other.password);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetFolderName()).compareTo(other.isSetFolderName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetFolderName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.folderName, other.folderName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetStoreProtocol()).compareTo(other.isSetStoreProtocol());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetStoreProtocol()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storeProtocol, other.storeProtocol);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("EmailMonitorProperty(");
+ boolean first = true;
+
+ sb.append("host:");
+ if (this.host == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.host);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("emailAddress:");
+ if (this.emailAddress == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.emailAddress);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("password:");
+ if (this.password == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.password);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("folderName:");
+ if (this.folderName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.folderName);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("storeProtocol:");
+ if (this.storeProtocol == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.storeProtocol);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ if (!isSetHost()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'host' is unset! Struct:" + toString());
+ }
+
+ if (!isSetEmailAddress()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'emailAddress' is unset! Struct:" + toString());
+ }
+
+ if (!isSetPassword()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'password' is unset! Struct:" + toString());
+ }
+
+ if (!isSetFolderName()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'folderName' is unset! Struct:" + toString());
+ }
+
+ if (!isSetStoreProtocol()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'storeProtocol' is unset! Struct:" + toString());
+ }
+
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class EmailMonitorPropertyStandardSchemeFactory implements SchemeFactory {
+ public EmailMonitorPropertyStandardScheme getScheme() {
+ return new EmailMonitorPropertyStandardScheme();
+ }
+ }
+
+ private static class EmailMonitorPropertyStandardScheme extends StandardScheme<EmailMonitorProperty> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, EmailMonitorProperty struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // HOST
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.host = iprot.readString();
+ struct.setHostIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // EMAIL_ADDRESS
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.emailAddress = iprot.readString();
+ struct.setEmailAddressIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 3: // PASSWORD
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.password = iprot.readString();
+ struct.setPasswordIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 4: // FOLDER_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.folderName = iprot.readString();
+ struct.setFolderNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 5: // STORE_PROTOCOL
+ if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+ struct.storeProtocol = EmailProtocol.findByValue(iprot.readI32());
+ struct.setStoreProtocolIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, EmailMonitorProperty struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.host != null) {
+ oprot.writeFieldBegin(HOST_FIELD_DESC);
+ oprot.writeString(struct.host);
+ oprot.writeFieldEnd();
+ }
+ if (struct.emailAddress != null) {
+ oprot.writeFieldBegin(EMAIL_ADDRESS_FIELD_DESC);
+ oprot.writeString(struct.emailAddress);
+ oprot.writeFieldEnd();
+ }
+ if (struct.password != null) {
+ oprot.writeFieldBegin(PASSWORD_FIELD_DESC);
+ oprot.writeString(struct.password);
+ oprot.writeFieldEnd();
+ }
+ if (struct.folderName != null) {
+ oprot.writeFieldBegin(FOLDER_NAME_FIELD_DESC);
+ oprot.writeString(struct.folderName);
+ oprot.writeFieldEnd();
+ }
+ if (struct.storeProtocol != null) {
+ oprot.writeFieldBegin(STORE_PROTOCOL_FIELD_DESC);
+ oprot.writeI32(struct.storeProtocol.getValue());
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class EmailMonitorPropertyTupleSchemeFactory implements SchemeFactory {
+ public EmailMonitorPropertyTupleScheme getScheme() {
+ return new EmailMonitorPropertyTupleScheme();
+ }
+ }
+
+ private static class EmailMonitorPropertyTupleScheme extends TupleScheme<EmailMonitorProperty> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, EmailMonitorProperty struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ oprot.writeString(struct.host);
+ oprot.writeString(struct.emailAddress);
+ oprot.writeString(struct.password);
+ oprot.writeString(struct.folderName);
+ oprot.writeI32(struct.storeProtocol.getValue());
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, EmailMonitorProperty struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ struct.host = iprot.readString();
+ struct.setHostIsSet(true);
+ struct.emailAddress = iprot.readString();
+ struct.setEmailAddressIsSet(true);
+ struct.password = iprot.readString();
+ struct.setPasswordIsSet(true);
+ struct.folderName = iprot.readString();
+ struct.setFolderNameIsSet(true);
+ struct.storeProtocol = EmailProtocol.findByValue(iprot.readI32());
+ struct.setStoreProtocolIsSet(true);
+ }
+ }
+
+}
+
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/EmailProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/EmailProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/EmailProtocol.java
new file mode 100644
index 0000000..d646f8a
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/EmailProtocol.java
@@ -0,0 +1,66 @@
+/**
+ * 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.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Email protocol
+ *
+ */
+@SuppressWarnings("all") public enum EmailProtocol implements org.apache.thrift.TEnum {
+ POP3(0),
+ IMAPS(1);
+
+ private final int value;
+
+ private EmailProtocol(int value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the integer value of this enum value, as defined in the Thrift IDL.
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * Find a the enum type by its integer value, as defined in the Thrift IDL.
+ * @return null if the value is not found.
+ */
+ public static EmailProtocol findByValue(int value) {
+ switch (value) {
+ case 0:
+ return POP3;
+ case 1:
+ return IMAPS;
+ default:
+ return null;
+ }
+ }
+}
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/MonitorMode.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java
index 2545711..53cadd7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java
@@ -41,7 +41,8 @@ import org.apache.thrift.TEnum;
*/
@SuppressWarnings("all") public enum MonitorMode implements org.apache.thrift.TEnum {
POLL_JOB_MANAGER(0),
- XSEDE_AMQP_SUBSCRIBE(1);
+ JOB_EMAIL_NOTIFICATION_MONITOR(1),
+ XSEDE_AMQP_SUBSCRIBE(2);
private final int value;
@@ -65,6 +66,8 @@ import org.apache.thrift.TEnum;
case 0:
return POLL_JOB_MANAGER;
case 1:
+ return JOB_EMAIL_NOTIFICATION_MONITOR;
+ case 2:
return XSEDE_AMQP_SUBSCRIBE;
default:
return null;