adding credential store changes to 0.16 - AIRAVATA-1795

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

Branch: refs/heads/master
Commit: 4ba83ccdb8e08c7dbfe672384661915e23331ff4
Parents: c8b7bb1
Author: Chathuri Wimalasena <[email protected]>
Authored: Tue Aug 25 14:38:48 2015 -0400
Committer: Chathuri Wimalasena <[email protected]>
Committed: Tue Aug 25 14:38:48 2015 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |   60 +-
 .../java/org/apache/airavata/api/Airavata.java  |  131 +-
 .../main/resources/lib/airavata/Airavata.cpp    |   28 +-
 .../src/main/resources/lib/airavata/Airavata.h  |   30 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |    2 +-
 .../resources/lib/Airavata/API/Airavata.php     |   33 +-
 .../lib/apache/airavata/api/Airavata-remote     |    8 +-
 .../lib/apache/airavata/api/Airavata.py         |   30 +-
 .../org/apache/airavata/model/Workflow.java     |    2 +-
 .../ApplicationDeploymentDescription.java       |    2 +-
 .../appdeployment/ApplicationModule.java        |    2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |    2 +-
 .../ApplicationInterfaceDescription.java        |    2 +-
 .../appcatalog/computeresource/BatchQueue.java  |    2 +-
 .../computeresource/CloudJobSubmission.java     |    2 +-
 .../ComputeResourceDescription.java             |    2 +-
 .../computeresource/DataMovementInterface.java  |    2 +-
 .../computeresource/GlobusJobSubmission.java    |    2 +-
 .../computeresource/GridFTPDataMovement.java    |    2 +-
 .../computeresource/JobSubmissionInterface.java |    2 +-
 .../computeresource/LOCALDataMovement.java      |    2 +-
 .../computeresource/LOCALSubmission.java        |    2 +-
 .../computeresource/ResourceJobManager.java     |    2 +-
 .../computeresource/SCPDataMovement.java        |    2 +-
 .../computeresource/SSHJobSubmission.java       |    2 +-
 .../computeresource/UnicoreDataMovement.java    |    2 +-
 .../computeresource/UnicoreJobSubmission.java   |    2 +-
 .../ComputeResourcePreference.java              |    2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |    2 +-
 .../application/io/InputDataObjectType.java     |    2 +-
 .../application/io/OutputDataObjectType.java    |    2 +-
 .../airavata/model/commons/ErrorModel.java      |    2 +-
 .../model/commons/ValidationResults.java        |    2 +-
 .../airavata/model/commons/ValidatorResult.java |    2 +-
 .../model/error/AiravataClientException.java    |    2 +-
 .../model/error/AiravataSystemException.java    |    2 +-
 .../model/error/AuthenticationException.java    |    2 +-
 .../model/error/AuthorizationException.java     |    2 +-
 .../error/ExperimentNotFoundException.java      |    2 +-
 .../model/error/InvalidRequestException.java    |    2 +-
 .../model/error/LaunchValidationException.java  |    2 +-
 .../model/error/ProjectNotFoundException.java   |    2 +-
 .../airavata/model/error/TimedOutException.java |    2 +-
 .../airavata/model/error/ValidationResults.java |    2 +-
 .../airavata/model/error/ValidatorResult.java   |    2 +-
 .../model/experiment/ExperimentModel.java       |    2 +-
 .../model/experiment/ExperimentStatistics.java  |    2 +-
 .../experiment/ExperimentSummaryModel.java      |    2 +-
 .../experiment/UserConfigurationDataModel.java  |    2 +-
 .../org/apache/airavata/model/job/JobModel.java |    2 +-
 .../event/ExperimentStatusChangeEvent.java      |    2 +-
 .../model/messaging/event/JobIdentifier.java    |    2 +-
 .../messaging/event/JobStatusChangeEvent.java   |    2 +-
 .../event/JobStatusChangeRequestEvent.java      |    2 +-
 .../airavata/model/messaging/event/Message.java |    2 +-
 .../messaging/event/ProcessIdentifier.java      |    2 +-
 .../event/ProcessStatusChangeEvent.java         |    2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |    2 +-
 .../messaging/event/ProcessSubmitEvent.java     |    2 +-
 .../messaging/event/ProcessTerminateEvent.java  |    2 +-
 .../model/messaging/event/TaskIdentifier.java   |    2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |    2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |    2 +-
 .../event/TaskStatusChangeRequestEvent.java     |    2 +-
 .../airavata/model/process/ProcessModel.java    |    2 +-
 .../ComputationalResourceSchedulingModel.java   |    2 +-
 .../airavata/model/security/AuthzToken.java     |    2 +-
 .../airavata/model/status/ExperimentStatus.java |    2 +-
 .../apache/airavata/model/status/JobStatus.java |    2 +-
 .../airavata/model/status/ProcessStatus.java    |    2 +-
 .../airavata/model/status/TaskStatus.java       |    2 +-
 .../model/task/DataStagingTaskModel.java        |    2 +-
 .../apache/airavata/model/task/TaskModel.java   |    2 +-
 .../airavata/model/workspace/Gateway.java       |    2 +-
 .../apache/airavata/model/workspace/Group.java  |    2 +-
 .../airavata/model/workspace/Project.java       |    2 +-
 .../apache/airavata/model/workspace/User.java   |    2 +-
 .../server/CredentialStoreServerHandler.java    |   28 +
 .../client/CredentialStoreClientFactory.java    |   55 +
 .../store/cpi/CredentialStoreService.java       | 1220 +++++++++++++++++-
 .../store/cpi/credentialStoreCPIConstants.java  |    8 +-
 .../store/datamodel/CertificateCredential.java  |   55 +-
 .../store/datamodel/CommunityUser.java          |   28 +-
 .../store/datamodel/PasswordCredential.java     |   35 +-
 .../store/datamodel/SSHCredential.java          |   50 +-
 .../credentialStoreDataModelConstants.java      |    6 +-
 .../exception/CredentialStoreException.java     |   18 +-
 .../credentialStoreCPI.thrift                   |    5 +-
 .../cs-thrift-descriptions/generate-cs-stubs.sh |    7 +-
 .../airavata-api/airavata_api.thrift            |    6 +-
 90 files changed, 1796 insertions(+), 185 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
 
b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index a4735ee..2fff346 100644
--- 
a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ 
b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -28,6 +28,10 @@ import 
org.apache.airavata.common.exception.AiravataException;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.AiravataUtils;
 import org.apache.airavata.common.utils.ServerSettings;
+import 
org.apache.airavata.credential.store.client.CredentialStoreClientFactory;
+import org.apache.airavata.credential.store.cpi.CredentialStoreService;
+import org.apache.airavata.credential.store.datamodel.SSHCredential;
+import org.apache.airavata.credential.store.exception.CredentialStoreException;
 import org.apache.airavata.messaging.core.MessageContext;
 import org.apache.airavata.messaging.core.Publisher;
 import org.apache.airavata.messaging.core.PublisherFactory;
@@ -76,6 +80,7 @@ public class AiravataServerHandler implements Airavata.Iface {
     private AppCatalog appCatalog;
     private Publisher publisher;
        private WorkflowCatalog workflowCatalog;
+    private CredentialStoreService.Client csClient;
 
     public AiravataServerHandler() {
         try {
@@ -246,19 +251,56 @@ public class AiravataServerHandler implements 
Airavata.Iface {
     @Override
     @SecurityCheck
     public String generateAndRegisterSSHKeys(AuthzToken authzToken, String 
gatewayId, String userName) throws InvalidRequestException, 
AiravataClientException, AiravataSystemException, TException {
-        return null;
+        try {
+            if (csClient == null){
+                csClient = getCredentialStoreServiceClient();
+            }
+            SSHCredential sshCredential = new SSHCredential();
+            sshCredential.setUsername(userName);
+            sshCredential.setGatewayId(gatewayId);
+            return csClient.addSSHCredential(sshCredential);
+        }catch (Exception e){
+            logger.error("Error occurred while registering SSH Credential", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error occurred while registering SSH 
Credential. More info : " + e.getMessage());
+            throw exception;
+        }
     }
 
     @Override
     @SecurityCheck
-    public String getSSHPubKey(AuthzToken authzToken, String 
airavataCredStoreToken) throws InvalidRequestException, 
AiravataClientException, AiravataSystemException, TException {
-        return null;
+    public String getSSHPubKey(AuthzToken authzToken, String 
airavataCredStoreToken, String gatewayId) throws InvalidRequestException, 
AiravataClientException, AiravataSystemException, TException {
+        try {
+            if (csClient == null){
+                csClient = getCredentialStoreServiceClient();
+            }
+            SSHCredential sshCredential = 
csClient.getSSHCredential(airavataCredStoreToken, gatewayId);
+            return sshCredential.getPublicKey();
+        }catch (Exception e){
+            logger.error("Error occurred while retrieving SSH credential", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error occurred while retrieving SSH 
credential. More info : " + e.getMessage());
+            throw exception;
+        }
     }
 
     @Override
     @SecurityCheck
     public Map<String, String> getAllUserSSHPubKeys(AuthzToken authzToken, 
String userName) throws InvalidRequestException, AiravataClientException, 
AiravataSystemException, TException {
-        return null;
+        try {
+            if (csClient == null){
+                csClient = getCredentialStoreServiceClient();
+            }
+            return csClient.getAllSSHKeysForUser(userName);
+        }catch (Exception e){
+            logger.error("Error occurred while retrieving SSH public keys for 
user : " + userName , e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error occurred while retrieving SSH public 
keys for user : " + userName + ". More info : " + e.getMessage());
+            throw exception;
+        }
     }
 
     /**
@@ -3621,4 +3663,14 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             throw exception;
         }
     }
+
+    private CredentialStoreService.Client getCredentialStoreServiceClient() 
throws TException, ApplicationSettingsException {
+        final int serverPort = 
Integer.parseInt(ServerSettings.getCredentialStoreServerPort());
+        final String serverHost = 
ServerSettings.getCredentialStoreServerHost();
+        try {
+            return 
CredentialStoreClientFactory.createAiravataCSClient(serverHost, serverPort);
+        } catch (CredentialStoreException e) {
+            throw new TException("Unable to create credential store 
client...", e);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
 
b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index b5c7e56..034704e 100644
--- 
a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ 
b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 public class Airavata {
 
   public interface Iface {
@@ -97,7 +97,7 @@ public class Airavata {
      */
     public String 
generateAndRegisterSSHKeys(org.apache.airavata.model.security.AuthzToken 
authzToken, String gatewayId, String userName) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.thrift.TException;
 
-    public String getSSHPubKey(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.thrift.TException;
+    public String getSSHPubKey(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken, String gatewayId) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.thrift.TException;
 
     public Map<String,String> 
getAllUserSSHPubKeys(org.apache.airavata.model.security.AuthzToken authzToken, 
String userName) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.thrift.TException;
 
@@ -1765,7 +1765,7 @@ public class Airavata {
 
     public void 
generateAndRegisterSSHKeys(org.apache.airavata.model.security.AuthzToken 
authzToken, String gatewayId, String userName, 
org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 
org.apache.thrift.TException;
 
-    public void getSSHPubKey(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken, 
org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 
org.apache.thrift.TException;
+    public void getSSHPubKey(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken, String gatewayId, 
org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 
org.apache.thrift.TException;
 
     public void 
getAllUserSSHPubKeys(org.apache.airavata.model.security.AuthzToken authzToken, 
String userName, org.apache.thrift.async.AsyncMethodCallback resultHandler) 
throws org.apache.thrift.TException;
 
@@ -2287,17 +2287,18 @@ public class Airavata {
       throw new 
org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT,
 "generateAndRegisterSSHKeys failed: unknown result");
     }
 
-    public String getSSHPubKey(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.thrift.TException
+    public String getSSHPubKey(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken, String gatewayId) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.thrift.TException
     {
-      send_getSSHPubKey(authzToken, airavataCredStoreToken);
+      send_getSSHPubKey(authzToken, airavataCredStoreToken, gatewayId);
       return recv_getSSHPubKey();
     }
 
-    public void 
send_getSSHPubKey(org.apache.airavata.model.security.AuthzToken authzToken, 
String airavataCredStoreToken) throws org.apache.thrift.TException
+    public void 
send_getSSHPubKey(org.apache.airavata.model.security.AuthzToken authzToken, 
String airavataCredStoreToken, String gatewayId) throws 
org.apache.thrift.TException
     {
       getSSHPubKey_args args = new getSSHPubKey_args();
       args.setAuthzToken(authzToken);
       args.setAiravataCredStoreToken(airavataCredStoreToken);
+      args.setGatewayId(gatewayId);
       sendBase("getSSHPubKey", args);
     }
 
@@ -6602,9 +6603,9 @@ public class Airavata {
       }
     }
 
-    public void getSSHPubKey(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken, 
org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 
org.apache.thrift.TException {
+    public void getSSHPubKey(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken, String gatewayId, 
org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 
org.apache.thrift.TException {
       checkReady();
-      getSSHPubKey_call method_call = new getSSHPubKey_call(authzToken, 
airavataCredStoreToken, resultHandler, this, ___protocolFactory, ___transport);
+      getSSHPubKey_call method_call = new getSSHPubKey_call(authzToken, 
airavataCredStoreToken, gatewayId, resultHandler, this, ___protocolFactory, 
___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -6612,10 +6613,12 @@ public class Airavata {
     public static class getSSHPubKey_call extends 
org.apache.thrift.async.TAsyncMethodCall {
       private org.apache.airavata.model.security.AuthzToken authzToken;
       private String airavataCredStoreToken;
-      public getSSHPubKey_call(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken, 
org.apache.thrift.async.AsyncMethodCallback resultHandler, 
org.apache.thrift.async.TAsyncClient client, 
org.apache.thrift.protocol.TProtocolFactory protocolFactory, 
org.apache.thrift.transport.TNonblockingTransport transport) throws 
org.apache.thrift.TException {
+      private String gatewayId;
+      public getSSHPubKey_call(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataCredStoreToken, String gatewayId, 
org.apache.thrift.async.AsyncMethodCallback resultHandler, 
org.apache.thrift.async.TAsyncClient client, 
org.apache.thrift.protocol.TProtocolFactory protocolFactory, 
org.apache.thrift.transport.TNonblockingTransport transport) throws 
org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.authzToken = authzToken;
         this.airavataCredStoreToken = airavataCredStoreToken;
+        this.gatewayId = gatewayId;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws 
org.apache.thrift.TException {
@@ -6623,6 +6626,7 @@ public class Airavata {
         getSSHPubKey_args args = new getSSHPubKey_args();
         args.setAuthzToken(authzToken);
         args.setAiravataCredStoreToken(airavataCredStoreToken);
+        args.setGatewayId(gatewayId);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -11094,7 +11098,7 @@ public class Airavata {
       public getSSHPubKey_result getResult(I iface, getSSHPubKey_args args) 
throws org.apache.thrift.TException {
         getSSHPubKey_result result = new getSSHPubKey_result();
         try {
-          result.success = iface.getSSHPubKey(args.authzToken, 
args.airavataCredStoreToken);
+          result.success = iface.getSSHPubKey(args.authzToken, 
args.airavataCredStoreToken, args.gatewayId);
         } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
           result.ire = ire;
         } catch (org.apache.airavata.model.error.AiravataClientException ace) {
@@ -15163,7 +15167,7 @@ public class Airavata {
       }
 
       public void start(I iface, getSSHPubKey_args args, 
org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws 
TException {
-        iface.getSSHPubKey(args.authzToken, 
args.airavataCredStoreToken,resultHandler);
+        iface.getSSHPubKey(args.authzToken, args.airavataCredStoreToken, 
args.gatewayId,resultHandler);
       }
     }
 
@@ -32864,6 +32868,7 @@ public class Airavata {
 
     private static final org.apache.thrift.protocol.TField 
AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField 
AIRAVATA_CRED_STORE_TOKEN_FIELD_DESC = new 
org.apache.thrift.protocol.TField("airavataCredStoreToken", 
org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField 
GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", 
org.apache.thrift.protocol.TType.STRING, (short)3);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes 
= new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -32873,11 +32878,13 @@ public class Airavata {
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // 
required
     public String airavataCredStoreToken; // required
+    public String gatewayId; // required
 
     /** The set of fields this struct contains, along with convenience methods 
for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      AIRAVATA_CRED_STORE_TOKEN((short)2, "airavataCredStoreToken");
+      AIRAVATA_CRED_STORE_TOKEN((short)2, "airavataCredStoreToken"),
+      GATEWAY_ID((short)3, "gatewayId");
 
       private static final Map<String, _Fields> byName = new HashMap<String, 
_Fields>();
 
@@ -32896,6 +32903,8 @@ public class Airavata {
             return AUTHZ_TOKEN;
           case 2: // AIRAVATA_CRED_STORE_TOKEN
             return AIRAVATA_CRED_STORE_TOKEN;
+          case 3: // GATEWAY_ID
+            return GATEWAY_ID;
           default:
             return null;
         }
@@ -32943,6 +32952,8 @@ public class Airavata {
           new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 org.apache.airavata.model.security.AuthzToken.class)));
       tmpMap.put(_Fields.AIRAVATA_CRED_STORE_TOKEN, new 
org.apache.thrift.meta_data.FieldMetaData("airavataCredStoreToken", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.GATEWAY_ID, new 
org.apache.thrift.meta_data.FieldMetaData("gatewayId", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getSSHPubKey_args.class,
 metaDataMap);
     }
@@ -32952,11 +32963,13 @@ public class Airavata {
 
     public getSSHPubKey_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      String airavataCredStoreToken)
+      String airavataCredStoreToken,
+      String gatewayId)
     {
       this();
       this.authzToken = authzToken;
       this.airavataCredStoreToken = airavataCredStoreToken;
+      this.gatewayId = gatewayId;
     }
 
     /**
@@ -32969,6 +32982,9 @@ public class Airavata {
       if (other.isSetAiravataCredStoreToken()) {
         this.airavataCredStoreToken = other.airavataCredStoreToken;
       }
+      if (other.isSetGatewayId()) {
+        this.gatewayId = other.gatewayId;
+      }
     }
 
     public getSSHPubKey_args deepCopy() {
@@ -32979,6 +32995,7 @@ public class Airavata {
     public void clear() {
       this.authzToken = null;
       this.airavataCredStoreToken = null;
+      this.gatewayId = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
@@ -33029,6 +33046,30 @@ public class Airavata {
       }
     }
 
+    public String getGatewayId() {
+      return this.gatewayId;
+    }
+
+    public getSSHPubKey_args setGatewayId(String gatewayId) {
+      this.gatewayId = gatewayId;
+      return this;
+    }
+
+    public void unsetGatewayId() {
+      this.gatewayId = null;
+    }
+
+    /** Returns true if field gatewayId is set (has been assigned a value) and 
false otherwise */
+    public boolean isSetGatewayId() {
+      return this.gatewayId != null;
+    }
+
+    public void setGatewayIdIsSet(boolean value) {
+      if (!value) {
+        this.gatewayId = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
       case AUTHZ_TOKEN:
@@ -33047,6 +33088,14 @@ public class Airavata {
         }
         break;
 
+      case GATEWAY_ID:
+        if (value == null) {
+          unsetGatewayId();
+        } else {
+          setGatewayId((String)value);
+        }
+        break;
+
       }
     }
 
@@ -33058,6 +33107,9 @@ public class Airavata {
       case AIRAVATA_CRED_STORE_TOKEN:
         return getAiravataCredStoreToken();
 
+      case GATEWAY_ID:
+        return getGatewayId();
+
       }
       throw new IllegalStateException();
     }
@@ -33073,6 +33125,8 @@ public class Airavata {
         return isSetAuthzToken();
       case AIRAVATA_CRED_STORE_TOKEN:
         return isSetAiravataCredStoreToken();
+      case GATEWAY_ID:
+        return isSetGatewayId();
       }
       throw new IllegalStateException();
     }
@@ -33108,6 +33162,15 @@ public class Airavata {
           return false;
       }
 
+      boolean this_present_gatewayId = true && this.isSetGatewayId();
+      boolean that_present_gatewayId = true && that.isSetGatewayId();
+      if (this_present_gatewayId || that_present_gatewayId) {
+        if (!(this_present_gatewayId && that_present_gatewayId))
+          return false;
+        if (!this.gatewayId.equals(that.gatewayId))
+          return false;
+      }
+
       return true;
     }
 
@@ -33125,6 +33188,11 @@ public class Airavata {
       if (present_airavataCredStoreToken)
         list.add(airavataCredStoreToken);
 
+      boolean present_gatewayId = true && (isSetGatewayId());
+      list.add(present_gatewayId);
+      if (present_gatewayId)
+        list.add(gatewayId);
+
       return list.hashCode();
     }
 
@@ -33156,6 +33224,16 @@ public class Airavata {
           return lastComparison;
         }
       }
+      lastComparison = 
Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGatewayId()) {
+        lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -33191,6 +33269,14 @@ public class Airavata {
         sb.append(this.airavataCredStoreToken);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -33203,6 +33289,9 @@ public class Airavata {
       if (airavataCredStoreToken == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required 
field 'airavataCredStoreToken' was not present! Struct: " + toString());
       }
+      if (gatewayId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required 
field 'gatewayId' was not present! Struct: " + toString());
+      }
       // check for sub-struct validity
       if (authzToken != null) {
         authzToken.validate();
@@ -33260,6 +33349,14 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
               }
               break;
+            case 3: // GATEWAY_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) 
{
+                struct.gatewayId = iprot.readString();
+                struct.setGatewayIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
           }
@@ -33285,6 +33382,11 @@ public class Airavata {
           oprot.writeString(struct.airavataCredStoreToken);
           oprot.writeFieldEnd();
         }
+        if (struct.gatewayId != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
@@ -33304,6 +33406,7 @@ public class Airavata {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         oprot.writeString(struct.airavataCredStoreToken);
+        oprot.writeString(struct.gatewayId);
       }
 
       @Override
@@ -33314,6 +33417,8 @@ public class Airavata {
         struct.setAuthzTokenIsSet(true);
         struct.airavataCredStoreToken = iprot.readString();
         struct.setAiravataCredStoreTokenIsSet(true);
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
       }
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index 4753522..5d85f45 100644
--- 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -2339,6 +2339,7 @@ uint32_t 
Airavata_getSSHPubKey_args::read(::apache::thrift::protocol::TProtocol*
 
   bool isset_authzToken = false;
   bool isset_airavataCredStoreToken = false;
+  bool isset_gatewayId = false;
 
   while (true)
   {
@@ -2364,6 +2365,14 @@ uint32_t 
Airavata_getSSHPubKey_args::read(::apache::thrift::protocol::TProtocol*
           xfer += iprot->skip(ftype);
         }
         break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -2377,6 +2386,8 @@ uint32_t 
Airavata_getSSHPubKey_args::read(::apache::thrift::protocol::TProtocol*
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_airavataCredStoreToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_gatewayId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
@@ -2393,6 +2404,10 @@ uint32_t 
Airavata_getSSHPubKey_args::write(::apache::thrift::protocol::TProtocol
   xfer += oprot->writeString(this->airavataCredStoreToken);
   xfer += oprot->writeFieldEnd();
 
+  xfer += oprot->writeFieldBegin("gatewayId", 
::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -2417,6 +2432,10 @@ uint32_t 
Airavata_getSSHPubKey_pargs::write(::apache::thrift::protocol::TProtoco
   xfer += oprot->writeString((*(this->airavataCredStoreToken)));
   xfer += oprot->writeFieldEnd();
 
+  xfer += oprot->writeFieldBegin("gatewayId", 
::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->gatewayId)));
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -37096,13 +37115,13 @@ void 
AiravataClient::recv_generateAndRegisterSSHKeys(std::string& _return)
   throw 
::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT,
 "generateAndRegisterSSHKeys failed: unknown result");
 }
 
-void AiravataClient::getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken)
+void AiravataClient::getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId)
 {
-  send_getSSHPubKey(authzToken, airavataCredStoreToken);
+  send_getSSHPubKey(authzToken, airavataCredStoreToken, gatewayId);
   recv_getSSHPubKey(_return);
 }
 
-void AiravataClient::send_getSSHPubKey(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken)
+void AiravataClient::send_getSSHPubKey(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId)
 {
   int32_t cseqid = 0;
   oprot_->writeMessageBegin("getSSHPubKey", 
::apache::thrift::protocol::T_CALL, cseqid);
@@ -37110,6 +37129,7 @@ void AiravataClient::send_getSSHPubKey(const  
::apache::airavata::model::securit
   Airavata_getSSHPubKey_pargs args;
   args.authzToken = &authzToken;
   args.airavataCredStoreToken = &airavataCredStoreToken;
+  args.gatewayId = &gatewayId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -45478,7 +45498,7 @@ void AiravataProcessor::process_getSSHPubKey(int32_t 
seqid, ::apache::thrift::pr
 
   Airavata_getSSHPubKey_result result;
   try {
-    iface_->getSSHPubKey(result.success, args.authzToken, 
args.airavataCredStoreToken);
+    iface_->getSSHPubKey(result.success, args.authzToken, 
args.airavataCredStoreToken, args.gatewayId);
     result.__isset.success = true;
   } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
     result.ire = ire;

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index 5aaa69f..8806894 100644
--- 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -67,7 +67,7 @@ class AiravataIf {
    * @param userName
    */
   virtual void generateAndRegisterSSHKeys(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName) = 0;
-  virtual void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken) = 0;
+  virtual void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId) = 0;
   virtual void getAllUserSSHPubKeys(std::map<std::string, std::string> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& userName) = 0;
 
   /**
@@ -1743,7 +1743,7 @@ class AiravataNull : virtual public AiravataIf {
   void generateAndRegisterSSHKeys(std::string& /* _return */, const  
::apache::airavata::model::security::AuthzToken& /* authzToken */, const 
std::string& /* gatewayId */, const std::string& /* userName */) {
     return;
   }
-  void getSSHPubKey(std::string& /* _return */, const  
::apache::airavata::model::security::AuthzToken& /* authzToken */, const 
std::string& /* airavataCredStoreToken */) {
+  void getSSHPubKey(std::string& /* _return */, const  
::apache::airavata::model::security::AuthzToken& /* authzToken */, const 
std::string& /* airavataCredStoreToken */, const std::string& /* gatewayId */) {
     return;
   }
   void getAllUserSSHPubKeys(std::map<std::string, std::string> & /* _return 
*/, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, 
const std::string& /* userName */) {
@@ -3309,28 +3309,33 @@ class Airavata_generateAndRegisterSSHKeys_presult {
 class Airavata_getSSHPubKey_args {
  public:
 
-  static const char* ascii_fingerprint; // = 
"5C8C4FD14D732E7EC3E0A61A8C24C7FF";
-  static const uint8_t binary_fingerprint[16]; // = 
{0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
+  static const char* ascii_fingerprint; // = 
"1E6476DBB101101BCE4A4B190EDEB468";
+  static const uint8_t binary_fingerprint[16]; // = 
{0x1E,0x64,0x76,0xDB,0xB1,0x01,0x10,0x1B,0xCE,0x4A,0x4B,0x19,0x0E,0xDE,0xB4,0x68};
 
   Airavata_getSSHPubKey_args(const Airavata_getSSHPubKey_args&);
   Airavata_getSSHPubKey_args& operator=(const Airavata_getSSHPubKey_args&);
-  Airavata_getSSHPubKey_args() : airavataCredStoreToken() {
+  Airavata_getSSHPubKey_args() : airavataCredStoreToken(), gatewayId() {
   }
 
   virtual ~Airavata_getSSHPubKey_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
   std::string airavataCredStoreToken;
+  std::string gatewayId;
 
   void __set_authzToken(const  
::apache::airavata::model::security::AuthzToken& val);
 
   void __set_airavataCredStoreToken(const std::string& val);
 
+  void __set_gatewayId(const std::string& val);
+
   bool operator == (const Airavata_getSSHPubKey_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
     if (!(airavataCredStoreToken == rhs.airavataCredStoreToken))
       return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
     return true;
   }
   bool operator != (const Airavata_getSSHPubKey_args &rhs) const {
@@ -3349,13 +3354,14 @@ class Airavata_getSSHPubKey_args {
 class Airavata_getSSHPubKey_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = 
"5C8C4FD14D732E7EC3E0A61A8C24C7FF";
-  static const uint8_t binary_fingerprint[16]; // = 
{0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
+  static const char* ascii_fingerprint; // = 
"1E6476DBB101101BCE4A4B190EDEB468";
+  static const uint8_t binary_fingerprint[16]; // = 
{0x1E,0x64,0x76,0xDB,0xB1,0x01,0x10,0x1B,0xCE,0x4A,0x4B,0x19,0x0E,0xDE,0xB4,0x68};
 
 
   virtual ~Airavata_getSSHPubKey_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
   const std::string* airavataCredStoreToken;
+  const std::string* gatewayId;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
@@ -20510,8 +20516,8 @@ class AiravataClient : virtual public AiravataIf {
   void generateAndRegisterSSHKeys(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName);
   void send_generateAndRegisterSSHKeys(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName);
   void recv_generateAndRegisterSSHKeys(std::string& _return);
-  void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken);
-  void send_getSSHPubKey(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken);
+  void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
+  void send_getSSHPubKey(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
   void recv_getSSHPubKey(std::string& _return);
   void getAllUserSSHPubKeys(std::map<std::string, std::string> & _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& userName);
   void send_getAllUserSSHPubKeys(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
userName);
@@ -21194,13 +21200,13 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
-  void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken) {
+  void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
-      ifaces_[i]->getSSHPubKey(_return, authzToken, airavataCredStoreToken);
+      ifaces_[i]->getSSHPubKey(_return, authzToken, airavataCredStoreToken, 
gatewayId);
     }
-    ifaces_[i]->getSSHPubKey(_return, authzToken, airavataCredStoreToken);
+    ifaces_[i]->getSSHPubKey(_return, authzToken, airavataCredStoreToken, 
gatewayId);
     return;
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index 7e8b86d..f8b3e17 100644
--- 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -104,7 +104,7 @@ class AiravataHandler : virtual public AiravataIf {
     printf("generateAndRegisterSSHKeys\n");
   }
 
-  void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken) {
+  void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId) {
     // Your implementation goes here
     printf("getSSHPubKey\n");
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
 
b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index 0928ada..140aa19 100644
--- 
a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ 
b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -115,12 +115,13 @@ interface AiravataIf {
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $airavataCredStoreToken
+   * @param string $gatewayId
    * @return string
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    */
-  public function getSSHPubKey(\Airavata\Model\Security\AuthzToken 
$authzToken, $airavataCredStoreToken);
+  public function getSSHPubKey(\Airavata\Model\Security\AuthzToken 
$authzToken, $airavataCredStoreToken, $gatewayId);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $userName
@@ -3032,17 +3033,18 @@ class AiravataClient implements 
\Airavata\API\AiravataIf {
     throw new \Exception("generateAndRegisterSSHKeys failed: unknown result");
   }
 
-  public function getSSHPubKey(\Airavata\Model\Security\AuthzToken 
$authzToken, $airavataCredStoreToken)
+  public function getSSHPubKey(\Airavata\Model\Security\AuthzToken 
$authzToken, $airavataCredStoreToken, $gatewayId)
   {
-    $this->send_getSSHPubKey($authzToken, $airavataCredStoreToken);
+    $this->send_getSSHPubKey($authzToken, $airavataCredStoreToken, $gatewayId);
     return $this->recv_getSSHPubKey();
   }
 
-  public function send_getSSHPubKey(\Airavata\Model\Security\AuthzToken 
$authzToken, $airavataCredStoreToken)
+  public function send_getSSHPubKey(\Airavata\Model\Security\AuthzToken 
$authzToken, $airavataCredStoreToken, $gatewayId)
   {
     $args = new \Airavata\API\Airavata_getSSHPubKey_args();
     $args->authzToken = $authzToken;
     $args->airavataCredStoreToken = $airavataCredStoreToken;
+    $args->gatewayId = $gatewayId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && 
function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
@@ -12335,6 +12337,10 @@ class Airavata_getSSHPubKey_args {
    * @var string
    */
   public $airavataCredStoreToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -12348,6 +12354,10 @@ class Airavata_getSSHPubKey_args {
           'var' => 'airavataCredStoreToken',
           'type' => TType::STRING,
           ),
+        3 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -12357,6 +12367,9 @@ class Airavata_getSSHPubKey_args {
       if (isset($vals['airavataCredStoreToken'])) {
         $this->airavataCredStoreToken = $vals['airavataCredStoreToken'];
       }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
     }
   }
 
@@ -12394,6 +12407,13 @@ class Airavata_getSSHPubKey_args {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -12420,6 +12440,11 @@ class Airavata_getSSHPubKey_args {
       $xfer += $output->writeString($this->airavataCredStoreToken);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 3);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
 
b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
index 470ca44..9bd4a4f 100755
--- 
a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
+++ 
b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
@@ -32,7 +32,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print('   getAllGateways(AuthzToken authzToken)')
   print('  bool isGatewayExist(AuthzToken authzToken, string gatewayId)')
   print('  string generateAndRegisterSSHKeys(AuthzToken authzToken, string 
gatewayId, string userName)')
-  print('  string getSSHPubKey(AuthzToken authzToken, string 
airavataCredStoreToken)')
+  print('  string getSSHPubKey(AuthzToken authzToken, string 
airavataCredStoreToken, string gatewayId)')
   print('   getAllUserSSHPubKeys(AuthzToken authzToken, string userName)')
   print('  string createProject(AuthzToken authzToken, string gatewayId, 
Project project)')
   print('  void updateProject(AuthzToken authzToken, string projectId, Project 
updatedProject)')
@@ -246,10 +246,10 @@ elif cmd == 'generateAndRegisterSSHKeys':
   pp.pprint(client.generateAndRegisterSSHKeys(eval(args[0]),args[1],args[2],))
 
 elif cmd == 'getSSHPubKey':
-  if len(args) != 2:
-    print('getSSHPubKey requires 2 args')
+  if len(args) != 3:
+    print('getSSHPubKey requires 3 args')
     sys.exit(1)
-  pp.pprint(client.getSSHPubKey(eval(args[0]),args[1],))
+  pp.pprint(client.getSSHPubKey(eval(args[0]),args[1],args[2],))
 
 elif cmd == 'getAllUserSSHPubKeys':
   if len(args) != 2:

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
 
b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index f3c5799..c35a838 100644
--- 
a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ 
b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@ -99,11 +99,12 @@ class Iface:
     """
     pass
 
-  def getSSHPubKey(self, authzToken, airavataCredStoreToken):
+  def getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
     """
     Parameters:
      - authzToken
      - airavataCredStoreToken
+     - gatewayId
     """
     pass
 
@@ -2432,20 +2433,22 @@ class Client(Iface):
       raise result.ase
     raise TApplicationException(TApplicationException.MISSING_RESULT, 
"generateAndRegisterSSHKeys failed: unknown result");
 
-  def getSSHPubKey(self, authzToken, airavataCredStoreToken):
+  def getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
     """
     Parameters:
      - authzToken
      - airavataCredStoreToken
+     - gatewayId
     """
-    self.send_getSSHPubKey(authzToken, airavataCredStoreToken)
+    self.send_getSSHPubKey(authzToken, airavataCredStoreToken, gatewayId)
     return self.recv_getSSHPubKey()
 
-  def send_getSSHPubKey(self, authzToken, airavataCredStoreToken):
+  def send_getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
     self._oprot.writeMessageBegin('getSSHPubKey', TMessageType.CALL, 
self._seqid)
     args = getSSHPubKey_args()
     args.authzToken = authzToken
     args.airavataCredStoreToken = airavataCredStoreToken
+    args.gatewayId = gatewayId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
@@ -8409,7 +8412,7 @@ class Processor(Iface, TProcessor):
     iprot.readMessageEnd()
     result = getSSHPubKey_result()
     try:
-      result.success = self._handler.getSSHPubKey(args.authzToken, 
args.airavataCredStoreToken)
+      result.success = self._handler.getSSHPubKey(args.authzToken, 
args.airavataCredStoreToken, args.gatewayId)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -12215,17 +12218,20 @@ class getSSHPubKey_args:
   Attributes:
    - authzToken
    - airavataCredStoreToken
+   - gatewayId
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', 
(apache.airavata.model.security.ttypes.AuthzToken, 
apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
     (2, TType.STRING, 'airavataCredStoreToken', None, None, ), # 2
+    (3, TType.STRING, 'gatewayId', None, None, ), # 3
   )
 
-  def __init__(self, authzToken=None, airavataCredStoreToken=None,):
+  def __init__(self, authzToken=None, airavataCredStoreToken=None, 
gatewayId=None,):
     self.authzToken = authzToken
     self.airavataCredStoreToken = airavataCredStoreToken
+    self.gatewayId = gatewayId
 
   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:
@@ -12247,6 +12253,11 @@ class getSSHPubKey_args:
           self.airavataCredStoreToken = iprot.readString();
         else:
           iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString();
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -12265,6 +12276,10 @@ class getSSHPubKey_args:
       oprot.writeFieldBegin('airavataCredStoreToken', TType.STRING, 2)
       oprot.writeString(self.airavataCredStoreToken)
       oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -12273,6 +12288,8 @@ class getSSHPubKey_args:
       raise TProtocol.TProtocolException(message='Required field authzToken is 
unset!')
     if self.airavataCredStoreToken is None:
       raise TProtocol.TProtocolException(message='Required field 
airavataCredStoreToken is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is 
unset!')
     return
 
 
@@ -12280,6 +12297,7 @@ class getSSHPubKey_args:
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
     value = (value * 31) ^ hash(self.airavataCredStoreToken)
+    value = (value * 31) ^ hash(self.gatewayId)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/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 bf7f535..34532e4 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 c60eb02..5677e35 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 7f70018..54b64d5 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 cc045eb..35bd0e7 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 6495232..1f2c307 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 a137de9..8317f74 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 93009c9..3647330 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 67306f0..b7016a1 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/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 57108e8..052c71a 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 178f4a7..7ceb413 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/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 1248a0f..2e558d9 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 d1a45f3..3e3330a 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 fb8b280..18c01a7 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 379f73f..481fa15 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 cfad29a..24e314d 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 cf79ef2..8365ed2 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 ba1ab3c..e856200 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
@@ -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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/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 96b689c..6c233f0 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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/4ba83ccd/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 9e0cdf6..0e0b694 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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 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");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index 4fb9b52..d23bef8 100644
--- 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -81,7 +81,7 @@ import org.slf4j.LoggerFactory;
  *    account to be used has to be added to the allocation.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 public class ComputeResourcePreference implements 
org.apache.thrift.TBase<ComputeResourcePreference, 
ComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, 
Comparable<ComputeResourcePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ComputeResourcePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index 6d1603b..1da9c4c 100644
--- 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -62,7 +62,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 public class GatewayResourceProfile implements 
org.apache.thrift.TBase<GatewayResourceProfile, 
GatewayResourceProfile._Fields>, java.io.Serializable, Cloneable, 
Comparable<GatewayResourceProfile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("GatewayResourceProfile");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
index 0c9fa77..ddc96ae 100644
--- 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways 
for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 public class InputDataObjectType implements 
org.apache.thrift.TBase<InputDataObjectType, InputDataObjectType._Fields>, 
java.io.Serializable, Cloneable, Comparable<InputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("InputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
index 8a64601..a4a64e9 100644
--- 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways 
for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 public class OutputDataObjectType implements 
org.apache.thrift.TBase<OutputDataObjectType, OutputDataObjectType._Fields>, 
java.io.Serializable, Cloneable, Comparable<OutputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("OutputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4ba83ccd/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
index 9cfac2b..8f10672 100644
--- 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.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-8-20")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = 
"2015-8-25")
 public class ErrorModel implements org.apache.thrift.TBase<ErrorModel, 
ErrorModel._Fields>, java.io.Serializable, Cloneable, Comparable<ErrorModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ErrorModel");
 

Reply via email to