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 <[email protected]> Authored: Wed Apr 8 17:06:37 2015 -0400 Committer: shamrath <[email protected]> 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;
