You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/09/28 19:58:25 UTC

[03/11] airavata git commit: data storage preference related changes to app catalog

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 f1d7437..4b99185 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
@@ -1125,6 +1125,13 @@ class SSHJobSubmission:
   sshPort:
    If a non-default port needs to used, specify it.
 
+  batchQueueEmailSenders:
+   If a resource always sends the monitoring from a specific address, specify the
+    full email address. If a resource sends emails from multiple addresses (
+     example: based on the submitted login node) then use the wildchar * to indicate
+     the same. Example: *@*.example.com or *@example.com
+
+
   Attributes:
    - jobSubmissionInterfaceId
    - securityProtocol
@@ -1132,6 +1139,7 @@ class SSHJobSubmission:
    - alternativeSSHHostName
    - sshPort
    - monitorMode
+   - batchQueueEmailSenders
   """
 
   thrift_spec = (
@@ -1142,15 +1150,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.LIST, 'batchQueueEmailSenders', (TType.STRING,None), 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, batchQueueEmailSenders=None,):
     self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
     self.securityProtocol = securityProtocol
     self.resourceJobManager = resourceJobManager
     self.alternativeSSHHostName = alternativeSSHHostName
     self.sshPort = sshPort
     self.monitorMode = monitorMode
+    self.batchQueueEmailSenders = batchQueueEmailSenders
 
   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:
@@ -1192,6 +1202,16 @@ class SSHJobSubmission:
           self.monitorMode = iprot.readI32();
         else:
           iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.LIST:
+          self.batchQueueEmailSenders = []
+          (_etype19, _size16) = iprot.readListBegin()
+          for _i20 in xrange(_size16):
+            _elem21 = iprot.readString();
+            self.batchQueueEmailSenders.append(_elem21)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -1226,6 +1246,13 @@ class SSHJobSubmission:
       oprot.writeFieldBegin('monitorMode', TType.I32, 6)
       oprot.writeI32(self.monitorMode)
       oprot.writeFieldEnd()
+    if self.batchQueueEmailSenders is not None:
+      oprot.writeFieldBegin('batchQueueEmailSenders', TType.LIST, 7)
+      oprot.writeListBegin(TType.STRING, len(self.batchQueueEmailSenders))
+      for iter22 in self.batchQueueEmailSenders:
+        oprot.writeString(iter22)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -1247,6 +1274,7 @@ class SSHJobSubmission:
     value = (value * 31) ^ hash(self.alternativeSSHHostName)
     value = (value * 31) ^ hash(self.sshPort)
     value = (value * 31) ^ hash(self.monitorMode)
+    value = (value * 31) ^ hash(self.batchQueueEmailSenders)
     return value
 
   def __repr__(self):
@@ -1302,10 +1330,10 @@ class GlobusJobSubmission:
       elif fid == 3:
         if ftype == TType.LIST:
           self.globusGateKeeperEndPoint = []
-          (_etype19, _size16) = iprot.readListBegin()
-          for _i20 in xrange(_size16):
-            _elem21 = iprot.readString();
-            self.globusGateKeeperEndPoint.append(_elem21)
+          (_etype26, _size23) = iprot.readListBegin()
+          for _i27 in xrange(_size23):
+            _elem28 = iprot.readString();
+            self.globusGateKeeperEndPoint.append(_elem28)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -1330,8 +1358,8 @@ class GlobusJobSubmission:
     if self.globusGateKeeperEndPoint is not None:
       oprot.writeFieldBegin('globusGateKeeperEndPoint', TType.LIST, 3)
       oprot.writeListBegin(TType.STRING, len(self.globusGateKeeperEndPoint))
-      for iter22 in self.globusGateKeeperEndPoint:
-        oprot.writeString(iter22)
+      for iter29 in self.globusGateKeeperEndPoint:
+        oprot.writeString(iter29)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -1919,20 +1947,20 @@ class ComputeResourceDescription:
       elif fid == 3:
         if ftype == TType.LIST:
           self.hostAliases = []
-          (_etype26, _size23) = iprot.readListBegin()
-          for _i27 in xrange(_size23):
-            _elem28 = iprot.readString();
-            self.hostAliases.append(_elem28)
+          (_etype33, _size30) = iprot.readListBegin()
+          for _i34 in xrange(_size30):
+            _elem35 = iprot.readString();
+            self.hostAliases.append(_elem35)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.LIST:
           self.ipAddresses = []
-          (_etype32, _size29) = iprot.readListBegin()
-          for _i33 in xrange(_size29):
-            _elem34 = iprot.readString();
-            self.ipAddresses.append(_elem34)
+          (_etype39, _size36) = iprot.readListBegin()
+          for _i40 in xrange(_size36):
+            _elem41 = iprot.readString();
+            self.ipAddresses.append(_elem41)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -1949,44 +1977,44 @@ class ComputeResourceDescription:
       elif fid == 7:
         if ftype == TType.LIST:
           self.batchQueues = []
-          (_etype38, _size35) = iprot.readListBegin()
-          for _i39 in xrange(_size35):
-            _elem40 = BatchQueue()
-            _elem40.read(iprot)
-            self.batchQueues.append(_elem40)
+          (_etype45, _size42) = iprot.readListBegin()
+          for _i46 in xrange(_size42):
+            _elem47 = BatchQueue()
+            _elem47.read(iprot)
+            self.batchQueues.append(_elem47)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.MAP:
           self.fileSystems = {}
-          (_ktype42, _vtype43, _size41 ) = iprot.readMapBegin()
-          for _i45 in xrange(_size41):
-            _key46 = iprot.readI32();
-            _val47 = iprot.readString();
-            self.fileSystems[_key46] = _val47
+          (_ktype49, _vtype50, _size48 ) = iprot.readMapBegin()
+          for _i52 in xrange(_size48):
+            _key53 = iprot.readI32();
+            _val54 = iprot.readString();
+            self.fileSystems[_key53] = _val54
           iprot.readMapEnd()
         else:
           iprot.skip(ftype)
       elif fid == 9:
         if ftype == TType.LIST:
           self.jobSubmissionInterfaces = []
-          (_etype51, _size48) = iprot.readListBegin()
-          for _i52 in xrange(_size48):
-            _elem53 = JobSubmissionInterface()
-            _elem53.read(iprot)
-            self.jobSubmissionInterfaces.append(_elem53)
+          (_etype58, _size55) = iprot.readListBegin()
+          for _i59 in xrange(_size55):
+            _elem60 = JobSubmissionInterface()
+            _elem60.read(iprot)
+            self.jobSubmissionInterfaces.append(_elem60)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 10:
         if ftype == TType.LIST:
           self.dataMovementInterfaces = []
-          (_etype57, _size54) = iprot.readListBegin()
-          for _i58 in xrange(_size54):
-            _elem59 = DataMovementInterface()
-            _elem59.read(iprot)
-            self.dataMovementInterfaces.append(_elem59)
+          (_etype64, _size61) = iprot.readListBegin()
+          for _i65 in xrange(_size61):
+            _elem66 = DataMovementInterface()
+            _elem66.read(iprot)
+            self.dataMovementInterfaces.append(_elem66)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -2016,15 +2044,15 @@ class ComputeResourceDescription:
     if self.hostAliases is not None:
       oprot.writeFieldBegin('hostAliases', TType.LIST, 3)
       oprot.writeListBegin(TType.STRING, len(self.hostAliases))
-      for iter60 in self.hostAliases:
-        oprot.writeString(iter60)
+      for iter67 in self.hostAliases:
+        oprot.writeString(iter67)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.ipAddresses is not None:
       oprot.writeFieldBegin('ipAddresses', TType.LIST, 4)
       oprot.writeListBegin(TType.STRING, len(self.ipAddresses))
-      for iter61 in self.ipAddresses:
-        oprot.writeString(iter61)
+      for iter68 in self.ipAddresses:
+        oprot.writeString(iter68)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.resourceDescription is not None:
@@ -2038,30 +2066,30 @@ class ComputeResourceDescription:
     if self.batchQueues is not None:
       oprot.writeFieldBegin('batchQueues', TType.LIST, 7)
       oprot.writeListBegin(TType.STRUCT, len(self.batchQueues))
-      for iter62 in self.batchQueues:
-        iter62.write(oprot)
+      for iter69 in self.batchQueues:
+        iter69.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.fileSystems is not None:
       oprot.writeFieldBegin('fileSystems', TType.MAP, 8)
       oprot.writeMapBegin(TType.I32, TType.STRING, len(self.fileSystems))
-      for kiter63,viter64 in self.fileSystems.items():
-        oprot.writeI32(kiter63)
-        oprot.writeString(viter64)
+      for kiter70,viter71 in self.fileSystems.items():
+        oprot.writeI32(kiter70)
+        oprot.writeString(viter71)
       oprot.writeMapEnd()
       oprot.writeFieldEnd()
     if self.jobSubmissionInterfaces is not None:
       oprot.writeFieldBegin('jobSubmissionInterfaces', TType.LIST, 9)
       oprot.writeListBegin(TType.STRUCT, len(self.jobSubmissionInterfaces))
-      for iter65 in self.jobSubmissionInterfaces:
-        iter65.write(oprot)
+      for iter72 in self.jobSubmissionInterfaces:
+        iter72.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.dataMovementInterfaces is not None:
       oprot.writeFieldBegin('dataMovementInterfaces', TType.LIST, 10)
       oprot.writeListBegin(TType.STRUCT, len(self.dataMovementInterfaces))
-      for iter66 in self.dataMovementInterfaces:
-        iter66.write(oprot)
+      for iter73 in self.dataMovementInterfaces:
+        iter73.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.maxMemoryPerNode is not None:

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
index da70436..9799e52 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
@@ -49,6 +49,10 @@ class ComputeResourcePreference:
      allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
      account to be used has to be added to the allocation.
 
+  resourceSpecificCredentialStoreToken:
+   Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
+    default credential store.
+
 
   Attributes:
    - computeResourceId
@@ -59,6 +63,7 @@ class ComputeResourcePreference:
    - preferredBatchQueue
    - scratchLocation
    - allocationProjectNumber
+   - resourceSpecificCredentialStoreToken
   """
 
   thrift_spec = (
@@ -71,9 +76,10 @@ class ComputeResourcePreference:
     (6, TType.STRING, 'preferredBatchQueue', None, None, ), # 6
     (7, TType.STRING, 'scratchLocation', None, None, ), # 7
     (8, TType.STRING, 'allocationProjectNumber', None, None, ), # 8
+    (9, TType.STRING, 'resourceSpecificCredentialStoreToken', None, None, ), # 9
   )
 
-  def __init__(self, computeResourceId=None, overridebyAiravata=thrift_spec[2][4], loginUserName=None, preferredJobSubmissionProtocol=None, preferredDataMovementProtocol=None, preferredBatchQueue=None, scratchLocation=None, allocationProjectNumber=None,):
+  def __init__(self, computeResourceId=None, overridebyAiravata=thrift_spec[2][4], loginUserName=None, preferredJobSubmissionProtocol=None, preferredDataMovementProtocol=None, preferredBatchQueue=None, scratchLocation=None, allocationProjectNumber=None, resourceSpecificCredentialStoreToken=None,):
     self.computeResourceId = computeResourceId
     self.overridebyAiravata = overridebyAiravata
     self.loginUserName = loginUserName
@@ -82,6 +88,7 @@ class ComputeResourcePreference:
     self.preferredBatchQueue = preferredBatchQueue
     self.scratchLocation = scratchLocation
     self.allocationProjectNumber = allocationProjectNumber
+    self.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken
 
   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:
@@ -132,6 +139,11 @@ class ComputeResourcePreference:
           self.allocationProjectNumber = iprot.readString();
         else:
           iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.STRING:
+          self.resourceSpecificCredentialStoreToken = iprot.readString();
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -174,6 +186,10 @@ class ComputeResourcePreference:
       oprot.writeFieldBegin('allocationProjectNumber', TType.STRING, 8)
       oprot.writeString(self.allocationProjectNumber)
       oprot.writeFieldEnd()
+    if self.resourceSpecificCredentialStoreToken is not None:
+      oprot.writeFieldBegin('resourceSpecificCredentialStoreToken', TType.STRING, 9)
+      oprot.writeString(self.resourceSpecificCredentialStoreToken)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -195,6 +211,113 @@ class ComputeResourcePreference:
     value = (value * 31) ^ hash(self.preferredBatchQueue)
     value = (value * 31) ^ hash(self.scratchLocation)
     value = (value * 31) ^ hash(self.allocationProjectNumber)
+    value = (value * 31) ^ hash(self.resourceSpecificCredentialStoreToken)
+    return value
+
+  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 DataStoragePreference:
+  """
+  Attributes:
+   - dataMovememtResourceId
+   - loginUserName
+   - fileSystemRootLocation
+   - resourceSpecificCredentialStoreToken
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'dataMovememtResourceId', None, None, ), # 1
+    (2, TType.STRING, 'loginUserName', None, None, ), # 2
+    (3, TType.STRING, 'fileSystemRootLocation', None, None, ), # 3
+    (4, TType.STRING, 'resourceSpecificCredentialStoreToken', None, None, ), # 4
+  )
+
+  def __init__(self, dataMovememtResourceId=None, loginUserName=None, fileSystemRootLocation=None, resourceSpecificCredentialStoreToken=None,):
+    self.dataMovememtResourceId = dataMovememtResourceId
+    self.loginUserName = loginUserName
+    self.fileSystemRootLocation = fileSystemRootLocation
+    self.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken
+
+  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.dataMovememtResourceId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.loginUserName = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.fileSystemRootLocation = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.resourceSpecificCredentialStoreToken = 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('DataStoragePreference')
+    if self.dataMovememtResourceId is not None:
+      oprot.writeFieldBegin('dataMovememtResourceId', TType.STRING, 1)
+      oprot.writeString(self.dataMovememtResourceId)
+      oprot.writeFieldEnd()
+    if self.loginUserName is not None:
+      oprot.writeFieldBegin('loginUserName', TType.STRING, 2)
+      oprot.writeString(self.loginUserName)
+      oprot.writeFieldEnd()
+    if self.fileSystemRootLocation is not None:
+      oprot.writeFieldBegin('fileSystemRootLocation', TType.STRING, 3)
+      oprot.writeString(self.fileSystemRootLocation)
+      oprot.writeFieldEnd()
+    if self.resourceSpecificCredentialStoreToken is not None:
+      oprot.writeFieldBegin('resourceSpecificCredentialStoreToken', TType.STRING, 4)
+      oprot.writeString(self.resourceSpecificCredentialStoreToken)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.dataMovememtResourceId is None:
+      raise TProtocol.TProtocolException(message='Required field dataMovememtResourceId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.dataMovememtResourceId)
+    value = (value * 31) ^ hash(self.loginUserName)
+    value = (value * 31) ^ hash(self.fileSystemRootLocation)
+    value = (value * 31) ^ hash(self.resourceSpecificCredentialStoreToken)
     return value
 
   def __repr__(self):
@@ -213,27 +336,35 @@ class GatewayResourceProfile:
   Gateway Resource Profile
 
   gatewayID:
-    Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+   Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+
+  credentialStoreToken:
+   Gateway's defualt credential store token.
 
   computeResourcePreferences:
    List of resource preferences for each of the registered compute resources.
 
 
-
   Attributes:
    - gatewayID
+   - credentialStoreToken
    - computeResourcePreferences
+   - dataStoragePreferences
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRING, 'gatewayID', None, None, ), # 1
-    (2, TType.LIST, 'computeResourcePreferences', (TType.STRUCT,(ComputeResourcePreference, ComputeResourcePreference.thrift_spec)), None, ), # 2
+    (2, TType.STRING, 'credentialStoreToken', None, None, ), # 2
+    (3, TType.LIST, 'computeResourcePreferences', (TType.STRUCT,(ComputeResourcePreference, ComputeResourcePreference.thrift_spec)), None, ), # 3
+    (4, TType.LIST, 'dataStoragePreferences', (TType.STRUCT,(DataStoragePreference, DataStoragePreference.thrift_spec)), None, ), # 4
   )
 
-  def __init__(self, gatewayID=None, computeResourcePreferences=None,):
+  def __init__(self, gatewayID=None, credentialStoreToken=None, computeResourcePreferences=None, dataStoragePreferences=None,):
     self.gatewayID = gatewayID
+    self.credentialStoreToken = credentialStoreToken
     self.computeResourcePreferences = computeResourcePreferences
+    self.dataStoragePreferences = dataStoragePreferences
 
   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:
@@ -250,6 +381,11 @@ class GatewayResourceProfile:
         else:
           iprot.skip(ftype)
       elif fid == 2:
+        if ftype == TType.STRING:
+          self.credentialStoreToken = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
         if ftype == TType.LIST:
           self.computeResourcePreferences = []
           (_etype3, _size0) = iprot.readListBegin()
@@ -260,6 +396,17 @@ class GatewayResourceProfile:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.LIST:
+          self.dataStoragePreferences = []
+          (_etype9, _size6) = iprot.readListBegin()
+          for _i10 in xrange(_size6):
+            _elem11 = DataStoragePreference()
+            _elem11.read(iprot)
+            self.dataStoragePreferences.append(_elem11)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -274,11 +421,22 @@ class GatewayResourceProfile:
       oprot.writeFieldBegin('gatewayID', TType.STRING, 1)
       oprot.writeString(self.gatewayID)
       oprot.writeFieldEnd()
+    if self.credentialStoreToken is not None:
+      oprot.writeFieldBegin('credentialStoreToken', TType.STRING, 2)
+      oprot.writeString(self.credentialStoreToken)
+      oprot.writeFieldEnd()
     if self.computeResourcePreferences is not None:
-      oprot.writeFieldBegin('computeResourcePreferences', TType.LIST, 2)
+      oprot.writeFieldBegin('computeResourcePreferences', TType.LIST, 3)
       oprot.writeListBegin(TType.STRUCT, len(self.computeResourcePreferences))
-      for iter6 in self.computeResourcePreferences:
-        iter6.write(oprot)
+      for iter12 in self.computeResourcePreferences:
+        iter12.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.dataStoragePreferences is not None:
+      oprot.writeFieldBegin('dataStoragePreferences', TType.LIST, 4)
+      oprot.writeListBegin(TType.STRUCT, len(self.dataStoragePreferences))
+      for iter13 in self.dataStoragePreferences:
+        iter13.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -293,7 +451,9 @@ class GatewayResourceProfile:
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.gatewayID)
+    value = (value * 31) ^ hash(self.credentialStoreToken)
     value = (value * 31) ^ hash(self.computeResourcePreferences)
+    value = (value * 31) ^ hash(self.dataStoragePreferences)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
index 70fd2b6..28ee4cd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class Workflow implements org.apache.thrift.TBase<Workflow, Workflow._Fields>, java.io.Serializable, Cloneable, Comparable<Workflow> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Workflow");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
index 64d34cb..c63c833 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *  assigns to the environment variable "NAME" the value
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class ApplicationDeploymentDescription implements org.apache.thrift.TBase<ApplicationDeploymentDescription, ApplicationDeploymentDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationDeploymentDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationDeploymentDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
index d337b52..7f5eabb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  *    Descriprion of the Module
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class ApplicationModule implements org.apache.thrift.TBase<ApplicationModule, ApplicationModule._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationModule> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationModule");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
index 42d638a..86712ff 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * value:
  *   Value of the environment variable to set
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
index af4fcb2..f3fb846 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   Outputs generated from the application
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index 5f5d225..7644cf8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * maxRunTime:
  *  Maximum allowed run time in hours.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueue._Fields>, java.io.Serializable, Cloneable, Comparable<BatchQueue> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BatchQueue");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index b2b934c..a5fe2b6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmission, CloudJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<CloudJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CloudJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index 910cb89..bb9e8ed 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -80,7 +80,7 @@ import org.slf4j.LoggerFactory;
  *  Map of file systems type and the path.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
 
@@ -1327,13 +1327,13 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 3: // HOST_ALIASES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list26 = iprot.readListBegin();
-                struct.hostAliases = new ArrayList<String>(_list26.size);
-                String _elem27;
-                for (int _i28 = 0; _i28 < _list26.size; ++_i28)
+                org.apache.thrift.protocol.TList _list34 = iprot.readListBegin();
+                struct.hostAliases = new ArrayList<String>(_list34.size);
+                String _elem35;
+                for (int _i36 = 0; _i36 < _list34.size; ++_i36)
                 {
-                  _elem27 = iprot.readString();
-                  struct.hostAliases.add(_elem27);
+                  _elem35 = iprot.readString();
+                  struct.hostAliases.add(_elem35);
                 }
                 iprot.readListEnd();
               }
@@ -1345,13 +1345,13 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 4: // IP_ADDRESSES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list29 = iprot.readListBegin();
-                struct.ipAddresses = new ArrayList<String>(_list29.size);
-                String _elem30;
-                for (int _i31 = 0; _i31 < _list29.size; ++_i31)
+                org.apache.thrift.protocol.TList _list37 = iprot.readListBegin();
+                struct.ipAddresses = new ArrayList<String>(_list37.size);
+                String _elem38;
+                for (int _i39 = 0; _i39 < _list37.size; ++_i39)
                 {
-                  _elem30 = iprot.readString();
-                  struct.ipAddresses.add(_elem30);
+                  _elem38 = iprot.readString();
+                  struct.ipAddresses.add(_elem38);
                 }
                 iprot.readListEnd();
               }
@@ -1379,14 +1379,14 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 7: // BATCH_QUEUES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list32 = iprot.readListBegin();
-                struct.batchQueues = new ArrayList<BatchQueue>(_list32.size);
-                BatchQueue _elem33;
-                for (int _i34 = 0; _i34 < _list32.size; ++_i34)
+                org.apache.thrift.protocol.TList _list40 = iprot.readListBegin();
+                struct.batchQueues = new ArrayList<BatchQueue>(_list40.size);
+                BatchQueue _elem41;
+                for (int _i42 = 0; _i42 < _list40.size; ++_i42)
                 {
-                  _elem33 = new BatchQueue();
-                  _elem33.read(iprot);
-                  struct.batchQueues.add(_elem33);
+                  _elem41 = new BatchQueue();
+                  _elem41.read(iprot);
+                  struct.batchQueues.add(_elem41);
                 }
                 iprot.readListEnd();
               }
@@ -1398,15 +1398,15 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 8: // FILE_SYSTEMS
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map35 = iprot.readMapBegin();
-                struct.fileSystems = new HashMap<FileSystems,String>(2*_map35.size);
-                FileSystems _key36;
-                String _val37;
-                for (int _i38 = 0; _i38 < _map35.size; ++_i38)
+                org.apache.thrift.protocol.TMap _map43 = iprot.readMapBegin();
+                struct.fileSystems = new HashMap<FileSystems,String>(2*_map43.size);
+                FileSystems _key44;
+                String _val45;
+                for (int _i46 = 0; _i46 < _map43.size; ++_i46)
                 {
-                  _key36 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
-                  _val37 = iprot.readString();
-                  struct.fileSystems.put(_key36, _val37);
+                  _key44 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
+                  _val45 = iprot.readString();
+                  struct.fileSystems.put(_key44, _val45);
                 }
                 iprot.readMapEnd();
               }
@@ -1418,14 +1418,14 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 9: // JOB_SUBMISSION_INTERFACES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list39 = iprot.readListBegin();
-                struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list39.size);
-                JobSubmissionInterface _elem40;
-                for (int _i41 = 0; _i41 < _list39.size; ++_i41)
+                org.apache.thrift.protocol.TList _list47 = iprot.readListBegin();
+                struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list47.size);
+                JobSubmissionInterface _elem48;
+                for (int _i49 = 0; _i49 < _list47.size; ++_i49)
                 {
-                  _elem40 = new JobSubmissionInterface();
-                  _elem40.read(iprot);
-                  struct.jobSubmissionInterfaces.add(_elem40);
+                  _elem48 = new JobSubmissionInterface();
+                  _elem48.read(iprot);
+                  struct.jobSubmissionInterfaces.add(_elem48);
                 }
                 iprot.readListEnd();
               }
@@ -1437,14 +1437,14 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 10: // DATA_MOVEMENT_INTERFACES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list42 = iprot.readListBegin();
-                struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list42.size);
-                DataMovementInterface _elem43;
-                for (int _i44 = 0; _i44 < _list42.size; ++_i44)
+                org.apache.thrift.protocol.TList _list50 = iprot.readListBegin();
+                struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list50.size);
+                DataMovementInterface _elem51;
+                for (int _i52 = 0; _i52 < _list50.size; ++_i52)
                 {
-                  _elem43 = new DataMovementInterface();
-                  _elem43.read(iprot);
-                  struct.dataMovementInterfaces.add(_elem43);
+                  _elem51 = new DataMovementInterface();
+                  _elem51.read(iprot);
+                  struct.dataMovementInterfaces.add(_elem51);
                 }
                 iprot.readListEnd();
               }
@@ -1489,9 +1489,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(HOST_ALIASES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.hostAliases.size()));
-            for (String _iter45 : struct.hostAliases)
+            for (String _iter53 : struct.hostAliases)
             {
-              oprot.writeString(_iter45);
+              oprot.writeString(_iter53);
             }
             oprot.writeListEnd();
           }
@@ -1503,9 +1503,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(IP_ADDRESSES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.ipAddresses.size()));
-            for (String _iter46 : struct.ipAddresses)
+            for (String _iter54 : struct.ipAddresses)
             {
-              oprot.writeString(_iter46);
+              oprot.writeString(_iter54);
             }
             oprot.writeListEnd();
           }
@@ -1529,9 +1529,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(BATCH_QUEUES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.batchQueues.size()));
-            for (BatchQueue _iter47 : struct.batchQueues)
+            for (BatchQueue _iter55 : struct.batchQueues)
             {
-              _iter47.write(oprot);
+              _iter55.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1543,10 +1543,10 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(FILE_SYSTEMS_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, struct.fileSystems.size()));
-            for (Map.Entry<FileSystems, String> _iter48 : struct.fileSystems.entrySet())
+            for (Map.Entry<FileSystems, String> _iter56 : struct.fileSystems.entrySet())
             {
-              oprot.writeI32(_iter48.getKey().getValue());
-              oprot.writeString(_iter48.getValue());
+              oprot.writeI32(_iter56.getKey().getValue());
+              oprot.writeString(_iter56.getValue());
             }
             oprot.writeMapEnd();
           }
@@ -1558,9 +1558,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.jobSubmissionInterfaces.size()));
-            for (JobSubmissionInterface _iter49 : struct.jobSubmissionInterfaces)
+            for (JobSubmissionInterface _iter57 : struct.jobSubmissionInterfaces)
             {
-              _iter49.write(oprot);
+              _iter57.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1572,9 +1572,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.dataMovementInterfaces.size()));
-            for (DataMovementInterface _iter50 : struct.dataMovementInterfaces)
+            for (DataMovementInterface _iter58 : struct.dataMovementInterfaces)
             {
-              _iter50.write(oprot);
+              _iter58.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1637,18 +1637,18 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetHostAliases()) {
         {
           oprot.writeI32(struct.hostAliases.size());
-          for (String _iter51 : struct.hostAliases)
+          for (String _iter59 : struct.hostAliases)
           {
-            oprot.writeString(_iter51);
+            oprot.writeString(_iter59);
           }
         }
       }
       if (struct.isSetIpAddresses()) {
         {
           oprot.writeI32(struct.ipAddresses.size());
-          for (String _iter52 : struct.ipAddresses)
+          for (String _iter60 : struct.ipAddresses)
           {
-            oprot.writeString(_iter52);
+            oprot.writeString(_iter60);
           }
         }
       }
@@ -1661,37 +1661,37 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetBatchQueues()) {
         {
           oprot.writeI32(struct.batchQueues.size());
-          for (BatchQueue _iter53 : struct.batchQueues)
+          for (BatchQueue _iter61 : struct.batchQueues)
           {
-            _iter53.write(oprot);
+            _iter61.write(oprot);
           }
         }
       }
       if (struct.isSetFileSystems()) {
         {
           oprot.writeI32(struct.fileSystems.size());
-          for (Map.Entry<FileSystems, String> _iter54 : struct.fileSystems.entrySet())
+          for (Map.Entry<FileSystems, String> _iter62 : struct.fileSystems.entrySet())
           {
-            oprot.writeI32(_iter54.getKey().getValue());
-            oprot.writeString(_iter54.getValue());
+            oprot.writeI32(_iter62.getKey().getValue());
+            oprot.writeString(_iter62.getValue());
           }
         }
       }
       if (struct.isSetJobSubmissionInterfaces()) {
         {
           oprot.writeI32(struct.jobSubmissionInterfaces.size());
-          for (JobSubmissionInterface _iter55 : struct.jobSubmissionInterfaces)
+          for (JobSubmissionInterface _iter63 : struct.jobSubmissionInterfaces)
           {
-            _iter55.write(oprot);
+            _iter63.write(oprot);
           }
         }
       }
       if (struct.isSetDataMovementInterfaces()) {
         {
           oprot.writeI32(struct.dataMovementInterfaces.size());
-          for (DataMovementInterface _iter56 : struct.dataMovementInterfaces)
+          for (DataMovementInterface _iter64 : struct.dataMovementInterfaces)
           {
-            _iter56.write(oprot);
+            _iter64.write(oprot);
           }
         }
       }
@@ -1710,26 +1710,26 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       BitSet incoming = iprot.readBitSet(9);
       if (incoming.get(0)) {
         {
-          org.apache.thrift.protocol.TList _list57 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.hostAliases = new ArrayList<String>(_list57.size);
-          String _elem58;
-          for (int _i59 = 0; _i59 < _list57.size; ++_i59)
+          org.apache.thrift.protocol.TList _list65 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.hostAliases = new ArrayList<String>(_list65.size);
+          String _elem66;
+          for (int _i67 = 0; _i67 < _list65.size; ++_i67)
           {
-            _elem58 = iprot.readString();
-            struct.hostAliases.add(_elem58);
+            _elem66 = iprot.readString();
+            struct.hostAliases.add(_elem66);
           }
         }
         struct.setHostAliasesIsSet(true);
       }
       if (incoming.get(1)) {
         {
-          org.apache.thrift.protocol.TList _list60 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.ipAddresses = new ArrayList<String>(_list60.size);
-          String _elem61;
-          for (int _i62 = 0; _i62 < _list60.size; ++_i62)
+          org.apache.thrift.protocol.TList _list68 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.ipAddresses = new ArrayList<String>(_list68.size);
+          String _elem69;
+          for (int _i70 = 0; _i70 < _list68.size; ++_i70)
           {
-            _elem61 = iprot.readString();
-            struct.ipAddresses.add(_elem61);
+            _elem69 = iprot.readString();
+            struct.ipAddresses.add(_elem69);
           }
         }
         struct.setIpAddressesIsSet(true);
@@ -1744,57 +1744,57 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       }
       if (incoming.get(4)) {
         {
-          org.apache.thrift.protocol.TList _list63 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.batchQueues = new ArrayList<BatchQueue>(_list63.size);
-          BatchQueue _elem64;
-          for (int _i65 = 0; _i65 < _list63.size; ++_i65)
+          org.apache.thrift.protocol.TList _list71 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.batchQueues = new ArrayList<BatchQueue>(_list71.size);
+          BatchQueue _elem72;
+          for (int _i73 = 0; _i73 < _list71.size; ++_i73)
           {
-            _elem64 = new BatchQueue();
-            _elem64.read(iprot);
-            struct.batchQueues.add(_elem64);
+            _elem72 = new BatchQueue();
+            _elem72.read(iprot);
+            struct.batchQueues.add(_elem72);
           }
         }
         struct.setBatchQueuesIsSet(true);
       }
       if (incoming.get(5)) {
         {
-          org.apache.thrift.protocol.TMap _map66 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.fileSystems = new HashMap<FileSystems,String>(2*_map66.size);
-          FileSystems _key67;
-          String _val68;
-          for (int _i69 = 0; _i69 < _map66.size; ++_i69)
+          org.apache.thrift.protocol.TMap _map74 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.fileSystems = new HashMap<FileSystems,String>(2*_map74.size);
+          FileSystems _key75;
+          String _val76;
+          for (int _i77 = 0; _i77 < _map74.size; ++_i77)
           {
-            _key67 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
-            _val68 = iprot.readString();
-            struct.fileSystems.put(_key67, _val68);
+            _key75 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
+            _val76 = iprot.readString();
+            struct.fileSystems.put(_key75, _val76);
           }
         }
         struct.setFileSystemsIsSet(true);
       }
       if (incoming.get(6)) {
         {
-          org.apache.thrift.protocol.TList _list70 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list70.size);
-          JobSubmissionInterface _elem71;
-          for (int _i72 = 0; _i72 < _list70.size; ++_i72)
+          org.apache.thrift.protocol.TList _list78 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list78.size);
+          JobSubmissionInterface _elem79;
+          for (int _i80 = 0; _i80 < _list78.size; ++_i80)
           {
-            _elem71 = new JobSubmissionInterface();
-            _elem71.read(iprot);
-            struct.jobSubmissionInterfaces.add(_elem71);
+            _elem79 = new JobSubmissionInterface();
+            _elem79.read(iprot);
+            struct.jobSubmissionInterfaces.add(_elem79);
           }
         }
         struct.setJobSubmissionInterfacesIsSet(true);
       }
       if (incoming.get(7)) {
         {
-          org.apache.thrift.protocol.TList _list73 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list73.size);
-          DataMovementInterface _elem74;
-          for (int _i75 = 0; _i75 < _list73.size; ++_i75)
+          org.apache.thrift.protocol.TList _list81 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list81.size);
+          DataMovementInterface _elem82;
+          for (int _i83 = 0; _i83 < _list81.size; ++_i83)
           {
-            _elem74 = new DataMovementInterface();
-            _elem74.read(iprot);
-            struct.dataMovementInterfaces.add(_elem74);
+            _elem82 = new DataMovementInterface();
+            _elem82.read(iprot);
+            struct.dataMovementInterfaces.add(_elem82);
           }
         }
         struct.setDataMovementInterfacesIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java
index 6da10d2..204e837 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class DataMovementInterface implements org.apache.thrift.TBase<DataMovementInterface, DataMovementInterface._Fields>, java.io.Serializable, Cloneable, Comparable<DataMovementInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataMovementInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
index 5a4660b..d5b0434 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
 
@@ -566,13 +566,13 @@ public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSub
           case 3: // GLOBUS_GATE_KEEPER_END_POINT
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list18 = iprot.readListBegin();
-                struct.globusGateKeeperEndPoint = new ArrayList<String>(_list18.size);
-                String _elem19;
-                for (int _i20 = 0; _i20 < _list18.size; ++_i20)
+                org.apache.thrift.protocol.TList _list26 = iprot.readListBegin();
+                struct.globusGateKeeperEndPoint = new ArrayList<String>(_list26.size);
+                String _elem27;
+                for (int _i28 = 0; _i28 < _list26.size; ++_i28)
                 {
-                  _elem19 = iprot.readString();
-                  struct.globusGateKeeperEndPoint.add(_elem19);
+                  _elem27 = iprot.readString();
+                  struct.globusGateKeeperEndPoint.add(_elem27);
                 }
                 iprot.readListEnd();
               }
@@ -609,9 +609,9 @@ public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSub
           oprot.writeFieldBegin(GLOBUS_GATE_KEEPER_END_POINT_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.globusGateKeeperEndPoint.size()));
-            for (String _iter21 : struct.globusGateKeeperEndPoint)
+            for (String _iter29 : struct.globusGateKeeperEndPoint)
             {
-              oprot.writeString(_iter21);
+              oprot.writeString(_iter29);
             }
             oprot.writeListEnd();
           }
@@ -645,9 +645,9 @@ public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSub
       if (struct.isSetGlobusGateKeeperEndPoint()) {
         {
           oprot.writeI32(struct.globusGateKeeperEndPoint.size());
-          for (String _iter22 : struct.globusGateKeeperEndPoint)
+          for (String _iter30 : struct.globusGateKeeperEndPoint)
           {
-            oprot.writeString(_iter22);
+            oprot.writeString(_iter30);
           }
         }
       }
@@ -663,13 +663,13 @@ public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSub
       BitSet incoming = iprot.readBitSet(1);
       if (incoming.get(0)) {
         {
-          org.apache.thrift.protocol.TList _list23 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.globusGateKeeperEndPoint = new ArrayList<String>(_list23.size);
-          String _elem24;
-          for (int _i25 = 0; _i25 < _list23.size; ++_i25)
+          org.apache.thrift.protocol.TList _list31 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.globusGateKeeperEndPoint = new ArrayList<String>(_list31.size);
+          String _elem32;
+          for (int _i33 = 0; _i33 < _list31.size; ++_i33)
           {
-            _elem24 = iprot.readString();
-            struct.globusGateKeeperEndPoint.add(_elem24);
+            _elem32 = iprot.readString();
+            struct.globusGateKeeperEndPoint.add(_elem32);
           }
         }
         struct.setGlobusGateKeeperEndPointIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
index 3cac40a..22ce310 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
index 52758f3..f2644dc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class JobSubmissionInterface implements org.apache.thrift.TBase<JobSubmissionInterface, JobSubmissionInterface._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALDataMovement.java
index 5274ff8..36056da 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-defualt port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class LOCALDataMovement implements org.apache.thrift.TBase<LOCALDataMovement, LOCALDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
index c3c7246..a46f319 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class LOCALSubmission implements org.apache.thrift.TBase<LOCALSubmission, LOCALSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index 0b05bfa..218b820 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  *  An enumeration of commonly used manager commands.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SCPDataMovement.java
index c7d6ef4..2c162f4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SCPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SCPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index b7f23c4..a673f35 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -59,8 +59,15 @@ import org.slf4j.LoggerFactory;
  * 
  * sshPort:
  *  If a non-default port needs to used, specify it.
+ * 
+ * batchQueueEmailSenders:
+ *  If a resource always sends the monitoring from a specific address, specify the
+ *   full email address. If a resource sends emails from multiple addresses (
+ *    example: based on the submitted login node) then use the wildchar * to indicate
+ *    the same. Example: *@*.example.com or *@example.com
+ * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
 
@@ -70,6 +77,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
   private static final org.apache.thrift.protocol.TField ALTERNATIVE_SSHHOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("alternativeSSHHostName", org.apache.thrift.protocol.TType.STRING, (short)4);
   private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)5);
   private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.I32, (short)6);
+  private static final org.apache.thrift.protocol.TField BATCH_QUEUE_EMAIL_SENDERS_FIELD_DESC = new org.apache.thrift.protocol.TField("batchQueueEmailSenders", org.apache.thrift.protocol.TType.LIST, (short)7);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -83,6 +91,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
   private String alternativeSSHHostName; // optional
   private int sshPort; // optional
   private MonitorMode monitorMode; // optional
+  private List<String> batchQueueEmailSenders; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -99,7 +108,8 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
      * 
      * @see MonitorMode
      */
-    MONITOR_MODE((short)6, "monitorMode");
+    MONITOR_MODE((short)6, "monitorMode"),
+    BATCH_QUEUE_EMAIL_SENDERS((short)7, "batchQueueEmailSenders");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -126,6 +136,8 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
           return SSH_PORT;
         case 6: // MONITOR_MODE
           return MONITOR_MODE;
+        case 7: // BATCH_QUEUE_EMAIL_SENDERS
+          return BATCH_QUEUE_EMAIL_SENDERS;
         default:
           return null;
       }
@@ -168,7 +180,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
   // isset id assignments
   private static final int __SSHPORT_ISSET_ID = 0;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.ALTERNATIVE_SSHHOST_NAME,_Fields.SSH_PORT,_Fields.MONITOR_MODE};
+  private static final _Fields optionals[] = {_Fields.ALTERNATIVE_SSHHOST_NAME,_Fields.SSH_PORT,_Fields.MONITOR_MODE,_Fields.BATCH_QUEUE_EMAIL_SENDERS};
   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);
@@ -184,6 +196,9 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, MonitorMode.class)));
+    tmpMap.put(_Fields.BATCH_QUEUE_EMAIL_SENDERS, new org.apache.thrift.meta_data.FieldMetaData("batchQueueEmailSenders", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SSHJobSubmission.class, metaDataMap);
   }
@@ -227,6 +242,10 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     if (other.isSetMonitorMode()) {
       this.monitorMode = other.monitorMode;
     }
+    if (other.isSetBatchQueueEmailSenders()) {
+      List<String> __this__batchQueueEmailSenders = new ArrayList<String>(other.batchQueueEmailSenders);
+      this.batchQueueEmailSenders = __this__batchQueueEmailSenders;
+    }
   }
 
   public SSHJobSubmission deepCopy() {
@@ -243,6 +262,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     this.sshPort = 22;
 
     this.monitorMode = null;
+    this.batchQueueEmailSenders = null;
   }
 
   public String getJobSubmissionInterfaceId() {
@@ -398,6 +418,44 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     }
   }
 
+  public int getBatchQueueEmailSendersSize() {
+    return (this.batchQueueEmailSenders == null) ? 0 : this.batchQueueEmailSenders.size();
+  }
+
+  public java.util.Iterator<String> getBatchQueueEmailSendersIterator() {
+    return (this.batchQueueEmailSenders == null) ? null : this.batchQueueEmailSenders.iterator();
+  }
+
+  public void addToBatchQueueEmailSenders(String elem) {
+    if (this.batchQueueEmailSenders == null) {
+      this.batchQueueEmailSenders = new ArrayList<String>();
+    }
+    this.batchQueueEmailSenders.add(elem);
+  }
+
+  public List<String> getBatchQueueEmailSenders() {
+    return this.batchQueueEmailSenders;
+  }
+
+  public void setBatchQueueEmailSenders(List<String> batchQueueEmailSenders) {
+    this.batchQueueEmailSenders = batchQueueEmailSenders;
+  }
+
+  public void unsetBatchQueueEmailSenders() {
+    this.batchQueueEmailSenders = null;
+  }
+
+  /** Returns true if field batchQueueEmailSenders is set (has been assigned a value) and false otherwise */
+  public boolean isSetBatchQueueEmailSenders() {
+    return this.batchQueueEmailSenders != null;
+  }
+
+  public void setBatchQueueEmailSendersIsSet(boolean value) {
+    if (!value) {
+      this.batchQueueEmailSenders = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case JOB_SUBMISSION_INTERFACE_ID:
@@ -448,6 +506,14 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       }
       break;
 
+    case BATCH_QUEUE_EMAIL_SENDERS:
+      if (value == null) {
+        unsetBatchQueueEmailSenders();
+      } else {
+        setBatchQueueEmailSenders((List<String>)value);
+      }
+      break;
+
     }
   }
 
@@ -471,6 +537,9 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     case MONITOR_MODE:
       return getMonitorMode();
 
+    case BATCH_QUEUE_EMAIL_SENDERS:
+      return getBatchQueueEmailSenders();
+
     }
     throw new IllegalStateException();
   }
@@ -494,6 +563,8 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       return isSetSshPort();
     case MONITOR_MODE:
       return isSetMonitorMode();
+    case BATCH_QUEUE_EMAIL_SENDERS:
+      return isSetBatchQueueEmailSenders();
     }
     throw new IllegalStateException();
   }
@@ -565,6 +636,15 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
         return false;
     }
 
+    boolean this_present_batchQueueEmailSenders = true && this.isSetBatchQueueEmailSenders();
+    boolean that_present_batchQueueEmailSenders = true && that.isSetBatchQueueEmailSenders();
+    if (this_present_batchQueueEmailSenders || that_present_batchQueueEmailSenders) {
+      if (!(this_present_batchQueueEmailSenders && that_present_batchQueueEmailSenders))
+        return false;
+      if (!this.batchQueueEmailSenders.equals(that.batchQueueEmailSenders))
+        return false;
+    }
+
     return true;
   }
 
@@ -602,6 +682,11 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     if (present_monitorMode)
       list.add(monitorMode.getValue());
 
+    boolean present_batchQueueEmailSenders = true && (isSetBatchQueueEmailSenders());
+    list.add(present_batchQueueEmailSenders);
+    if (present_batchQueueEmailSenders)
+      list.add(batchQueueEmailSenders);
+
     return list.hashCode();
   }
 
@@ -673,6 +758,16 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetBatchQueueEmailSenders()).compareTo(other.isSetBatchQueueEmailSenders());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetBatchQueueEmailSenders()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.batchQueueEmailSenders, other.batchQueueEmailSenders);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -742,6 +837,16 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       }
       first = false;
     }
+    if (isSetBatchQueueEmailSenders()) {
+      if (!first) sb.append(", ");
+      sb.append("batchQueueEmailSenders:");
+      if (this.batchQueueEmailSenders == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.batchQueueEmailSenders);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -851,6 +956,24 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 7: // BATCH_QUEUE_EMAIL_SENDERS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list18 = iprot.readListBegin();
+                struct.batchQueueEmailSenders = new ArrayList<String>(_list18.size);
+                String _elem19;
+                for (int _i20 = 0; _i20 < _list18.size; ++_i20)
+                {
+                  _elem19 = iprot.readString();
+                  struct.batchQueueEmailSenders.add(_elem19);
+                }
+                iprot.readListEnd();
+              }
+              struct.setBatchQueueEmailSendersIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -898,6 +1021,20 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
           oprot.writeFieldEnd();
         }
       }
+      if (struct.batchQueueEmailSenders != null) {
+        if (struct.isSetBatchQueueEmailSenders()) {
+          oprot.writeFieldBegin(BATCH_QUEUE_EMAIL_SENDERS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.batchQueueEmailSenders.size()));
+            for (String _iter21 : struct.batchQueueEmailSenders)
+            {
+              oprot.writeString(_iter21);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -928,7 +1065,10 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       if (struct.isSetMonitorMode()) {
         optionals.set(2);
       }
-      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetBatchQueueEmailSenders()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
       if (struct.isSetAlternativeSSHHostName()) {
         oprot.writeString(struct.alternativeSSHHostName);
       }
@@ -938,6 +1078,15 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       if (struct.isSetMonitorMode()) {
         oprot.writeI32(struct.monitorMode.getValue());
       }
+      if (struct.isSetBatchQueueEmailSenders()) {
+        {
+          oprot.writeI32(struct.batchQueueEmailSenders.size());
+          for (String _iter22 : struct.batchQueueEmailSenders)
+          {
+            oprot.writeString(_iter22);
+          }
+        }
+      }
     }
 
     @Override
@@ -950,7 +1099,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       struct.resourceJobManager = new ResourceJobManager();
       struct.resourceJobManager.read(iprot);
       struct.setResourceJobManagerIsSet(true);
-      BitSet incoming = iprot.readBitSet(3);
+      BitSet incoming = iprot.readBitSet(4);
       if (incoming.get(0)) {
         struct.alternativeSSHHostName = iprot.readString();
         struct.setAlternativeSSHHostNameIsSet(true);
@@ -963,6 +1112,19 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
         struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
         struct.setMonitorModeIsSet(true);
       }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list23 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.batchQueueEmailSenders = new ArrayList<String>(_list23.size);
+          String _elem24;
+          for (int _i25 = 0; _i25 < _list23.size; ++_i25)
+          {
+            _elem24 = iprot.readString();
+            struct.batchQueueEmailSenders.add(_elem24);
+          }
+        }
+        struct.setBatchQueueEmailSendersIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
index 83eaff6..00cb55f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * unicoreEndPointURL:
  *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class UnicoreDataMovement implements org.apache.thrift.TBase<UnicoreDataMovement, UnicoreDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 5a9d438..fda3a15 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
@@ -59,7 +59,7 @@ import org.slf4j.LoggerFactory;
  * authenticationMode
  *  The authenticationMode defines the way certificate is fetched.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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");