You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2016/10/26 18:44:41 UTC

[1/3] airavata git commit: adding Airvata API method to initialize ssh keys with Desc, Airavata - 2158

Repository: airavata
Updated Branches:
  refs/heads/develop 20902ba13 -> 0300c5233


http://git-wip-us.apache.org/repos/asf/airavata/blob/0300c523/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
index 78ec08c..e9f9993 100644
--- a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
@@ -278,6 +278,32 @@ service Airavata {
                    2: airavata_errors.AiravataClientException ace,
                    3: airavata_errors.AiravataSystemException ase)
 
+  /**
+     * Generate and Register SSH Key Pair with Airavata Credential Store.
+     *
+     * @param gatewayId
+     *    The identifier for the requested Gateway.
+     *
+     * @param userName
+     *    The User for which the credential should be registered. For community accounts, this user is the name of the
+     *    community user name. For computational resources, this user name need not be the same user name on resoruces.
+     *
+     * @param description
+     *    The description field for a credential type, all type of credential can have a description.
+     *
+     * @return airavataCredStoreToken
+     *   An SSH Key pair is generated and stored in the credential store and associated with users or community account
+     *   belonging to a Gateway.
+     *
+     **/
+     string generateAndRegisterSSHKeysWithDescription (1: required security_model.AuthzToken authzToken,
+                      2: required string gatewayId,
+                      3: required string userName,
+                      4: required string description)
+             throws (1: airavata_errors.InvalidRequestException ire,
+                     2: airavata_errors.AiravataClientException ace,
+                     3: airavata_errors.AiravataSystemException ase)
+
 
  /**
    * Generate and Register Username PWD Pair with Airavata Credential Store.


[3/3] airavata git commit: adding Airvata API method to initialize ssh keys with Desc, Airavata - 2158

Posted by sm...@apache.org.
adding Airvata API method to initialize ssh keys with Desc, Airavata - 2158


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

Branch: refs/heads/develop
Commit: 0300c5233fa7a84d8157f84801ad25aab8f4ffb5
Parents: 20902ba
Author: Anuj Bhandar <bh...@gmail.com>
Authored: Wed Oct 26 12:37:49 2016 -0400
Committer: Anuj Bhandar <bh...@gmail.com>
Committed: Wed Oct 26 12:38:09 2016 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |   23 +
 .../java/org/apache/airavata/api/Airavata.java  | 9688 ++++++++++--------
 .../airavata-apis/airavata_api.thrift           |   26 +
 3 files changed, 5664 insertions(+), 4073 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/0300c523/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 9c44de5..d02b8c8 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
@@ -460,6 +460,29 @@ public class AiravataServerHandler implements Airavata.Iface {
         }
     }
 
+    @Override
+    @SecurityCheck
+    public String generateAndRegisterSSHKeysWithDescription(AuthzToken authzToken, String gatewayId, String userName, String desc) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        try {
+            if (csClient == null){
+                csClient = getCredentialStoreServiceClient();
+            }
+            SSHCredential sshCredential = new SSHCredential();
+            sshCredential.setUsername(userName);
+            sshCredential.setGatewayId(gatewayId);
+            sshCredential.setDescription(desc);
+            String key = csClient.addSSHCredential(sshCredential);
+            logger.debug("Airavata generated SSH keys for gateway : " + gatewayId + " and for user : " + userName);
+            return key;
+        }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;
+        }
+    }
+
     /**
      * Generate and Register Username PWD Pair with Airavata Credential Store.
      *


[2/3] airavata git commit: adding Airvata API method to initialize ssh keys with Desc, Airavata - 2158

Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/0300c523/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 a600dce..3fd9e64 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
@@ -231,6 +231,29 @@ 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;
 
     /**
+     * Generate and Register SSH Key Pair with Airavata Credential Store.
+     * 
+     * @param gatewayId
+     *    The identifier for the requested Gateway.
+     * 
+     * @param userName
+     *    The User for which the credential should be registered. For community accounts, this user is the name of the
+     *    community user name. For computational resources, this user name need not be the same user name on resoruces.
+     * 
+     * @return airavataCredStoreToken
+     *   An SSH Key pair is generated and stored in the credential store and associated with users or community account
+     *   belonging to a Gateway.
+     * 
+     * 
+     * 
+     * @param authzToken
+     * @param gatewayId
+     * @param userName
+     * @param description
+     */
+    public String generateAndRegisterSSHKeysWithDescription(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, String description) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Generate and Register Username PWD Pair with Airavata Credential Store.
      * 
      * @param gatewayId
@@ -2928,6 +2951,8 @@ 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 generateAndRegisterSSHKeysWithDescription(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, String description, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void registerPwdCredential(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String portalUserName, String loginUserName, String password, String description, 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;
@@ -3792,6 +3817,41 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "generateAndRegisterSSHKeys failed: unknown result");
     }
 
+    public String generateAndRegisterSSHKeysWithDescription(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, String description) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_generateAndRegisterSSHKeysWithDescription(authzToken, gatewayId, userName, description);
+      return recv_generateAndRegisterSSHKeysWithDescription();
+    }
+
+    public void send_generateAndRegisterSSHKeysWithDescription(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, String description) throws org.apache.thrift.TException
+    {
+      generateAndRegisterSSHKeysWithDescription_args args = new generateAndRegisterSSHKeysWithDescription_args();
+      args.setAuthzToken(authzToken);
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setDescription(description);
+      sendBase("generateAndRegisterSSHKeysWithDescription", args);
+    }
+
+    public String recv_generateAndRegisterSSHKeysWithDescription() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      generateAndRegisterSSHKeysWithDescription_result result = new generateAndRegisterSSHKeysWithDescription_result();
+      receiveBase(result, "generateAndRegisterSSHKeysWithDescription");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "generateAndRegisterSSHKeysWithDescription failed: unknown result");
+    }
+
     public String registerPwdCredential(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String portalUserName, String loginUserName, String password, String description) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_registerPwdCredential(authzToken, gatewayId, portalUserName, loginUserName, password, description);
@@ -9890,6 +9950,47 @@ public class Airavata {
       }
     }
 
+    public void generateAndRegisterSSHKeysWithDescription(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, String description, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      generateAndRegisterSSHKeysWithDescription_call method_call = new generateAndRegisterSSHKeysWithDescription_call(authzToken, gatewayId, userName, description, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class generateAndRegisterSSHKeysWithDescription_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String gatewayId;
+      private String userName;
+      private String description;
+      public generateAndRegisterSSHKeysWithDescription_call(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, String description, 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.gatewayId = gatewayId;
+        this.userName = userName;
+        this.description = description;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("generateAndRegisterSSHKeysWithDescription", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        generateAndRegisterSSHKeysWithDescription_args args = new generateAndRegisterSSHKeysWithDescription_args();
+        args.setAuthzToken(authzToken);
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setDescription(description);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public String getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_generateAndRegisterSSHKeysWithDescription();
+      }
+    }
+
     public void registerPwdCredential(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String portalUserName, String loginUserName, String password, String description, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       registerPwdCredential_call method_call = new registerPwdCredential_call(authzToken, gatewayId, portalUserName, loginUserName, password, description, resultHandler, this, ___protocolFactory, ___transport);
@@ -15587,6 +15688,7 @@ public class Airavata {
       processMap.put("getNotification", new getNotification());
       processMap.put("getAllNotifications", new getAllNotifications());
       processMap.put("generateAndRegisterSSHKeys", new generateAndRegisterSSHKeys());
+      processMap.put("generateAndRegisterSSHKeysWithDescription", new generateAndRegisterSSHKeysWithDescription());
       processMap.put("registerPwdCredential", new registerPwdCredential());
       processMap.put("getSSHPubKey", new getSSHPubKey());
       processMap.put("getAllGatewaySSHPubKeys", new getAllGatewaySSHPubKeys());
@@ -16195,6 +16297,34 @@ public class Airavata {
       }
     }
 
+    public static class generateAndRegisterSSHKeysWithDescription<I extends Iface> extends org.apache.thrift.ProcessFunction<I, generateAndRegisterSSHKeysWithDescription_args> {
+      public generateAndRegisterSSHKeysWithDescription() {
+        super("generateAndRegisterSSHKeysWithDescription");
+      }
+
+      public generateAndRegisterSSHKeysWithDescription_args getEmptyArgsInstance() {
+        return new generateAndRegisterSSHKeysWithDescription_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public generateAndRegisterSSHKeysWithDescription_result getResult(I iface, generateAndRegisterSSHKeysWithDescription_args args) throws org.apache.thrift.TException {
+        generateAndRegisterSSHKeysWithDescription_result result = new generateAndRegisterSSHKeysWithDescription_result();
+        try {
+          result.success = iface.generateAndRegisterSSHKeysWithDescription(args.authzToken, args.gatewayId, args.userName, args.description);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
     public static class registerPwdCredential<I extends Iface> extends org.apache.thrift.ProcessFunction<I, registerPwdCredential_args> {
       public registerPwdCredential() {
         super("registerPwdCredential");
@@ -20811,6 +20941,7 @@ public class Airavata {
       processMap.put("getNotification", new getNotification());
       processMap.put("getAllNotifications", new getAllNotifications());
       processMap.put("generateAndRegisterSSHKeys", new generateAndRegisterSSHKeys());
+      processMap.put("generateAndRegisterSSHKeysWithDescription", new generateAndRegisterSSHKeysWithDescription());
       processMap.put("registerPwdCredential", new registerPwdCredential());
       processMap.put("getSSHPubKey", new getSSHPubKey());
       processMap.put("getAllGatewaySSHPubKeys", new getAllGatewaySSHPubKeys());
@@ -22046,20 +22177,20 @@ public class Airavata {
       }
     }
 
-    public static class registerPwdCredential<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerPwdCredential_args, String> {
-      public registerPwdCredential() {
-        super("registerPwdCredential");
+    public static class generateAndRegisterSSHKeysWithDescription<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, generateAndRegisterSSHKeysWithDescription_args, String> {
+      public generateAndRegisterSSHKeysWithDescription() {
+        super("generateAndRegisterSSHKeysWithDescription");
       }
 
-      public registerPwdCredential_args getEmptyArgsInstance() {
-        return new registerPwdCredential_args();
+      public generateAndRegisterSSHKeysWithDescription_args getEmptyArgsInstance() {
+        return new generateAndRegisterSSHKeysWithDescription_args();
       }
 
       public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<String>() { 
           public void onComplete(String o) {
-            registerPwdCredential_result result = new registerPwdCredential_result();
+            generateAndRegisterSSHKeysWithDescription_result result = new generateAndRegisterSSHKeysWithDescription_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22072,7 +22203,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            registerPwdCredential_result result = new registerPwdCredential_result();
+            generateAndRegisterSSHKeysWithDescription_result result = new generateAndRegisterSSHKeysWithDescription_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22108,25 +22239,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, registerPwdCredential_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
-        iface.registerPwdCredential(args.authzToken, args.gatewayId, args.portalUserName, args.loginUserName, args.password, args.description,resultHandler);
+      public void start(I iface, generateAndRegisterSSHKeysWithDescription_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.generateAndRegisterSSHKeysWithDescription(args.authzToken, args.gatewayId, args.userName, args.description,resultHandler);
       }
     }
 
-    public static class getSSHPubKey<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getSSHPubKey_args, String> {
-      public getSSHPubKey() {
-        super("getSSHPubKey");
+    public static class registerPwdCredential<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerPwdCredential_args, String> {
+      public registerPwdCredential() {
+        super("registerPwdCredential");
       }
 
-      public getSSHPubKey_args getEmptyArgsInstance() {
-        return new getSSHPubKey_args();
+      public registerPwdCredential_args getEmptyArgsInstance() {
+        return new registerPwdCredential_args();
       }
 
       public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<String>() { 
           public void onComplete(String o) {
-            getSSHPubKey_result result = new getSSHPubKey_result();
+            registerPwdCredential_result result = new registerPwdCredential_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22139,7 +22270,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getSSHPubKey_result result = new getSSHPubKey_result();
+            registerPwdCredential_result result = new registerPwdCredential_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22175,25 +22306,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getSSHPubKey_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
-        iface.getSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
+      public void start(I iface, registerPwdCredential_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.registerPwdCredential(args.authzToken, args.gatewayId, args.portalUserName, args.loginUserName, args.password, args.description,resultHandler);
       }
     }
 
-    public static class getAllGatewaySSHPubKeys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewaySSHPubKeys_args, Map<String,String>> {
-      public getAllGatewaySSHPubKeys() {
-        super("getAllGatewaySSHPubKeys");
+    public static class getSSHPubKey<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getSSHPubKey_args, String> {
+      public getSSHPubKey() {
+        super("getSSHPubKey");
       }
 
-      public getAllGatewaySSHPubKeys_args getEmptyArgsInstance() {
-        return new getAllGatewaySSHPubKeys_args();
+      public getSSHPubKey_args getEmptyArgsInstance() {
+        return new getSSHPubKey_args();
       }
 
-      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Map<String,String>>() { 
-          public void onComplete(Map<String,String> o) {
-            getAllGatewaySSHPubKeys_result result = new getAllGatewaySSHPubKeys_result();
+        return new AsyncMethodCallback<String>() { 
+          public void onComplete(String o) {
+            getSSHPubKey_result result = new getSSHPubKey_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22206,7 +22337,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllGatewaySSHPubKeys_result result = new getAllGatewaySSHPubKeys_result();
+            getSSHPubKey_result result = new getSSHPubKey_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22242,25 +22373,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllGatewaySSHPubKeys_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
-        iface.getAllGatewaySSHPubKeys(args.authzToken, args.gatewayId,resultHandler);
+      public void start(I iface, getSSHPubKey_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.getSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class getAllGatewaySSHPubKeysSummary<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewaySSHPubKeysSummary_args, List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> {
-      public getAllGatewaySSHPubKeysSummary() {
-        super("getAllGatewaySSHPubKeysSummary");
+    public static class getAllGatewaySSHPubKeys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewaySSHPubKeys_args, Map<String,String>> {
+      public getAllGatewaySSHPubKeys() {
+        super("getAllGatewaySSHPubKeys");
       }
 
-      public getAllGatewaySSHPubKeysSummary_args getEmptyArgsInstance() {
-        return new getAllGatewaySSHPubKeysSummary_args();
+      public getAllGatewaySSHPubKeys_args getEmptyArgsInstance() {
+        return new getAllGatewaySSHPubKeys_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>>() { 
-          public void onComplete(List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary> o) {
-            getAllGatewaySSHPubKeysSummary_result result = new getAllGatewaySSHPubKeysSummary_result();
+        return new AsyncMethodCallback<Map<String,String>>() { 
+          public void onComplete(Map<String,String> o) {
+            getAllGatewaySSHPubKeys_result result = new getAllGatewaySSHPubKeys_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22273,7 +22404,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllGatewaySSHPubKeysSummary_result result = new getAllGatewaySSHPubKeysSummary_result();
+            getAllGatewaySSHPubKeys_result result = new getAllGatewaySSHPubKeys_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22309,92 +22440,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllGatewaySSHPubKeysSummary_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> resultHandler) throws TException {
-        iface.getAllGatewaySSHPubKeysSummary(args.authzToken, args.gatewayId,resultHandler);
+      public void start(I iface, getAllGatewaySSHPubKeys_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
+        iface.getAllGatewaySSHPubKeys(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class getAllSSHPubKeysSummaryForUserInGateway<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllSSHPubKeysSummaryForUserInGateway_args, List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> {
-      public getAllSSHPubKeysSummaryForUserInGateway() {
-        super("getAllSSHPubKeysSummaryForUserInGateway");
+    public static class getAllGatewaySSHPubKeysSummary<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewaySSHPubKeysSummary_args, List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> {
+      public getAllGatewaySSHPubKeysSummary() {
+        super("getAllGatewaySSHPubKeysSummary");
       }
 
-      public getAllSSHPubKeysSummaryForUserInGateway_args getEmptyArgsInstance() {
-        return new getAllSSHPubKeysSummaryForUserInGateway_args();
+      public getAllGatewaySSHPubKeysSummary_args getEmptyArgsInstance() {
+        return new getAllGatewaySSHPubKeysSummary_args();
       }
 
       public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>>() { 
           public void onComplete(List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary> o) {
-            getAllSSHPubKeysSummaryForUserInGateway_result result = new getAllSSHPubKeysSummaryForUserInGateway_result();
-            result.success = o;
-            try {
-              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-              return;
-            } catch (Exception e) {
-              LOGGER.error("Exception writing to internal frame buffer", e);
-            }
-            fb.close();
-          }
-          public void onError(Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TBase msg;
-            getAllSSHPubKeysSummaryForUserInGateway_result result = new getAllSSHPubKeysSummaryForUserInGateway_result();
-            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
-                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
-                        result.setIreIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
-                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
-                        result.setAceIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
-                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
-                        result.setAseIsSet(true);
-                        msg = result;
-            }
-             else 
-            {
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
-            }
-            try {
-              fcall.sendResponse(fb,msg,msgType,seqid);
-              return;
-            } catch (Exception ex) {
-              LOGGER.error("Exception writing to internal frame buffer", ex);
-            }
-            fb.close();
-          }
-        };
-      }
-
-      protected boolean isOneway() {
-        return false;
-      }
-
-      public void start(I iface, getAllSSHPubKeysSummaryForUserInGateway_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> resultHandler) throws TException {
-        iface.getAllSSHPubKeysSummaryForUserInGateway(args.authzToken, args.gatewayId, args.userId,resultHandler);
-      }
-    }
-
-    public static class getAllGatewayPWDCredentials<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayPWDCredentials_args, Map<String,String>> {
-      public getAllGatewayPWDCredentials() {
-        super("getAllGatewayPWDCredentials");
-      }
-
-      public getAllGatewayPWDCredentials_args getEmptyArgsInstance() {
-        return new getAllGatewayPWDCredentials_args();
-      }
-
-      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
-        final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Map<String,String>>() { 
-          public void onComplete(Map<String,String> o) {
-            getAllGatewayPWDCredentials_result result = new getAllGatewayPWDCredentials_result();
+            getAllGatewaySSHPubKeysSummary_result result = new getAllGatewaySSHPubKeysSummary_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22407,7 +22471,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllGatewayPWDCredentials_result result = new getAllGatewayPWDCredentials_result();
+            getAllGatewaySSHPubKeysSummary_result result = new getAllGatewaySSHPubKeysSummary_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22443,27 +22507,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllGatewayPWDCredentials_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
-        iface.getAllGatewayPWDCredentials(args.authzToken, args.gatewayId,resultHandler);
+      public void start(I iface, getAllGatewaySSHPubKeysSummary_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> resultHandler) throws TException {
+        iface.getAllGatewaySSHPubKeysSummary(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class deleteSSHPubKey<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteSSHPubKey_args, Boolean> {
-      public deleteSSHPubKey() {
-        super("deleteSSHPubKey");
+    public static class getAllSSHPubKeysSummaryForUserInGateway<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllSSHPubKeysSummaryForUserInGateway_args, List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> {
+      public getAllSSHPubKeysSummaryForUserInGateway() {
+        super("getAllSSHPubKeysSummaryForUserInGateway");
       }
 
-      public deleteSSHPubKey_args getEmptyArgsInstance() {
-        return new deleteSSHPubKey_args();
+      public getAllSSHPubKeysSummaryForUserInGateway_args getEmptyArgsInstance() {
+        return new getAllSSHPubKeysSummaryForUserInGateway_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            deleteSSHPubKey_result result = new deleteSSHPubKey_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>>() { 
+          public void onComplete(List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary> o) {
+            getAllSSHPubKeysSummaryForUserInGateway_result result = new getAllSSHPubKeysSummaryForUserInGateway_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22475,7 +22538,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteSSHPubKey_result result = new deleteSSHPubKey_result();
+            getAllSSHPubKeysSummaryForUserInGateway_result result = new getAllSSHPubKeysSummaryForUserInGateway_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22511,27 +22574,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteSSHPubKey_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
+      public void start(I iface, getAllSSHPubKeysSummaryForUserInGateway_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.credentialsummary.CredentialSummary>> resultHandler) throws TException {
+        iface.getAllSSHPubKeysSummaryForUserInGateway(args.authzToken, args.gatewayId, args.userId,resultHandler);
       }
     }
 
-    public static class deletePWDCredential<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deletePWDCredential_args, Boolean> {
-      public deletePWDCredential() {
-        super("deletePWDCredential");
+    public static class getAllGatewayPWDCredentials<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayPWDCredentials_args, Map<String,String>> {
+      public getAllGatewayPWDCredentials() {
+        super("getAllGatewayPWDCredentials");
       }
 
-      public deletePWDCredential_args getEmptyArgsInstance() {
-        return new deletePWDCredential_args();
+      public getAllGatewayPWDCredentials_args getEmptyArgsInstance() {
+        return new getAllGatewayPWDCredentials_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            deletePWDCredential_result result = new deletePWDCredential_result();
+        return new AsyncMethodCallback<Map<String,String>>() { 
+          public void onComplete(Map<String,String> o) {
+            getAllGatewayPWDCredentials_result result = new getAllGatewayPWDCredentials_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22543,7 +22605,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deletePWDCredential_result result = new deletePWDCredential_result();
+            getAllGatewayPWDCredentials_result result = new getAllGatewayPWDCredentials_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22579,26 +22641,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deletePWDCredential_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deletePWDCredential(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
+      public void start(I iface, getAllGatewayPWDCredentials_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
+        iface.getAllGatewayPWDCredentials(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class createProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createProject_args, String> {
-      public createProject() {
-        super("createProject");
+    public static class deleteSSHPubKey<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteSSHPubKey_args, Boolean> {
+      public deleteSSHPubKey() {
+        super("deleteSSHPubKey");
       }
 
-      public createProject_args getEmptyArgsInstance() {
-        return new createProject_args();
+      public deleteSSHPubKey_args getEmptyArgsInstance() {
+        return new deleteSSHPubKey_args();
       }
 
-      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<String>() { 
-          public void onComplete(String o) {
-            createProject_result result = new createProject_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            deleteSSHPubKey_result result = new deleteSSHPubKey_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22610,7 +22673,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            createProject_result result = new createProject_result();
+            deleteSSHPubKey_result result = new deleteSSHPubKey_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22626,11 +22689,6 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-                        result.setAeIsSet(true);
-                        msg = result;
-            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -22651,25 +22709,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, createProject_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
-        iface.createProject(args.authzToken, args.gatewayId, args.project,resultHandler);
+      public void start(I iface, deleteSSHPubKey_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class updateProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProject_args, Void> {
-      public updateProject() {
-        super("updateProject");
+    public static class deletePWDCredential<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deletePWDCredential_args, Boolean> {
+      public deletePWDCredential() {
+        super("deletePWDCredential");
       }
 
-      public updateProject_args getEmptyArgsInstance() {
-        return new updateProject_args();
+      public deletePWDCredential_args getEmptyArgsInstance() {
+        return new deletePWDCredential_args();
       }
 
-      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            updateProject_result result = new updateProject_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            deletePWDCredential_result result = new deletePWDCredential_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22681,7 +22741,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateProject_result result = new updateProject_result();
+            deletePWDCredential_result result = new deletePWDCredential_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22697,16 +22757,6 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
-                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
-                        result.setPnfeIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-                        result.setAeIsSet(true);
-                        msg = result;
-            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -22727,25 +22777,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateProject_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
-        iface.updateProject(args.authzToken, args.projectId, args.updatedProject,resultHandler);
+      public void start(I iface, deletePWDCredential_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deletePWDCredential(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class getProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProject_args, org.apache.airavata.model.workspace.Project> {
-      public getProject() {
-        super("getProject");
+    public static class createProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createProject_args, String> {
+      public createProject() {
+        super("createProject");
       }
 
-      public getProject_args getEmptyArgsInstance() {
-        return new getProject_args();
+      public createProject_args getEmptyArgsInstance() {
+        return new createProject_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.workspace.Project> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<org.apache.airavata.model.workspace.Project>() { 
-          public void onComplete(org.apache.airavata.model.workspace.Project o) {
-            getProject_result result = new getProject_result();
+        return new AsyncMethodCallback<String>() { 
+          public void onComplete(String o) {
+            createProject_result result = new createProject_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22758,7 +22808,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getProject_result result = new getProject_result();
+            createProject_result result = new createProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22774,11 +22824,6 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
-                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
-                        result.setPnfeIsSet(true);
-                        msg = result;
-            }
             else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
                         result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
                         result.setAeIsSet(true);
@@ -22804,27 +22849,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getProject_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Project> resultHandler) throws TException {
-        iface.getProject(args.authzToken, args.projectId,resultHandler);
+      public void start(I iface, createProject_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.createProject(args.authzToken, args.gatewayId, args.project,resultHandler);
       }
     }
 
-    public static class deleteProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteProject_args, Boolean> {
-      public deleteProject() {
-        super("deleteProject");
+    public static class updateProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProject_args, Void> {
+      public updateProject() {
+        super("updateProject");
       }
 
-      public deleteProject_args getEmptyArgsInstance() {
-        return new deleteProject_args();
+      public updateProject_args getEmptyArgsInstance() {
+        return new updateProject_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            deleteProject_result result = new deleteProject_result();
-            result.success = o;
-            result.setSuccessIsSet(true);
+        return new AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateProject_result result = new updateProject_result();
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22836,7 +22879,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteProject_result result = new deleteProject_result();
+            updateProject_result result = new updateProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22882,25 +22925,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteProject_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteProject(args.authzToken, args.projectId,resultHandler);
+      public void start(I iface, updateProject_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
+        iface.updateProject(args.authzToken, args.projectId, args.updatedProject,resultHandler);
       }
     }
 
-    public static class getUserProjects<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserProjects_args, List<org.apache.airavata.model.workspace.Project>> {
-      public getUserProjects() {
-        super("getUserProjects");
+    public static class getProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProject_args, org.apache.airavata.model.workspace.Project> {
+      public getProject() {
+        super("getProject");
       }
 
-      public getUserProjects_args getEmptyArgsInstance() {
-        return new getUserProjects_args();
+      public getProject_args getEmptyArgsInstance() {
+        return new getProject_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.workspace.Project> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
-            getUserProjects_result result = new getUserProjects_result();
+        return new AsyncMethodCallback<org.apache.airavata.model.workspace.Project>() { 
+          public void onComplete(org.apache.airavata.model.workspace.Project o) {
+            getProject_result result = new getProject_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22913,7 +22956,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getUserProjects_result result = new getUserProjects_result();
+            getProject_result result = new getProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22929,76 +22972,9 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-                        result.setAeIsSet(true);
-                        msg = result;
-            }
-             else 
-            {
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
-            }
-            try {
-              fcall.sendResponse(fb,msg,msgType,seqid);
-              return;
-            } catch (Exception ex) {
-              LOGGER.error("Exception writing to internal frame buffer", ex);
-            }
-            fb.close();
-          }
-        };
-      }
-
-      protected boolean isOneway() {
-        return false;
-      }
-
-      public void start(I iface, getUserProjects_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
-        iface.getUserProjects(args.authzToken, args.gatewayId, args.userName, args.limit, args.offset,resultHandler);
-      }
-    }
-
-    public static class searchProjects<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchProjects_args, List<org.apache.airavata.model.workspace.Project>> {
-      public searchProjects() {
-        super("searchProjects");
-      }
-
-      public searchProjects_args getEmptyArgsInstance() {
-        return new searchProjects_args();
-      }
-
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
-        final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
-            searchProjects_result result = new searchProjects_result();
-            result.success = o;
-            try {
-              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-              return;
-            } catch (Exception e) {
-              LOGGER.error("Exception writing to internal frame buffer", e);
-            }
-            fb.close();
-          }
-          public void onError(Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TBase msg;
-            searchProjects_result result = new searchProjects_result();
-            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
-                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
-                        result.setIreIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
-                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
-                        result.setAceIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
-                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
-                        result.setAseIsSet(true);
+            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
+                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
+                        result.setPnfeIsSet(true);
                         msg = result;
             }
             else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
@@ -23026,26 +23002,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, searchProjects_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
-        iface.searchProjects(args.authzToken, args.gatewayId, args.userName, args.filters, args.limit, args.offset,resultHandler);
+      public void start(I iface, getProject_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Project> resultHandler) throws TException {
+        iface.getProject(args.authzToken, args.projectId,resultHandler);
       }
     }
 
-    public static class searchExperiments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperiments_args, List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> {
-      public searchExperiments() {
-        super("searchExperiments");
+    public static class deleteProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteProject_args, Boolean> {
+      public deleteProject() {
+        super("deleteProject");
       }
 
-      public searchExperiments_args getEmptyArgsInstance() {
-        return new searchExperiments_args();
+      public deleteProject_args getEmptyArgsInstance() {
+        return new deleteProject_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>>() { 
-          public void onComplete(List<org.apache.airavata.model.experiment.ExperimentSummaryModel> o) {
-            searchExperiments_result result = new searchExperiments_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            deleteProject_result result = new deleteProject_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -23057,7 +23034,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchExperiments_result result = new searchExperiments_result();
+            deleteProject_result result = new deleteProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -23073,6 +23050,11 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
+                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
+                        result.setPnfeIsSet(true);
+                        msg = result;
+            }
             else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
                         result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
                         result.setAeIsSet(true);
@@ -23098,25 +23080,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, searchExperiments_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> resultHandler) throws TException {
-        iface.searchExperiments(args.authzToken, args.gatewayId, args.userName, args.filters, args.limit, args.offset,resultHandler);
+      public void start(I iface, deleteProject_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteProject(args.authzToken, args.projectId,resultHandler);
       }
     }
 
-    public static class getExperimentStatistics<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperimentStatistics_args, org.apache.airavata.model.experiment.ExperimentStatistics> {
-      public getExperimentStatistics() {
-        super("getExperimentStatistics");
+    public static class getUserProjects<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserProjects_args, List<org.apache.airavata.model.workspace.Project>> {
+      public getUserProjects() {
+        super("getUserProjects");
       }
 
-      public getExperimentStatistics_args getEmptyArgsInstance() {
-        return new getExperimentStatistics_args();
+      public getUserProjects_args getEmptyArgsInstance() {
+        return new getUserProjects_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentStatistics> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentStatistics>() { 
-          public void onComplete(org.apache.airavata.model.experiment.ExperimentStatistics o) {
-            getExperimentStatistics_result result = new getExperimentStatistics_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
+            getUserProjects_result result = new getUserProjects_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23129,7 +23111,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getExperimentStatistics_result result = new getExperimentStatistics_result();
+            getUserProjects_result result = new getUserProjects_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -23170,25 +23152,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getExperimentStatistics_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentStatistics> resultHandler) throws TException {
-        iface.getExperimentStatistics(args.authzToken, args.gatewayId, args.fromTime, args.toTime,resultHandler);
+      public void start(I iface, getUserProjects_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
+        iface.getUserProjects(args.authzToken, args.gatewayId, args.userName, args.limit, args.offset,resultHandler);
       }
     }
 
-    public static class getExperimentsInProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperimentsInProject_args, List<org.apache.airavata.model.experiment.ExperimentModel>> {
-      public getExperimentsInProject() {
-        super("getExperimentsInProject");
+    public static class searchProjects<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchProjects_args, List<org.apache.airavata.model.workspace.Project>> {
+      public searchProjects() {
+        super("searchProjects");
       }
 
-      public getExperimentsInProject_args getEmptyArgsInstance() {
-        return new getExperimentsInProject_args();
+      public searchProjects_args getEmptyArgsInstance() {
+        return new searchProjects_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>>() { 
-          public void onComplete(List<org.apache.airavata.model.experiment.ExperimentModel> o) {
-            getExperimentsInProject_result result = new getExperimentsInProject_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
+            searchProjects_result result = new searchProjects_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23201,7 +23183,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getExperimentsInProject_result result = new getExperimentsInProject_result();
+            searchProjects_result result = new searchProjects_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -23217,11 +23199,6 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
-                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
-                        result.setPnfeIsSet(true);
-                        msg = result;
-            }
             else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
                         result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
                         result.setAeIsSet(true);
@@ -23247,25 +23224,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getExperimentsInProject_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>> resultHandler) throws TException {
-        iface.getExperimentsInProject(args.authzToken, args.projectId, args.limit, args.offset,resultHandler);
+      public void start(I iface, searchProjects_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
+        iface.searchProjects(args.authzToken, args.gatewayId, args.userName, args.filters, args.limit, args.offset,resultHandler);
       }
     }
 
-    public static class getUserExperiments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserExperiments_args, List<org.apache.airavata.model.experiment.ExperimentModel>> {
-      public getUserExperiments() {
-        super("getUserExperiments");
+    public static class searchExperiments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperiments_args, List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> {
+      public searchExperiments() {
+        super("searchExperiments");
       }
 
-      public getUserExperiments_args getEmptyArgsInstance() {
-        return new getUserExperiments_args();
+      public searchExperiments_args getEmptyArgsInstance() {
+        return new searchExperiments_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>>() { 
-          public void onComplete(List<org.apache.airavata.model.experiment.ExperimentModel> o) {
-            getUserExperiments_result result = new getUserExperiments_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>>() { 
+          public void onComplete(List<org.apache.airavata.model.experiment.ExperimentSummaryModel> o) {
+            searchExperiments_result result = new searchExperiments_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23278,7 +23255,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getUserExperiments_result result = new getUserExperiments_result();
+            searchExperiments_result result = new searchExperiments_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -23319,25 +23296,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getUserExperiments_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>> resultHandler) throws TException {
-        iface.getUserExperiments(args.authzToken, args.gatewayId, args.userName, args.limit, args.offset,resultHandler);
+      public void start(I iface, searchExperiments_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> resultHandler) throws TException {
+        iface.searchExperiments(args.authzToken, args.gatewayId, args.userName, args.filters, args.limit, args.offset,resultHandler);
       }
     }
 
-    public static class createExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createExperiment_args, String> {
-      public createExperiment() {
-        super("createExperiment");
+    public static class getExperimentStatistics<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperimentStatistics_args, org.apache.airavata.model.experiment.ExperimentStatistics> {
+      public getExperimentStatistics() {
+        super("getExperimentStatistics");
       }
 
-      public createExperiment_args getEmptyArgsInstance() {
-        return new createExperiment_args();
+      public getExperimentStatistics_args getEmptyArgsInstance() {
+        return new getExperimentStatistics_args();
       }
 
-      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentStatistics> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<String>() { 
-          public void onComplete(String o) {
-            createExperiment_result result = new createExperiment_result();
+        return new AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentStatistics>() { 
+          public void onComplete(org.apache.airavata.model.experiment.ExperimentStatistics o) {
+            getExperimentStatistics_result result = new getExperimentStatistics_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23350,7 +23327,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            createExperiment_result result = new createExperiment_result();
+            getExperimentStatistics_result result = new getExperimentStatistics_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -23391,27 +23368,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, createExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
-        iface.createExperiment(args.authzToken, args.gatewayId, args.experiment,resultHandler);
+      public void start(I iface, getExperimentStatistics_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentStatistics> resultHandler) throws TException {
+        iface.getExperimentStatistics(args.authzToken, args.gatewayId, args.fromTime, args.toTime,resultHandler);
       }
     }
 
-    public static class deleteExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteExperiment_args, Boolean> {
-      public deleteExperiment() {
-        super("deleteExperiment");
+    public static class getExperimentsInProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperimentsInProject_args, List<org.apache.airavata.model.experiment.ExperimentModel>> {
+      public getExperimentsInProject() {
+        super("getExperimentsInProject");
       }
 
-      public deleteExperiment_args getEmptyArgsInstance() {
-        return new deleteExperiment_args();
+      public getExperimentsInProject_args getEmptyArgsInstance() {
+        return new getExperimentsInProject_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            deleteExperiment_result result = new deleteExperiment_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>>() { 
+          public void onComplete(List<org.apache.airavata.model.experiment.ExperimentModel> o) {
+            getExperimentsInProject_result result = new getExperimentsInProject_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -23423,7 +23399,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteExperiment_result result = new deleteExperiment_result();
+            getExperimentsInProject_result result = new getExperimentsInProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -23439,6 +23415,11 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
+                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
+                        result.setPnfeIsSet(true);
+                        msg = result;
+            }
             else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
                         result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
                         result.setAeIsSet(true);
@@ -23464,25 +23445,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteExperiment(args.authzToken, args.experimentId,resultHandler);
+      public void start(I iface, getExperimentsInProject_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>> resultHandler) throws TException {
+        iface.getExperimentsInProject(args.authzToken, args.projectId, args.limit, args.offset,resultHandler);
       }
     }
 
-    public static class getExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperiment_args, org.apache.airavata.model.experiment.ExperimentModel> {
-      public getExperiment() {
-        super("getExperiment");
+    public static class getUserExperiments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserExperiments_args, List<org.apache.airavata.model.experiment.ExperimentModel>> {
+      public getUserExperiments() {
+        super("getUserExperiments");
       }
 
-      public getExperiment_args getEmptyArgsInstance() {
-        return new getExperiment_args();
+      public getUserExperiments_args getEmptyArgsInstance() {
+        return new getUserExperiments_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel>() { 
-          public void onComplete(org.apache.airavata.model.experiment.ExperimentModel o) {
-            getExperiment_result result = new getExperiment_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>>() { 
+          public void onComplete(List<org.apache.airavata.model.experiment.ExperimentModel> o) {
+            getUserExperiments_result result = new getUserExperiments_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23495,17 +23476,12 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getExperiment_result result = new getExperiment_result();
+            getUserExperiments_result result = new getUserExperiments_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ExperimentNotFoundException) {
-                        result.enf = (org.apache.airavata.model.error.ExperimentNotFoundException) e;
-                        result.setEnfIsSet(true);
-                        msg = result;
-            }
             else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
                         result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
                         result.setAceIsSet(true);
@@ -23541,25 +23517,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel> resultHandler) throws TException {
-        iface.getExperiment(args.authzToken, args.airavataExperimentId,resultHandler);
+      public void start(I iface, getUserExperiments_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentModel>> resultHandler) throws TException {
+        iface.getUserExperiments(args.authzToken, args.gatewayId, args.userName, args.limit, args.offset,resultHandler);
       }
     }
 
-    public static class getDetailedExperimentTree<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getDetailedExperimentTree_args, org.apache.airavata.model.experiment.ExperimentModel> {
-      public getDetailedExperimentTree() {
-        super("getDetailedExperimentTree");
+    public static class createExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createExperiment_args, String> {
+      public createExperiment() {
+        super("createExperiment");
       }
 
-      public getDetailedExperimentTree_args getEmptyArgsInstance() {
-        return new getDetailedExperimentTree_args();
+      public createExperiment_args getEmptyArgsInstance() {
+        return new createExperiment_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel>() { 
-          public void onComplete(org.apache.airavata.model.experiment.ExperimentModel o) {
-            getDetailedExperimentTree_result result = new getDetailedExperimentTree_result();
+        return new AsyncMethodCallback<String>() { 
+          public void onComplete(String o) {
+            createExperiment_result result = new createExperiment_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23572,15 +23548,83 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getDetailedExperimentTree_result result = new getDetailedExperimentTree_result();
+            createExperiment_result result = new createExperiment_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ExperimentNotFoundException) {
-                        result.enf = (org.apache.airavata.model.error.ExperimentNotFoundException) e;
-                        result.setEnfIsSet(true);
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+                        result.setAeIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, createExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.createExperiment(args.authzToken, args.gatewayId, args.experiment,resultHandler);
+      }
+    }
+
+    public static class deleteExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteExperiment_args, Boolean> {
+      public deleteExperiment() {
+        super("deleteExperiment");
+      }
+
+      public deleteExperiment_args getEmptyArgsInstance() {
+        return new deleteExperiment_args();
+      }
+
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            deleteExperiment_result result = new deleteExperiment_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            deleteExperiment_result result = new deleteExperiment_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
                         msg = result;
             }
             else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
@@ -23618,25 +23662,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getDetailedExperimentTree_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel> resultHandler) throws TException {
-        iface.getDetailedExperimentTree(args.authzToken, args.airavataExperimentId,resultHandler);
+      public void start(I iface, deleteExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteExperiment(args.authzToken, args.experimentId,resultHandler);
       }
     }
 
-    public static class updateExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateExperiment_args, Void> {
-      public updateExperiment() {
-        super("updateExperiment");
+    public static class getExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperiment_args, org.apache.airavata.model.experiment.ExperimentModel> {
+      public getExperiment() {
+        super("getExperiment");
       }
 
-      public updateExperiment_args getEmptyArgsInstance() {
-        return new updateExperiment_args();
+      public getExperiment_args getEmptyArgsInstance() {
+        return new getExperiment_args();
       }
 
-      public Asyn

<TRUNCATED>