You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ms...@apache.org on 2015/03/15 16:30:18 UTC

airavata git commit: moved userdn part to the more dynamic userconfiguration model

Repository: airavata
Updated Branches:
  refs/heads/master 73858d152 -> a4fb48915


moved userdn part to the more dynamic userconfiguration model 

Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/a4fb4891
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/a4fb4891
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/a4fb4891

Branch: refs/heads/master
Commit: a4fb48915283c93af7d4a19076a6d81fec597f64
Parents: 73858d1
Author: msmemon <sh...@gmail.com>
Authored: Sun Mar 15 16:29:27 2015 +0100
Committer: msmemon <sh...@gmail.com>
Committed: Sun Mar 15 16:29:27 2015 +0100

----------------------------------------------------------------------
 .../lib/airavata/computeResourceModel_types.cpp | 203 +++++++----------
 .../lib/airavata/computeResourceModel_types.h   |  38 +---
 .../lib/airavata/experimentModel_types.cpp      |  36 ++-
 .../lib/airavata/experimentModel_types.h        |  34 ++-
 .../Model/AppCatalog/ComputeResource/Types.php  |  49 -----
 .../Model/Workspace/Experiment/Types.php        |  40 ++++
 .../computeresource/UnicoreJobSubmission.java   | 220 +------------------
 .../experiment/UserConfigurationData.java       | 205 ++++++++++++++++-
 .../computeResourceModel.thrift                 |  19 --
 .../experimentModel.thrift                      |   8 +-
 .../catalog/data/impl/ComputeResourceImpl.java  |   1 -
 .../data/model/UnicoreJobSubmission.java        |  13 --
 .../data/resources/AbstractResource.java        |   2 +-
 .../resources/UnicoreJobSubmissionResource.java |  27 +--
 .../catalog/data/util/AppCatalogJPAUtils.java   |   1 -
 .../data/util/AppCatalogThriftConversion.java   |   2 -
 .../src/main/resources/appcatalog-derby.sql     |   1 -
 .../src/main/resources/appcatalog-mysql.sql     |   1 -
 .../gfac/bes/provider/impl/BESProvider.java     |  10 +-
 19 files changed, 403 insertions(+), 507 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/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 4d52172..d54c519 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
@@ -137,16 +137,6 @@ const char* _kDataMovementProtocolNames[] = {
 };
 const std::map<int, const char*> _DataMovementProtocol_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(5, _kDataMovementProtocolValues, _kDataMovementProtocolNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
-int _kAuthenticationModeValues[] = {
-  AuthenticationMode::SERVER_ISSUED,
-  AuthenticationMode::MYPROXY_ISSUED
-};
-const char* _kAuthenticationModeNames[] = {
-  "SERVER_ISSUED",
-  "MYPROXY_ISSUED"
-};
-const std::map<int, const char*> _AuthenticationMode_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, _kAuthenticationModeValues, _kAuthenticationModeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
-
 int _kProviderNameValues[] = {
   ProviderName::EC2,
   ProviderName::AWSEC2,
@@ -1190,8 +1180,8 @@ void swap(GlobusJobSubmission &a, GlobusJobSubmission &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* UnicoreJobSubmission::ascii_fingerprint = "06B870319715692996F28828C4AF836C";
-const uint8_t UnicoreJobSubmission::binary_fingerprint[16] = {0x06,0xB8,0x70,0x31,0x97,0x15,0x69,0x29,0x96,0xF2,0x88,0x28,0xC4,0xAF,0x83,0x6C};
+const char* UnicoreJobSubmission::ascii_fingerprint = "D9F4CFE2F293A8B1052FD3031DD2C847";
+const uint8_t UnicoreJobSubmission::binary_fingerprint[16] = {0xD9,0xF4,0xCF,0xE2,0xF2,0x93,0xA8,0xB1,0x05,0x2F,0xD3,0x03,0x1D,0xD2,0xC8,0x47};
 
 uint32_t UnicoreJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -1207,7 +1197,6 @@ uint32_t UnicoreJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot
   bool isset_jobSubmissionInterfaceId = false;
   bool isset_securityProtocol = false;
   bool isset_unicoreEndPointURL = false;
-  bool isset_authenticationMode = false;
 
   while (true)
   {
@@ -1243,24 +1232,6 @@ uint32_t UnicoreJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast29;
-          xfer += iprot->readI32(ecast29);
-          this->authenticationMode = (AuthenticationMode::type)ecast29;
-          isset_authenticationMode = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->userDN);
-          this->__isset.userDN = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -1276,8 +1247,6 @@ uint32_t UnicoreJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_unicoreEndPointURL)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_authenticationMode)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
@@ -1297,15 +1266,6 @@ uint32_t UnicoreJobSubmission::write(::apache::thrift::protocol::TProtocol* opro
   xfer += oprot->writeString(this->unicoreEndPointURL);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("authenticationMode", ::apache::thrift::protocol::T_I32, 4);
-  xfer += oprot->writeI32((int32_t)this->authenticationMode);
-  xfer += oprot->writeFieldEnd();
-
-  if (this->__isset.userDN) {
-    xfer += oprot->writeFieldBegin("userDN", ::apache::thrift::protocol::T_STRING, 5);
-    xfer += oprot->writeString(this->userDN);
-    xfer += oprot->writeFieldEnd();
-  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -1316,9 +1276,6 @@ void swap(UnicoreJobSubmission &a, UnicoreJobSubmission &b) {
   swap(a.jobSubmissionInterfaceId, b.jobSubmissionInterfaceId);
   swap(a.securityProtocol, b.securityProtocol);
   swap(a.unicoreEndPointURL, b.unicoreEndPointURL);
-  swap(a.authenticationMode, b.authenticationMode);
-  swap(a.userDN, b.userDN);
-  swap(a.__isset, b.__isset);
 }
 
 const char* CloudJobSubmission::ascii_fingerprint = "F98AE2E6E51F2426504F2566EB71B5CC";
@@ -1360,9 +1317,9 @@ uint32_t CloudJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast30;
-          xfer += iprot->readI32(ecast30);
-          this->securityProtocol = (SecurityProtocol::type)ecast30;
+          int32_t ecast29;
+          xfer += iprot->readI32(ecast29);
+          this->securityProtocol = (SecurityProtocol::type)ecast29;
           isset_securityProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1386,9 +1343,9 @@ uint32_t CloudJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         break;
       case 5:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast31;
-          xfer += iprot->readI32(ecast31);
-          this->providerName = (ProviderName::type)ecast31;
+          int32_t ecast30;
+          xfer += iprot->readI32(ecast30);
+          this->providerName = (ProviderName::type)ecast30;
           isset_providerName = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1505,9 +1462,9 @@ uint32_t JobSubmissionInterface::read(::apache::thrift::protocol::TProtocol* ipr
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast32;
-          xfer += iprot->readI32(ecast32);
-          this->jobSubmissionProtocol = (JobSubmissionProtocol::type)ecast32;
+          int32_t ecast31;
+          xfer += iprot->readI32(ecast31);
+          this->jobSubmissionProtocol = (JobSubmissionProtocol::type)ecast31;
           isset_jobSubmissionProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1603,9 +1560,9 @@ uint32_t DataMovementInterface::read(::apache::thrift::protocol::TProtocol* ipro
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast33;
-          xfer += iprot->readI32(ecast33);
-          this->dataMovementProtocol = (DataMovementProtocol::type)ecast33;
+          int32_t ecast32;
+          xfer += iprot->readI32(ecast32);
+          this->dataMovementProtocol = (DataMovementProtocol::type)ecast32;
           isset_dataMovementProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1710,14 +1667,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->hostAliases.clear();
-            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)
+            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)
             {
-              xfer += iprot->readString(this->hostAliases[_i38]);
+              xfer += iprot->readString(this->hostAliases[_i37]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1730,14 +1687,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->ipAddresses.clear();
-            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)
+            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)
             {
-              xfer += iprot->readString(this->ipAddresses[_i43]);
+              xfer += iprot->readString(this->ipAddresses[_i42]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1758,14 +1715,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->batchQueues.clear();
-            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)
+            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)
             {
-              xfer += this->batchQueues[_i48].read(iprot);
+              xfer += this->batchQueues[_i47].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1778,19 +1735,19 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->fileSystems.clear();
-            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)
+            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)
             {
-              FileSystems::type _key54;
-              int32_t ecast56;
-              xfer += iprot->readI32(ecast56);
-              _key54 = (FileSystems::type)ecast56;
-              std::string& _val55 = this->fileSystems[_key54];
-              xfer += iprot->readString(_val55);
+              FileSystems::type _key53;
+              int32_t ecast55;
+              xfer += iprot->readI32(ecast55);
+              _key53 = (FileSystems::type)ecast55;
+              std::string& _val54 = this->fileSystems[_key53];
+              xfer += iprot->readString(_val54);
             }
             xfer += iprot->readMapEnd();
           }
@@ -1803,14 +1760,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->jobSubmissionInterfaces.clear();
-            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)
+            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)
             {
-              xfer += this->jobSubmissionInterfaces[_i61].read(iprot);
+              xfer += this->jobSubmissionInterfaces[_i60].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1823,14 +1780,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->dataMovementInterfaces.clear();
-            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)
+            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)
             {
-              xfer += this->dataMovementInterfaces[_i66].read(iprot);
+              xfer += this->dataMovementInterfaces[_i65].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1879,10 +1836,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 _iter67;
-      for (_iter67 = this->hostAliases.begin(); _iter67 != this->hostAliases.end(); ++_iter67)
+      std::vector<std::string> ::const_iterator _iter66;
+      for (_iter66 = this->hostAliases.begin(); _iter66 != this->hostAliases.end(); ++_iter66)
       {
-        xfer += oprot->writeString((*_iter67));
+        xfer += oprot->writeString((*_iter66));
       }
       xfer += oprot->writeListEnd();
     }
@@ -1892,10 +1849,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 _iter68;
-      for (_iter68 = this->ipAddresses.begin(); _iter68 != this->ipAddresses.end(); ++_iter68)
+      std::vector<std::string> ::const_iterator _iter67;
+      for (_iter67 = this->ipAddresses.begin(); _iter67 != this->ipAddresses.end(); ++_iter67)
       {
-        xfer += oprot->writeString((*_iter68));
+        xfer += oprot->writeString((*_iter67));
       }
       xfer += oprot->writeListEnd();
     }
@@ -1910,10 +1867,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 _iter69;
-      for (_iter69 = this->batchQueues.begin(); _iter69 != this->batchQueues.end(); ++_iter69)
+      std::vector<BatchQueue> ::const_iterator _iter68;
+      for (_iter68 = this->batchQueues.begin(); _iter68 != this->batchQueues.end(); ++_iter68)
       {
-        xfer += (*_iter69).write(oprot);
+        xfer += (*_iter68).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1923,11 +1880,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 _iter70;
-      for (_iter70 = this->fileSystems.begin(); _iter70 != this->fileSystems.end(); ++_iter70)
+      std::map<FileSystems::type, std::string> ::const_iterator _iter69;
+      for (_iter69 = this->fileSystems.begin(); _iter69 != this->fileSystems.end(); ++_iter69)
       {
-        xfer += oprot->writeI32((int32_t)_iter70->first);
-        xfer += oprot->writeString(_iter70->second);
+        xfer += oprot->writeI32((int32_t)_iter69->first);
+        xfer += oprot->writeString(_iter69->second);
       }
       xfer += oprot->writeMapEnd();
     }
@@ -1937,10 +1894,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 _iter71;
-      for (_iter71 = this->jobSubmissionInterfaces.begin(); _iter71 != this->jobSubmissionInterfaces.end(); ++_iter71)
+      std::vector<JobSubmissionInterface> ::const_iterator _iter70;
+      for (_iter70 = this->jobSubmissionInterfaces.begin(); _iter70 != this->jobSubmissionInterfaces.end(); ++_iter70)
       {
-        xfer += (*_iter71).write(oprot);
+        xfer += (*_iter70).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1950,10 +1907,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 _iter72;
-      for (_iter72 = this->dataMovementInterfaces.begin(); _iter72 != this->dataMovementInterfaces.end(); ++_iter72)
+      std::vector<DataMovementInterface> ::const_iterator _iter71;
+      for (_iter71 = this->dataMovementInterfaces.begin(); _iter71 != this->dataMovementInterfaces.end(); ++_iter71)
       {
-        xfer += (*_iter72).write(oprot);
+        xfer += (*_iter71).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/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 b1b70d5..76037b2 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
@@ -117,15 +117,6 @@ struct DataMovementProtocol {
 
 extern const std::map<int, const char*> _DataMovementProtocol_VALUES_TO_NAMES;
 
-struct AuthenticationMode {
-  enum type {
-    SERVER_ISSUED = 0,
-    MYPROXY_ISSUED = 1
-  };
-};
-
-extern const std::map<int, const char*> _AuthenticationMode_VALUES_TO_NAMES;
-
 struct ProviderName {
   enum type {
     EC2 = 0,
@@ -729,18 +720,14 @@ class GlobusJobSubmission {
 
 void swap(GlobusJobSubmission &a, GlobusJobSubmission &b);
 
-typedef struct _UnicoreJobSubmission__isset {
-  _UnicoreJobSubmission__isset() : userDN(false) {}
-  bool userDN;
-} _UnicoreJobSubmission__isset;
 
 class UnicoreJobSubmission {
  public:
 
-  static const char* ascii_fingerprint; // = "06B870319715692996F28828C4AF836C";
-  static const uint8_t binary_fingerprint[16]; // = {0x06,0xB8,0x70,0x31,0x97,0x15,0x69,0x29,0x96,0xF2,0x88,0x28,0xC4,0xAF,0x83,0x6C};
+  static const char* ascii_fingerprint; // = "D9F4CFE2F293A8B1052FD3031DD2C847";
+  static const uint8_t binary_fingerprint[16]; // = {0xD9,0xF4,0xCF,0xE2,0xF2,0x93,0xA8,0xB1,0x05,0x2F,0xD3,0x03,0x1D,0xD2,0xC8,0x47};
 
-  UnicoreJobSubmission() : jobSubmissionInterfaceId("DO_NOT_SET_AT_CLIENTS"), securityProtocol((SecurityProtocol::type)0), unicoreEndPointURL(), authenticationMode((AuthenticationMode::type)0), userDN() {
+  UnicoreJobSubmission() : jobSubmissionInterfaceId("DO_NOT_SET_AT_CLIENTS"), securityProtocol((SecurityProtocol::type)0), unicoreEndPointURL() {
   }
 
   virtual ~UnicoreJobSubmission() throw() {}
@@ -748,10 +735,6 @@ class UnicoreJobSubmission {
   std::string jobSubmissionInterfaceId;
   SecurityProtocol::type securityProtocol;
   std::string unicoreEndPointURL;
-  AuthenticationMode::type authenticationMode;
-  std::string userDN;
-
-  _UnicoreJobSubmission__isset __isset;
 
   void __set_jobSubmissionInterfaceId(const std::string& val) {
     jobSubmissionInterfaceId = val;
@@ -765,15 +748,6 @@ class UnicoreJobSubmission {
     unicoreEndPointURL = val;
   }
 
-  void __set_authenticationMode(const AuthenticationMode::type val) {
-    authenticationMode = val;
-  }
-
-  void __set_userDN(const std::string& val) {
-    userDN = val;
-    __isset.userDN = true;
-  }
-
   bool operator == (const UnicoreJobSubmission & rhs) const
   {
     if (!(jobSubmissionInterfaceId == rhs.jobSubmissionInterfaceId))
@@ -782,12 +756,6 @@ class UnicoreJobSubmission {
       return false;
     if (!(unicoreEndPointURL == rhs.unicoreEndPointURL))
       return false;
-    if (!(authenticationMode == rhs.authenticationMode))
-      return false;
-    if (__isset.userDN != rhs.__isset.userDN)
-      return false;
-    else if (__isset.userDN && !(userDN == rhs.userDN))
-      return false;
     return true;
   }
   bool operator != (const UnicoreJobSubmission &rhs) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
index 2f1d21b..fe7890f 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
@@ -1195,8 +1195,8 @@ void swap(QualityOfServiceParams &a, QualityOfServiceParams &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* UserConfigurationData::ascii_fingerprint = "A39B8E6345C677771D939D170C65720F";
-const uint8_t UserConfigurationData::binary_fingerprint[16] = {0xA3,0x9B,0x8E,0x63,0x45,0xC6,0x77,0x77,0x1D,0x93,0x9D,0x17,0x0C,0x65,0x72,0x0F};
+const char* UserConfigurationData::ascii_fingerprint = "0EA9FCA690C445780E02BCAC89B1D820";
+const uint8_t UserConfigurationData::binary_fingerprint[16] = {0x0E,0xA9,0xFC,0xA6,0x90,0xC4,0x45,0x78,0x0E,0x02,0xBC,0xAC,0x89,0xB1,0xD8,0x20};
 
 uint32_t UserConfigurationData::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -1284,6 +1284,22 @@ uint32_t UserConfigurationData::read(::apache::thrift::protocol::TProtocol* ipro
           xfer += iprot->skip(ftype);
         }
         break;
+      case 9:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userDN);
+          this->__isset.userDN = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->generateCert);
+          this->__isset.generateCert = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -1342,6 +1358,16 @@ uint32_t UserConfigurationData::write(::apache::thrift::protocol::TProtocol* opr
     xfer += oprot->writeBool(this->throttleResources);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.userDN) {
+    xfer += oprot->writeFieldBegin("userDN", ::apache::thrift::protocol::T_STRING, 9);
+    xfer += oprot->writeString(this->userDN);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.generateCert) {
+    xfer += oprot->writeFieldBegin("generateCert", ::apache::thrift::protocol::T_BOOL, 10);
+    xfer += oprot->writeBool(this->generateCert);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -1357,6 +1383,8 @@ void swap(UserConfigurationData &a, UserConfigurationData &b) {
   swap(a.advanceOutputDataHandling, b.advanceOutputDataHandling);
   swap(a.qosParams, b.qosParams);
   swap(a.throttleResources, b.throttleResources);
+  swap(a.userDN, b.userDN);
+  swap(a.generateCert, b.generateCert);
   swap(a.__isset, b.__isset);
 }
 
@@ -2708,8 +2736,8 @@ void swap(ValidationResults &a, ValidationResults &b) {
   swap(a.validationResultList, b.validationResultList);
 }
 
-const char* Experiment::ascii_fingerprint = "C610216A34DE0B4389362B3D5236F6F6";
-const uint8_t Experiment::binary_fingerprint[16] = {0xC6,0x10,0x21,0x6A,0x34,0xDE,0x0B,0x43,0x89,0x36,0x2B,0x3D,0x52,0x36,0xF6,0xF6};
+const char* Experiment::ascii_fingerprint = "AAB7BCD0F1CB7A0198FEF5DB532788A8";
+const uint8_t Experiment::binary_fingerprint[16] = {0xAA,0xB7,0xBC,0xD0,0xF1,0xCB,0x7A,0x01,0x98,0xFE,0xF5,0xDB,0x53,0x27,0x88,0xA8};
 
 uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
index 15c0d4c..b09c480 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
@@ -855,22 +855,24 @@ class QualityOfServiceParams {
 void swap(QualityOfServiceParams &a, QualityOfServiceParams &b);
 
 typedef struct _UserConfigurationData__isset {
-  _UserConfigurationData__isset() : shareExperimentPublicly(true), computationalResourceScheduling(false), advanceInputDataHandling(false), advanceOutputDataHandling(false), qosParams(false), throttleResources(true) {}
+  _UserConfigurationData__isset() : shareExperimentPublicly(true), computationalResourceScheduling(false), advanceInputDataHandling(false), advanceOutputDataHandling(false), qosParams(false), throttleResources(true), userDN(false), generateCert(true) {}
   bool shareExperimentPublicly;
   bool computationalResourceScheduling;
   bool advanceInputDataHandling;
   bool advanceOutputDataHandling;
   bool qosParams;
   bool throttleResources;
+  bool userDN;
+  bool generateCert;
 } _UserConfigurationData__isset;
 
 class UserConfigurationData {
  public:
 
-  static const char* ascii_fingerprint; // = "A39B8E6345C677771D939D170C65720F";
-  static const uint8_t binary_fingerprint[16]; // = {0xA3,0x9B,0x8E,0x63,0x45,0xC6,0x77,0x77,0x1D,0x93,0x9D,0x17,0x0C,0x65,0x72,0x0F};
+  static const char* ascii_fingerprint; // = "0EA9FCA690C445780E02BCAC89B1D820";
+  static const uint8_t binary_fingerprint[16]; // = {0x0E,0xA9,0xFC,0xA6,0x90,0xC4,0x45,0x78,0x0E,0x02,0xBC,0xAC,0x89,0xB1,0xD8,0x20};
 
-  UserConfigurationData() : airavataAutoSchedule(false), overrideManualScheduledParams(false), shareExperimentPublicly(false), throttleResources(false) {
+  UserConfigurationData() : airavataAutoSchedule(false), overrideManualScheduledParams(false), shareExperimentPublicly(false), throttleResources(false), userDN(), generateCert(false) {
   }
 
   virtual ~UserConfigurationData() throw() {}
@@ -883,6 +885,8 @@ class UserConfigurationData {
   AdvancedOutputDataHandling advanceOutputDataHandling;
   QualityOfServiceParams qosParams;
   bool throttleResources;
+  std::string userDN;
+  bool generateCert;
 
   _UserConfigurationData__isset __isset;
 
@@ -924,6 +928,16 @@ class UserConfigurationData {
     __isset.throttleResources = true;
   }
 
+  void __set_userDN(const std::string& val) {
+    userDN = val;
+    __isset.userDN = true;
+  }
+
+  void __set_generateCert(const bool val) {
+    generateCert = val;
+    __isset.generateCert = true;
+  }
+
   bool operator == (const UserConfigurationData & rhs) const
   {
     if (!(airavataAutoSchedule == rhs.airavataAutoSchedule))
@@ -954,6 +968,14 @@ class UserConfigurationData {
       return false;
     else if (__isset.throttleResources && !(throttleResources == rhs.throttleResources))
       return false;
+    if (__isset.userDN != rhs.__isset.userDN)
+      return false;
+    else if (__isset.userDN && !(userDN == rhs.userDN))
+      return false;
+    if (__isset.generateCert != rhs.__isset.generateCert)
+      return false;
+    else if (__isset.generateCert && !(generateCert == rhs.generateCert))
+      return false;
     return true;
   }
   bool operator != (const UserConfigurationData &rhs) const {
@@ -1747,8 +1769,8 @@ typedef struct _Experiment__isset {
 class Experiment {
  public:
 
-  static const char* ascii_fingerprint; // = "C610216A34DE0B4389362B3D5236F6F6";
-  static const uint8_t binary_fingerprint[16]; // = {0xC6,0x10,0x21,0x6A,0x34,0xDE,0x0B,0x43,0x89,0x36,0x2B,0x3D,0x52,0x36,0xF6,0xF6};
+  static const char* ascii_fingerprint; // = "AAB7BCD0F1CB7A0198FEF5DB532788A8";
+  static const uint8_t binary_fingerprint[16]; // = {0xAA,0xB7,0xBC,0xD0,0xF1,0xCB,0x7A,0x01,0x98,0xFE,0xF5,0xDB,0x53,0x27,0x88,0xA8};
 
   Experiment() : experimentID("DO_NOT_SET_AT_CLIENTS"), projectID("DEFAULT"), creationTime(0), userName(), name(), description(), applicationId(), applicationVersion(), workflowTemplateId(), workflowTemplateVersion(), enableEmailNotification(0), workflowExecutionInstanceId() {
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/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 9bfced0..2280d94 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
@@ -120,15 +120,6 @@ final class DataMovementProtocol {
   );
 }
 
-final class AuthenticationMode {
-  const SERVER_ISSUED = 0;
-  const MYPROXY_ISSUED = 1;
-  static public $__names = array(
-    0 => 'SERVER_ISSUED',
-    1 => 'MYPROXY_ISSUED',
-  );
-}
-
 final class ProviderName {
   const EC2 = 0;
   const AWSEC2 = 1;
@@ -1390,8 +1381,6 @@ class UnicoreJobSubmission {
   public $jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
   public $securityProtocol = null;
   public $unicoreEndPointURL = null;
-  public $authenticationMode = null;
-  public $userDN = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -1408,14 +1397,6 @@ class UnicoreJobSubmission {
           'var' => 'unicoreEndPointURL',
           'type' => TType::STRING,
           ),
-        4 => array(
-          'var' => 'authenticationMode',
-          'type' => TType::I32,
-          ),
-        5 => array(
-          'var' => 'userDN',
-          'type' => TType::STRING,
-          ),
         );
     }
     if (is_array($vals)) {
@@ -1428,12 +1409,6 @@ class UnicoreJobSubmission {
       if (isset($vals['unicoreEndPointURL'])) {
         $this->unicoreEndPointURL = $vals['unicoreEndPointURL'];
       }
-      if (isset($vals['authenticationMode'])) {
-        $this->authenticationMode = $vals['authenticationMode'];
-      }
-      if (isset($vals['userDN'])) {
-        $this->userDN = $vals['userDN'];
-      }
     }
   }
 
@@ -1477,20 +1452,6 @@ class UnicoreJobSubmission {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 4:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->authenticationMode);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->userDN);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -1519,16 +1480,6 @@ class UnicoreJobSubmission {
       $xfer += $output->writeString($this->unicoreEndPointURL);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->authenticationMode !== null) {
-      $xfer += $output->writeFieldBegin('authenticationMode', TType::I32, 4);
-      $xfer += $output->writeI32($this->authenticationMode);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->userDN !== null) {
-      $xfer += $output->writeFieldBegin('userDN', TType::STRING, 5);
-      $xfer += $output->writeString($this->userDN);
-      $xfer += $output->writeFieldEnd();
-    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
index ea7aa19..6ad1be0 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
@@ -1387,6 +1387,8 @@ class UserConfigurationData {
   public $advanceOutputDataHandling = null;
   public $qosParams = null;
   public $throttleResources = false;
+  public $userDN = null;
+  public $generateCert = false;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -1427,6 +1429,14 @@ class UserConfigurationData {
           'var' => 'throttleResources',
           'type' => TType::BOOL,
           ),
+        9 => array(
+          'var' => 'userDN',
+          'type' => TType::STRING,
+          ),
+        10 => array(
+          'var' => 'generateCert',
+          'type' => TType::BOOL,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -1454,6 +1464,12 @@ class UserConfigurationData {
       if (isset($vals['throttleResources'])) {
         $this->throttleResources = $vals['throttleResources'];
       }
+      if (isset($vals['userDN'])) {
+        $this->userDN = $vals['userDN'];
+      }
+      if (isset($vals['generateCert'])) {
+        $this->generateCert = $vals['generateCert'];
+      }
     }
   }
 
@@ -1536,6 +1552,20 @@ class UserConfigurationData {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 9:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->userDN);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->generateCert);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -1601,6 +1631,16 @@ class UserConfigurationData {
       $xfer += $output->writeBool($this->throttleResources);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->userDN !== null) {
+      $xfer += $output->writeFieldBegin('userDN', TType::STRING, 9);
+      $xfer += $output->writeString($this->userDN);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->generateCert !== null) {
+      $xfer += $output->writeFieldBegin('generateCert', TType::BOOL, 10);
+      $xfer += $output->writeBool($this->generateCert);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
index d65ec86..e1dc2d5 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@ -56,9 +56,6 @@ import org.slf4j.LoggerFactory;
  *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
  * authenticationMode
  *  The authenticationMode defines the way certificate is fetched.
- * userDN
- *  This attribute captures the userDN used for launching jobs and create temporary storages. The attribute should be
- *  provided if the authentication mode is set as SERVER_ISSUED.
  */
 @SuppressWarnings("all") public class UnicoreJobSubmission implements org.apache.thrift.TBase<UnicoreJobSubmission, UnicoreJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreJobSubmission");
@@ -66,8 +63,6 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
   private static final org.apache.thrift.protocol.TField UNICORE_END_POINT_URL_FIELD_DESC = new org.apache.thrift.protocol.TField("unicoreEndPointURL", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField AUTHENTICATION_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("authenticationMode", org.apache.thrift.protocol.TType.I32, (short)4);
-  private static final org.apache.thrift.protocol.TField USER_DN_FIELD_DESC = new org.apache.thrift.protocol.TField("userDN", org.apache.thrift.protocol.TType.STRING, (short)5);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -78,8 +73,6 @@ import org.slf4j.LoggerFactory;
   private String jobSubmissionInterfaceId; // required
   private SecurityProtocol securityProtocol; // required
   private String unicoreEndPointURL; // required
-  private AuthenticationMode authenticationMode; // required
-  private String userDN; // 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 {
@@ -89,13 +82,7 @@ import org.slf4j.LoggerFactory;
      * @see SecurityProtocol
      */
     SECURITY_PROTOCOL((short)2, "securityProtocol"),
-    UNICORE_END_POINT_URL((short)3, "unicoreEndPointURL"),
-    /**
-     * 
-     * @see AuthenticationMode
-     */
-    AUTHENTICATION_MODE((short)4, "authenticationMode"),
-    USER_DN((short)5, "userDN");
+    UNICORE_END_POINT_URL((short)3, "unicoreEndPointURL");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -116,10 +103,6 @@ import org.slf4j.LoggerFactory;
           return SECURITY_PROTOCOL;
         case 3: // UNICORE_END_POINT_URL
           return UNICORE_END_POINT_URL;
-        case 4: // AUTHENTICATION_MODE
-          return AUTHENTICATION_MODE;
-        case 5: // USER_DN
-          return USER_DN;
         default:
           return null;
       }
@@ -160,7 +143,6 @@ import org.slf4j.LoggerFactory;
   }
 
   // isset id assignments
-  private _Fields optionals[] = {_Fields.USER_DN};
   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);
@@ -170,10 +152,6 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
     tmpMap.put(_Fields.UNICORE_END_POINT_URL, new org.apache.thrift.meta_data.FieldMetaData("unicoreEndPointURL", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.AUTHENTICATION_MODE, new org.apache.thrift.meta_data.FieldMetaData("authenticationMode", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, AuthenticationMode.class)));
-    tmpMap.put(_Fields.USER_DN, new org.apache.thrift.meta_data.FieldMetaData("userDN", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UnicoreJobSubmission.class, metaDataMap);
   }
@@ -186,14 +164,12 @@ import org.slf4j.LoggerFactory;
   public UnicoreJobSubmission(
     String jobSubmissionInterfaceId,
     SecurityProtocol securityProtocol,
-    String unicoreEndPointURL,
-    AuthenticationMode authenticationMode)
+    String unicoreEndPointURL)
   {
     this();
     this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
     this.securityProtocol = securityProtocol;
     this.unicoreEndPointURL = unicoreEndPointURL;
-    this.authenticationMode = authenticationMode;
   }
 
   /**
@@ -209,12 +185,6 @@ import org.slf4j.LoggerFactory;
     if (other.isSetUnicoreEndPointURL()) {
       this.unicoreEndPointURL = other.unicoreEndPointURL;
     }
-    if (other.isSetAuthenticationMode()) {
-      this.authenticationMode = other.authenticationMode;
-    }
-    if (other.isSetUserDN()) {
-      this.userDN = other.userDN;
-    }
   }
 
   public UnicoreJobSubmission deepCopy() {
@@ -227,8 +197,6 @@ import org.slf4j.LoggerFactory;
 
     this.securityProtocol = null;
     this.unicoreEndPointURL = null;
-    this.authenticationMode = null;
-    this.userDN = null;
   }
 
   public String getJobSubmissionInterfaceId() {
@@ -308,60 +276,6 @@ import org.slf4j.LoggerFactory;
     }
   }
 
-  /**
-   * 
-   * @see AuthenticationMode
-   */
-  public AuthenticationMode getAuthenticationMode() {
-    return this.authenticationMode;
-  }
-
-  /**
-   * 
-   * @see AuthenticationMode
-   */
-  public void setAuthenticationMode(AuthenticationMode authenticationMode) {
-    this.authenticationMode = authenticationMode;
-  }
-
-  public void unsetAuthenticationMode() {
-    this.authenticationMode = null;
-  }
-
-  /** Returns true if field authenticationMode is set (has been assigned a value) and false otherwise */
-  public boolean isSetAuthenticationMode() {
-    return this.authenticationMode != null;
-  }
-
-  public void setAuthenticationModeIsSet(boolean value) {
-    if (!value) {
-      this.authenticationMode = null;
-    }
-  }
-
-  public String getUserDN() {
-    return this.userDN;
-  }
-
-  public void setUserDN(String userDN) {
-    this.userDN = userDN;
-  }
-
-  public void unsetUserDN() {
-    this.userDN = null;
-  }
-
-  /** Returns true if field userDN is set (has been assigned a value) and false otherwise */
-  public boolean isSetUserDN() {
-    return this.userDN != null;
-  }
-
-  public void setUserDNIsSet(boolean value) {
-    if (!value) {
-      this.userDN = null;
-    }
-  }
-
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case JOB_SUBMISSION_INTERFACE_ID:
@@ -388,22 +302,6 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
-    case AUTHENTICATION_MODE:
-      if (value == null) {
-        unsetAuthenticationMode();
-      } else {
-        setAuthenticationMode((AuthenticationMode)value);
-      }
-      break;
-
-    case USER_DN:
-      if (value == null) {
-        unsetUserDN();
-      } else {
-        setUserDN((String)value);
-      }
-      break;
-
     }
   }
 
@@ -418,12 +316,6 @@ import org.slf4j.LoggerFactory;
     case UNICORE_END_POINT_URL:
       return getUnicoreEndPointURL();
 
-    case AUTHENTICATION_MODE:
-      return getAuthenticationMode();
-
-    case USER_DN:
-      return getUserDN();
-
     }
     throw new IllegalStateException();
   }
@@ -441,10 +333,6 @@ import org.slf4j.LoggerFactory;
       return isSetSecurityProtocol();
     case UNICORE_END_POINT_URL:
       return isSetUnicoreEndPointURL();
-    case AUTHENTICATION_MODE:
-      return isSetAuthenticationMode();
-    case USER_DN:
-      return isSetUserDN();
     }
     throw new IllegalStateException();
   }
@@ -489,24 +377,6 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
-    boolean this_present_authenticationMode = true && this.isSetAuthenticationMode();
-    boolean that_present_authenticationMode = true && that.isSetAuthenticationMode();
-    if (this_present_authenticationMode || that_present_authenticationMode) {
-      if (!(this_present_authenticationMode && that_present_authenticationMode))
-        return false;
-      if (!this.authenticationMode.equals(that.authenticationMode))
-        return false;
-    }
-
-    boolean this_present_userDN = true && this.isSetUserDN();
-    boolean that_present_userDN = true && that.isSetUserDN();
-    if (this_present_userDN || that_present_userDN) {
-      if (!(this_present_userDN && that_present_userDN))
-        return false;
-      if (!this.userDN.equals(that.userDN))
-        return false;
-    }
-
     return true;
   }
 
@@ -553,26 +423,6 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetAuthenticationMode()).compareTo(other.isSetAuthenticationMode());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetAuthenticationMode()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authenticationMode, other.authenticationMode);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetUserDN()).compareTo(other.isSetUserDN());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetUserDN()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userDN, other.userDN);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
     return 0;
   }
 
@@ -616,24 +466,6 @@ import org.slf4j.LoggerFactory;
       sb.append(this.unicoreEndPointURL);
     }
     first = false;
-    if (!first) sb.append(", ");
-    sb.append("authenticationMode:");
-    if (this.authenticationMode == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.authenticationMode);
-    }
-    first = false;
-    if (isSetUserDN()) {
-      if (!first) sb.append(", ");
-      sb.append("userDN:");
-      if (this.userDN == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.userDN);
-      }
-      first = false;
-    }
     sb.append(")");
     return sb.toString();
   }
@@ -652,10 +484,6 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'unicoreEndPointURL' is unset! Struct:" + toString());
     }
 
-    if (!isSetAuthenticationMode()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'authenticationMode' is unset! Struct:" + toString());
-    }
-
     // check for sub-struct validity
   }
 
@@ -717,22 +545,6 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 4: // AUTHENTICATION_MODE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.authenticationMode = AuthenticationMode.findByValue(iprot.readI32());
-              struct.setAuthenticationModeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // USER_DN
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.userDN = iprot.readString();
-              struct.setUserDNIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -761,18 +573,6 @@ import org.slf4j.LoggerFactory;
         oprot.writeString(struct.unicoreEndPointURL);
         oprot.writeFieldEnd();
       }
-      if (struct.authenticationMode != null) {
-        oprot.writeFieldBegin(AUTHENTICATION_MODE_FIELD_DESC);
-        oprot.writeI32(struct.authenticationMode.getValue());
-        oprot.writeFieldEnd();
-      }
-      if (struct.userDN != null) {
-        if (struct.isSetUserDN()) {
-          oprot.writeFieldBegin(USER_DN_FIELD_DESC);
-          oprot.writeString(struct.userDN);
-          oprot.writeFieldEnd();
-        }
-      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -793,15 +593,6 @@ import org.slf4j.LoggerFactory;
       oprot.writeString(struct.jobSubmissionInterfaceId);
       oprot.writeI32(struct.securityProtocol.getValue());
       oprot.writeString(struct.unicoreEndPointURL);
-      oprot.writeI32(struct.authenticationMode.getValue());
-      BitSet optionals = new BitSet();
-      if (struct.isSetUserDN()) {
-        optionals.set(0);
-      }
-      oprot.writeBitSet(optionals, 1);
-      if (struct.isSetUserDN()) {
-        oprot.writeString(struct.userDN);
-      }
     }
 
     @Override
@@ -813,13 +604,6 @@ import org.slf4j.LoggerFactory;
       struct.setSecurityProtocolIsSet(true);
       struct.unicoreEndPointURL = iprot.readString();
       struct.setUnicoreEndPointURLIsSet(true);
-      struct.authenticationMode = AuthenticationMode.findByValue(iprot.readI32());
-      struct.setAuthenticationModeIsSet(true);
-      BitSet incoming = iprot.readBitSet(1);
-      if (incoming.get(0)) {
-        struct.userDN = iprot.readString();
-        struct.setUserDNIsSet(true);
-      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/UserConfigurationData.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/UserConfigurationData.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/UserConfigurationData.java
index fecb4e8..c9531ea 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/UserConfigurationData.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/UserConfigurationData.java
@@ -65,6 +65,8 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TField ADVANCE_OUTPUT_DATA_HANDLING_FIELD_DESC = new org.apache.thrift.protocol.TField("advanceOutputDataHandling", org.apache.thrift.protocol.TType.STRUCT, (short)6);
   private static final org.apache.thrift.protocol.TField QOS_PARAMS_FIELD_DESC = new org.apache.thrift.protocol.TField("qosParams", org.apache.thrift.protocol.TType.STRUCT, (short)7);
   private static final org.apache.thrift.protocol.TField THROTTLE_RESOURCES_FIELD_DESC = new org.apache.thrift.protocol.TField("throttleResources", org.apache.thrift.protocol.TType.BOOL, (short)8);
+  private static final org.apache.thrift.protocol.TField USER_DN_FIELD_DESC = new org.apache.thrift.protocol.TField("userDN", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField GENERATE_CERT_FIELD_DESC = new org.apache.thrift.protocol.TField("generateCert", org.apache.thrift.protocol.TType.BOOL, (short)10);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -80,6 +82,8 @@ import org.slf4j.LoggerFactory;
   private AdvancedOutputDataHandling advanceOutputDataHandling; // optional
   private QualityOfServiceParams qosParams; // optional
   private boolean throttleResources; // optional
+  private String userDN; // optional
+  private boolean generateCert; // 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 {
@@ -90,7 +94,9 @@ import org.slf4j.LoggerFactory;
     ADVANCE_INPUT_DATA_HANDLING((short)5, "advanceInputDataHandling"),
     ADVANCE_OUTPUT_DATA_HANDLING((short)6, "advanceOutputDataHandling"),
     QOS_PARAMS((short)7, "qosParams"),
-    THROTTLE_RESOURCES((short)8, "throttleResources");
+    THROTTLE_RESOURCES((short)8, "throttleResources"),
+    USER_DN((short)9, "userDN"),
+    GENERATE_CERT((short)10, "generateCert");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -121,6 +127,10 @@ import org.slf4j.LoggerFactory;
           return QOS_PARAMS;
         case 8: // THROTTLE_RESOURCES
           return THROTTLE_RESOURCES;
+        case 9: // USER_DN
+          return USER_DN;
+        case 10: // GENERATE_CERT
+          return GENERATE_CERT;
         default:
           return null;
       }
@@ -165,8 +175,9 @@ import org.slf4j.LoggerFactory;
   private static final int __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID = 1;
   private static final int __SHAREEXPERIMENTPUBLICLY_ISSET_ID = 2;
   private static final int __THROTTLERESOURCES_ISSET_ID = 3;
+  private static final int __GENERATECERT_ISSET_ID = 4;
   private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.SHARE_EXPERIMENT_PUBLICLY,_Fields.COMPUTATIONAL_RESOURCE_SCHEDULING,_Fields.ADVANCE_INPUT_DATA_HANDLING,_Fields.ADVANCE_OUTPUT_DATA_HANDLING,_Fields.QOS_PARAMS,_Fields.THROTTLE_RESOURCES};
+  private _Fields optionals[] = {_Fields.SHARE_EXPERIMENT_PUBLICLY,_Fields.COMPUTATIONAL_RESOURCE_SCHEDULING,_Fields.ADVANCE_INPUT_DATA_HANDLING,_Fields.ADVANCE_OUTPUT_DATA_HANDLING,_Fields.QOS_PARAMS,_Fields.THROTTLE_RESOURCES,_Fields.USER_DN,_Fields.GENERATE_CERT};
   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,6 +197,10 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, QualityOfServiceParams.class)));
     tmpMap.put(_Fields.THROTTLE_RESOURCES, new org.apache.thrift.meta_data.FieldMetaData("throttleResources", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.USER_DN, new org.apache.thrift.meta_data.FieldMetaData("userDN", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GENERATE_CERT, new org.apache.thrift.meta_data.FieldMetaData("generateCert", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserConfigurationData.class, metaDataMap);
   }
@@ -199,6 +214,8 @@ import org.slf4j.LoggerFactory;
 
     this.throttleResources = false;
 
+    this.generateCert = false;
+
   }
 
   public UserConfigurationData(
@@ -233,6 +250,10 @@ import org.slf4j.LoggerFactory;
       this.qosParams = new QualityOfServiceParams(other.qosParams);
     }
     this.throttleResources = other.throttleResources;
+    if (other.isSetUserDN()) {
+      this.userDN = other.userDN;
+    }
+    this.generateCert = other.generateCert;
   }
 
   public UserConfigurationData deepCopy() {
@@ -253,6 +274,9 @@ import org.slf4j.LoggerFactory;
     this.qosParams = null;
     this.throttleResources = false;
 
+    this.userDN = null;
+    this.generateCert = false;
+
   }
 
   public boolean isAiravataAutoSchedule() {
@@ -435,6 +459,51 @@ import org.slf4j.LoggerFactory;
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __THROTTLERESOURCES_ISSET_ID, value);
   }
 
+  public String getUserDN() {
+    return this.userDN;
+  }
+
+  public void setUserDN(String userDN) {
+    this.userDN = userDN;
+  }
+
+  public void unsetUserDN() {
+    this.userDN = null;
+  }
+
+  /** Returns true if field userDN is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserDN() {
+    return this.userDN != null;
+  }
+
+  public void setUserDNIsSet(boolean value) {
+    if (!value) {
+      this.userDN = null;
+    }
+  }
+
+  public boolean isGenerateCert() {
+    return this.generateCert;
+  }
+
+  public void setGenerateCert(boolean generateCert) {
+    this.generateCert = generateCert;
+    setGenerateCertIsSet(true);
+  }
+
+  public void unsetGenerateCert() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __GENERATECERT_ISSET_ID);
+  }
+
+  /** Returns true if field generateCert is set (has been assigned a value) and false otherwise */
+  public boolean isSetGenerateCert() {
+    return EncodingUtils.testBit(__isset_bitfield, __GENERATECERT_ISSET_ID);
+  }
+
+  public void setGenerateCertIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __GENERATECERT_ISSET_ID, value);
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case AIRAVATA_AUTO_SCHEDULE:
@@ -501,6 +570,22 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case USER_DN:
+      if (value == null) {
+        unsetUserDN();
+      } else {
+        setUserDN((String)value);
+      }
+      break;
+
+    case GENERATE_CERT:
+      if (value == null) {
+        unsetGenerateCert();
+      } else {
+        setGenerateCert((Boolean)value);
+      }
+      break;
+
     }
   }
 
@@ -530,6 +615,12 @@ import org.slf4j.LoggerFactory;
     case THROTTLE_RESOURCES:
       return Boolean.valueOf(isThrottleResources());
 
+    case USER_DN:
+      return getUserDN();
+
+    case GENERATE_CERT:
+      return Boolean.valueOf(isGenerateCert());
+
     }
     throw new IllegalStateException();
   }
@@ -557,6 +648,10 @@ import org.slf4j.LoggerFactory;
       return isSetQosParams();
     case THROTTLE_RESOURCES:
       return isSetThrottleResources();
+    case USER_DN:
+      return isSetUserDN();
+    case GENERATE_CERT:
+      return isSetGenerateCert();
     }
     throw new IllegalStateException();
   }
@@ -646,6 +741,24 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
+    boolean this_present_userDN = true && this.isSetUserDN();
+    boolean that_present_userDN = true && that.isSetUserDN();
+    if (this_present_userDN || that_present_userDN) {
+      if (!(this_present_userDN && that_present_userDN))
+        return false;
+      if (!this.userDN.equals(that.userDN))
+        return false;
+    }
+
+    boolean this_present_generateCert = true && this.isSetGenerateCert();
+    boolean that_present_generateCert = true && that.isSetGenerateCert();
+    if (this_present_generateCert || that_present_generateCert) {
+      if (!(this_present_generateCert && that_present_generateCert))
+        return false;
+      if (this.generateCert != that.generateCert)
+        return false;
+    }
+
     return true;
   }
 
@@ -742,6 +855,26 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetUserDN()).compareTo(other.isSetUserDN());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserDN()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userDN, other.userDN);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGenerateCert()).compareTo(other.isSetGenerateCert());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGenerateCert()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.generateCert, other.generateCert);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -821,6 +954,22 @@ import org.slf4j.LoggerFactory;
       sb.append(this.throttleResources);
       first = false;
     }
+    if (isSetUserDN()) {
+      if (!first) sb.append(", ");
+      sb.append("userDN:");
+      if (this.userDN == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userDN);
+      }
+      first = false;
+    }
+    if (isSetGenerateCert()) {
+      if (!first) sb.append(", ");
+      sb.append("generateCert:");
+      sb.append(this.generateCert);
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -954,6 +1103,22 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 9: // USER_DN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userDN = iprot.readString();
+              struct.setUserDNIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // GENERATE_CERT
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.generateCert = iprot.readBool();
+              struct.setGenerateCertIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -1011,6 +1176,18 @@ import org.slf4j.LoggerFactory;
         oprot.writeBool(struct.throttleResources);
         oprot.writeFieldEnd();
       }
+      if (struct.userDN != null) {
+        if (struct.isSetUserDN()) {
+          oprot.writeFieldBegin(USER_DN_FIELD_DESC);
+          oprot.writeString(struct.userDN);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetGenerateCert()) {
+        oprot.writeFieldBegin(GENERATE_CERT_FIELD_DESC);
+        oprot.writeBool(struct.generateCert);
+        oprot.writeFieldEnd();
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -1049,7 +1226,13 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetThrottleResources()) {
         optionals.set(5);
       }
-      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetUserDN()) {
+        optionals.set(6);
+      }
+      if (struct.isSetGenerateCert()) {
+        optionals.set(7);
+      }
+      oprot.writeBitSet(optionals, 8);
       if (struct.isSetShareExperimentPublicly()) {
         oprot.writeBool(struct.shareExperimentPublicly);
       }
@@ -1068,6 +1251,12 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetThrottleResources()) {
         oprot.writeBool(struct.throttleResources);
       }
+      if (struct.isSetUserDN()) {
+        oprot.writeString(struct.userDN);
+      }
+      if (struct.isSetGenerateCert()) {
+        oprot.writeBool(struct.generateCert);
+      }
     }
 
     @Override
@@ -1077,7 +1266,7 @@ import org.slf4j.LoggerFactory;
       struct.setAiravataAutoScheduleIsSet(true);
       struct.overrideManualScheduledParams = iprot.readBool();
       struct.setOverrideManualScheduledParamsIsSet(true);
-      BitSet incoming = iprot.readBitSet(6);
+      BitSet incoming = iprot.readBitSet(8);
       if (incoming.get(0)) {
         struct.shareExperimentPublicly = iprot.readBool();
         struct.setShareExperimentPubliclyIsSet(true);
@@ -1106,6 +1295,14 @@ import org.slf4j.LoggerFactory;
         struct.throttleResources = iprot.readBool();
         struct.setThrottleResourcesIsSet(true);
       }
+      if (incoming.get(6)) {
+        struct.userDN = iprot.readString();
+        struct.setUserDNIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.generateCert = iprot.readBool();
+        struct.setGenerateCertIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/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 9bf1b72..d91210c 100644
--- a/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
@@ -329,36 +329,17 @@ struct GlobusJobSubmission {
 }
 
 /**
- * AuthenticationMode
- *
- * SERVER_ISSUED: use CA credentials to generate a certificate based on user name. 
- * server properties. 
- * MYPROXY_ISSUED: rely on GSI method implementation already provided 
- * by Airavata security libs. 
-*/
-enum AuthenticationMode {
-    SERVER_ISSUED,
-    MYPROXY_ISSUED
-}
-
-
-/**
  * Unicore Job Submission
  *
  * unicoreEndPointURL:
  *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
  * authenticationMode
  *  The authenticationMode defines the way certificate is fetched. 
- * userDN
- *  This attribute captures the userDN used for launching jobs and create temporary storages. The attribute should be 
- *  provided if the authentication mode is set as SERVER_ISSUED.
 */
 struct UnicoreJobSubmission {
     1: required string jobSubmissionInterfaceId = DEFAULT_ID,
     2: required SecurityProtocol securityProtocol,
     3: required string unicoreEndPointURL,
-    4: required AuthenticationMode authenticationMode,
-    5: optional string userDN
 }
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/airavata-api/thrift-interface-descriptions/experimentModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/experimentModel.thrift b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
index 0801695..7f76f90 100644
--- a/airavata-api/thrift-interface-descriptions/experimentModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
@@ -232,6 +232,8 @@ struct QualityOfServiceParams {
     3: optional i32 numberofRetries
 }
 
+
+
 /**
  * A structure holding the experiment configuration.
  *
@@ -244,8 +246,10 @@ struct UserConfigurationData {
     4: optional ComputationalResourceScheduling computationalResourceScheduling,
     5: optional AdvancedInputDataHandling advanceInputDataHandling,
     6: optional AdvancedOutputDataHandling advanceOutputDataHandling,
-    7: optional QualityOfServiceParams qosParams
-    8: optional bool throttleResources = 0
+    7: optional QualityOfServiceParams qosParams,
+    8: optional bool throttleResources = 0,
+    9: optional string userDN,
+    10: optional bool generateCert = 0 
 }
 
 struct ErrorDetails {

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
index 4e6b7ae..75b0987 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
@@ -209,7 +209,6 @@ public class ComputeResourceImpl implements ComputeResource {
              unicoreJobSubmission.setJobSubmissionInterfaceId(AppCatalogUtils.getID("UNICORE"));
              UnicoreJobSubmissionResource resource = AppCatalogThriftConversion.getUnicoreJobSubmission(unicoreJobSubmission);
              resource.setUnicoreEndpointUrl(unicoreJobSubmission.getUnicoreEndPointURL());
-             resource.setAuthenticationMode(unicoreJobSubmission.getAuthenticationMode().toString());
              if (unicoreJobSubmission.getSecurityProtocol() !=  null){
                  resource.setSecurityProtocol(unicoreJobSubmission.getSecurityProtocol().toString());
              }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/UnicoreJobSubmission.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/UnicoreJobSubmission.java
index 626fee4..3655620 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/UnicoreJobSubmission.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/UnicoreJobSubmission.java
@@ -38,19 +38,6 @@ public class UnicoreJobSubmission {
     @Column(name = "UNICORE_ENDPOINT_URL")
     private String unicoreEndpointUrl;
     
-    @Column(name = "AUTHENTICATION_MODE")
-    private String authenticationMode;
-
-
-    public String getAuthenticationMode() {
-		return authenticationMode;
-	}
-
-    public void setAuthenticationMode(String authenticationMode) {
-		this.authenticationMode = authenticationMode;
-	}
-
-    
     public String getUnicoreEndpointUrl() {
 		return unicoreEndpointUrl;
 	}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
index 5b8695a..6887f8a 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
@@ -125,7 +125,7 @@ public abstract class AbstractResource implements Resource {
         public static final String SUBMISSION_ID = "submissionID";
         public static final String SECURITY_PROTOCAL = "securityProtocol";
         public static final String UNICORE_ENDPOINT_URL = "unicoreEndpointUrl";
-        public static final String AUTHENTICATION_MODE = "authenticationMode";
+        
     }
 
     public final class UnicoreDataMovementConstants {

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/UnicoreJobSubmissionResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/UnicoreJobSubmissionResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/UnicoreJobSubmissionResource.java
index df401ad..4c772e1 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/UnicoreJobSubmissionResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/UnicoreJobSubmissionResource.java
@@ -45,7 +45,6 @@ public class UnicoreJobSubmissionResource extends AbstractResource {
 	private String jobSubmissionInterfaceId;
 	private String securityProtocol;
 	private String unicoreEndpointUrl;
-	private String authenticationMode;
 
 	public void remove(Object identifier) throws AppCatalogException {
 	        EntityManager em = null;
@@ -137,19 +136,6 @@ public class UnicoreJobSubmissionResource extends AbstractResource {
 	                        unicoreSubmissionResourceList.add(unicoreJobSubmissionResource);
 	                    }
 	                }
-	            } else if (fieldName.equals(UnicoreJobSubmissionConstants.AUTHENTICATION_MODE)) {
-	                generator.setParameter(UnicoreJobSubmissionConstants.AUTHENTICATION_MODE, value);
-	                q = generator.selectQuery(em);
-	                results = q.getResultList();
-	                if (results.size() != 0) {
-	                    for (Object result : results) {
-	                        UnicoreJobSubmission unicoreJobSubmission = (UnicoreJobSubmission) result;
-	                        UnicoreJobSubmissionResource unicoreJobSubmissionResource =
-	                                (UnicoreJobSubmissionResource) AppCatalogJPAUtils.getResource(
-	                                        AppCatalogResourceType.UNICORE_JOB_SUBMISSION, unicoreJobSubmission);
-	                        unicoreSubmissionResourceList.add(unicoreJobSubmissionResource);
-	                    }
-	                }
 	            }        
 	            else {
 	                em.getTransaction().commit();
@@ -270,14 +256,13 @@ public class UnicoreJobSubmissionResource extends AbstractResource {
                 existingUnicoreSubmission.setSubmissionID(jobSubmissionInterfaceId);;
                 existingUnicoreSubmission.setUnicoreEndpointUrl(unicoreEndpointUrl);
                 existingUnicoreSubmission.setSecurityProtocol(securityProtocol);
-                existingUnicoreSubmission.setAuthenticationMode(authenticationMode);
+
                 em.merge(existingUnicoreSubmission);
             } else {
             	UnicoreJobSubmission unicoreJobSubmission = new UnicoreJobSubmission();
                 unicoreJobSubmission.setSubmissionID(jobSubmissionInterfaceId);
                 unicoreJobSubmission.setUnicoreEndpointUrl(unicoreEndpointUrl);
                 unicoreJobSubmission.setSecurityProtocol(securityProtocol);
-                unicoreJobSubmission.setAuthenticationMode(authenticationMode);
                 em.persist(unicoreJobSubmission);
             }
             em.getTransaction().commit();
@@ -339,15 +324,5 @@ public class UnicoreJobSubmissionResource extends AbstractResource {
 	public void setUnicoreEndpointUrl(String unicoreEndpointUrl) {
 		this.unicoreEndpointUrl = unicoreEndpointUrl;
 	}
-
-	
-     public String getAuthenticationMode() {
-		return authenticationMode;
-	}
-
-	public void setAuthenticationMode(String authenticationMode) {
-		this.authenticationMode = authenticationMode;
-	}
-
 	
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
index 0ee1ad0..3a9b6ed 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
@@ -533,7 +533,6 @@ public class AppCatalogJPAUtils {
             submissionResource.setjobSubmissionInterfaceId(o.getSubmissionID());
             submissionResource.setUnicoreEndpointUrl(o.getUnicoreEndpointUrl());
             submissionResource.setSecurityProtocol(o.getSecurityProtocol());
-            submissionResource.setAuthenticationMode(o.getAuthenticationMode());
         }
         return submissionResource;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
index 941b844..cad9c95 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
@@ -237,7 +237,6 @@ public class AppCatalogThriftConversion {
             resource.setSecurityProtocol(submission.getSecurityProtocol().toString());
         }
         resource.setUnicoreEndpointUrl(submission.getUnicoreEndPointURL());
-        resource.setAuthenticationMode(submission.getAuthenticationMode().toString());
         return resource;
     }
 
@@ -338,7 +337,6 @@ public class AppCatalogThriftConversion {
     	UnicoreJobSubmission unicoreJobSubmission = new UnicoreJobSubmission();
     	unicoreJobSubmission.setUnicoreEndPointURL(submission.getUnicoreEndpointUrl());
     	unicoreJobSubmission.setJobSubmissionInterfaceId(submission.getjobSubmissionInterfaceId());
-    	unicoreJobSubmission.setAuthenticationMode(AuthenticationMode.valueOf(submission.getAuthenticationMode()));
         if (submission.getSecurityProtocol() != null){
             unicoreJobSubmission.setSecurityProtocol(SecurityProtocol.valueOf(submission.getSecurityProtocol()));
         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
index 5396541..4e28e04 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
@@ -79,7 +79,6 @@ CREATE TABLE UNICORE_SUBMISSION
          SUBMISSION_ID VARCHAR(255),
          SECURITY_PROTOCAL VARCHAR(255),
          UNICORE_ENDPOINT_URL VARCHAR(255),
-         AUTHENTICATION_MODE VARCHAR(255),
          PRIMARY KEY(SUBMISSION_ID)
 );
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
index 98f27db..cfb8022 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
@@ -91,7 +91,6 @@ CREATE TABLE UNICORE_SUBMISSION
          SUBMISSION_ID VARCHAR(255),
          SECURITY_PROTOCAL VARCHAR(255),
          UNICORE_ENDPOINT_URL VARCHAR(255),
-         AUTHENTICATION_MODE VARCHAR(255),
          PRIMARY KEY(SUBMISSION_ID)
 );
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a4fb4891/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java
index d490269..c75ea55 100644
--- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java
+++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java
@@ -190,10 +190,17 @@ public class BESProvider extends AbstractProvider implements GFacProvider,
                         + activityStatus.getFault().getFaultstring()
                         + "\n EXITCODE: " + activityStatus.getExitCode();
                 log.info(error);
-                
+  
+                JobState applicationJobStatus = JobState.FAILED;
+                String jobStatusMessage = "Status of job " + jobId + "is "
+                        + applicationJobStatus;
+                jobExecutionContext.getNotifier().publish(
+                        new StatusChangeEvent(jobStatusMessage));
+                GFacUtils.updateJobStatus(jobExecutionContext, jobDetails, applicationJobStatus);
                 try {Thread.sleep(5000);} catch (InterruptedException e) {}
                 
                 //What if job is failed before execution and there are not stdouts generated yet?
+                log.debug("Downloading any standard output and error files, if they were produced.");
                 dt.downloadStdOuts();
                 
             } else if (activityStatus.getState() == ActivityStateEnumeration.CANCELLED) {
@@ -236,6 +243,7 @@ public class BESProvider extends AbstractProvider implements GFacProvider,
         }
 
     }
+	
 
 	private JobState getApplicationJobStatus(ActivityStatusType activityStatus) {
 		if (activityStatus == null) {