airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From machris...@apache.org
Subject [airavata] 03/03: Merge branch 'is-user-enabled' into group-based-auth
Date Fri, 08 Jun 2018 21:16:28 GMT
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch group-based-auth
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 5ba95f9ed8ac28e21017a792e97ece1943fc3146
Merge: 28cb205 32a58cf
Author: Marcus Christie <machristie@apache.org>
AuthorDate: Fri Jun 8 17:15:41 2018 -0400

    Merge branch 'is-user-enabled' into group-based-auth

 .../Iam/Admin/Services/CPI/IamAdminServices.php    |  294 +++++
 .../core/impl/TenantManagementKeycloakImpl.java    |   19 +
 .../core/interfaces/TenantManagementInterface.java |   10 +
 .../profile/handlers/IamAdminServicesHandler.java  |   14 +
 .../iam/admin/services/cpi/IamAdminServices.java   | 1200 ++++++++++++++++++++
 .../scigap/dreg-production/group_vars/pga/vars.yml |    4 +-
 .../scigap/production/pga_config/csbglsu/vars.yml  |   17 +-
 .../pga_config/{searchingSRA => demo1}/vars.yml    |   14 +-
 .../scigap/production/pga_config/demo1/vault.yml   |   17 +
 .../pga_config/{searchingSRA => demo10}/vars.yml   |   14 +-
 .../scigap/production/pga_config/demo10/vault.yml  |   17 +
 .../pga_config/{searchingSRA => demo2}/vars.yml    |   14 +-
 .../scigap/production/pga_config/demo2/vault.yml   |   17 +
 .../pga_config/{searchingSRA => demo3}/vars.yml    |   14 +-
 .../scigap/production/pga_config/demo3/vault.yml   |   17 +
 .../pga_config/{searchingSRA => demo4}/vars.yml    |   14 +-
 .../scigap/production/pga_config/demo4/vault.yml   |   17 +
 .../pga_config/{searchingSRA => demo5}/vars.yml    |   14 +-
 .../scigap/production/pga_config/demo5/vault.yml   |   17 +
 .../pga_config/{searchingSRA => demo6}/vars.yml    |   14 +-
 .../scigap/production/pga_config/demo6/vault.yml   |   17 +
 .../pga_config/{searchingSRA => demo7}/vars.yml    |   14 +-
 .../scigap/production/pga_config/demo7/vault.yml   |   17 +
 .../pga_config/{searchingSRA => demo8}/vars.yml    |   14 +-
 .../scigap/production/pga_config/demo8/vault.yml   |   17 +
 .../pga_config/{searchingSRA => demo9}/vars.yml    |   14 +-
 .../scigap/production/pga_config/demo9/vault.yml   |   17 +
 .../production/pga_config/georgiastate/vars.yml    |    6 +-
 .../pga_config/{csbglsu => interactwel}/vars.yml   |   25 +-
 .../production/pga_config/interactwel/vault.yml    |   18 +
 .../production/pga_config/iugateway/vars.yml       |    4 +-
 .../production/pga_config/newUltrascan/vars.yml    |   73 --
 .../production/pga_config/newUltrascan/vault.yml   |   18 -
 .../pga_config/{csbglsu => nexttdb}/vars.yml       |   25 +-
 .../scigap/production/pga_config/nexttdb/vault.yml |   18 +
 .../production/pga_config/searchingSRA/vars.yml    |   15 +-
 .../pga_config/simvascular/files/pga_config.php.j2 |    7 +-
 .../production/pga_config/southdakota/vars.yml     |    8 +-
 dev-tools/ansible/pga-scigap-prod.yml              |    1 -
 .../gfac/templates/airavata-server.properties.j2   |    2 +-
 .../roles/gfac/templates/gfac-config.yaml.j2       |    4 +
 .../roles/pga/templates/pga-ssl-vhost.conf.j2      |    7 +
 .../ansible/roles/pga/templates/pga-vhost.conf.j2  |    9 +-
 .../airavata/gfac/impl/HPCRemoteCluster.java       |    5 +-
 .../airavata/gfac/impl/task/SCPDataStageTask.java  |   23 +-
 .../src/main/resources/appcatalog-mysql.sql        |    2 +-
 .../DeltaScripts/appCatalog_schema_delta.sql       |   38 +-
 .../DeltaScripts/credentialStore_schema_delta.sql  |    8 -
 .../DeltaScripts/expCatalog_schema_delta.sql       |    8 -
 .../DeltaScripts/replicaCatalog_schema_delta.sql   |    8 -
 .../DeltaScripts/sharingCatalog_schema_delta.sql   |   21 +
 .../DeltaScripts/workFlow_schema_delta.sql         |    8 -
 ...licaCatalog_lowercase_user_data_dir_example.sql |    0
 .../credentialStore_keycloak_migration.sql         |    0
 .../expCatalog_keycloak_migration.sql              |    0
 .../profileService_keycloak_migration.sql          |    0
 .../sharingCatalog_keycloak_migration.sql          |    0
 .../0.16-0.17/migration-notes.md                   |    9 +-
 .../DeltaScripts/appCatalog_schema_delta.sql       |   30 -
 .../0.17-0.18/migration-notes.md                   |   17 -
 .../DeltaScripts/appCatalog_schema_delta.sql       |   36 -
 .../iam-admin-services-cpi.thrift                  |    5 +
 62 files changed, 1978 insertions(+), 348 deletions(-)

diff --cc airavata-services/profile-service/profile-service-stubs/src/main/java/org/apache/airavata/service/profile/iam/admin/services/cpi/IamAdminServices.java
index ba5055a,1366bd1..5fe5f6b
--- a/airavata-services/profile-service/profile-service-stubs/src/main/java/org/apache/airavata/service/profile/iam/admin/services/cpi/IamAdminServices.java
+++ b/airavata-services/profile-service/profile-service-stubs/src/main/java/org/apache/airavata/service/profile/iam/admin/services/cpi/IamAdminServices.java
@@@ -32,13 -59,15 +32,15 @@@ public class IamAdminServices 
  
      public org.apache.airavata.model.workspace.Gateway setUpGateway(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Gateway gateway) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
  
 -    public boolean registerUser(org.apache.airavata.model.security.AuthzToken authzToken, String username, String emailAddress, String firstName, String lastName, String newPassword) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 +    public boolean registerUser(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, java.lang.String emailAddress, java.lang.String firstName, java.lang.String lastName, java.lang.String newPassword) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
  
 -    public boolean enableUser(org.apache.airavata.model.security.AuthzToken authzToken, String username) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 +    public boolean enableUser(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
  
 -    public boolean isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, String username) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
++    public boolean isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+ 
 -    public boolean resetUserPassword(org.apache.airavata.model.security.AuthzToken authzToken, String username, String newPassword) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 +    public boolean resetUserPassword(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, java.lang.String newPassword) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
  
 -    public List<org.apache.airavata.model.user.UserProfile> findUsers(org.apache.airavata.model.security.AuthzToken authzToken, String email, String userId) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 +    public java.util.List<org.apache.airavata.model.user.UserProfile> findUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String email, java.lang.String userId) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
  
      public void updateUserProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.user.UserProfile userDetails) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
  
@@@ -52,25 -81,27 +54,27 @@@
  
    public interface AsyncIface {
  
 -    public void getAPIVersion(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void getAPIVersion(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
  
 -    public void setUpGateway(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Gateway gateway, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void setUpGateway(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Gateway gateway, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Gateway> resultHandler) throws org.apache.thrift.TException;
  
 -    public void registerUser(org.apache.airavata.model.security.AuthzToken authzToken, String username, String emailAddress, String firstName, String lastName, String newPassword, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void registerUser(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, java.lang.String emailAddress, java.lang.String firstName, java.lang.String lastName, java.lang.String newPassword, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void enableUser(org.apache.airavata.model.security.AuthzToken authzToken, String username, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void enableUser(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, String username, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
++    public void isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
+ 
 -    public void resetUserPassword(org.apache.airavata.model.security.AuthzToken authzToken, String username, String newPassword, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void resetUserPassword(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, java.lang.String newPassword, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void findUsers(org.apache.airavata.model.security.AuthzToken authzToken, String email, String userId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void findUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String email, java.lang.String userId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.user.UserProfile>> resultHandler) throws org.apache.thrift.TException;
  
 -    public void updateUserProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.user.UserProfile userDetails, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void updateUserProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.user.UserProfile userDetails, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
  
 -    public void addRoleToUser(org.apache.airavata.model.security.AuthzToken authzToken, String username, String roleName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void addRoleToUser(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, java.lang.String roleName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void removeRoleFromUser(org.apache.airavata.model.security.AuthzToken authzToken, String username, String roleName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void removeRoleFromUser(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, java.lang.String roleName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getUsersWithRole(org.apache.airavata.model.security.AuthzToken authzToken, String roleName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void getUsersWithRole(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String roleName, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.user.UserProfile>> resultHandler) throws org.apache.thrift.TException;
  
    }
  
@@@ -217,7 -248,37 +221,37 @@@
        throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "enableUser failed: unknown result");
      }
  
 -    public boolean isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, String username) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
++    public boolean isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+     {
+       send_isUserEnabled(authzToken, username);
+       return recv_isUserEnabled();
+     }
+ 
 -    public void send_isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, String username) throws org.apache.thrift.TException
++    public void send_isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username) throws org.apache.thrift.TException
+     {
+       isUserEnabled_args args = new isUserEnabled_args();
+       args.setAuthzToken(authzToken);
+       args.setUsername(username);
+       sendBase("isUserEnabled", args);
+     }
+ 
+     public boolean recv_isUserEnabled() throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+     {
+       isUserEnabled_result result = new isUserEnabled_result();
+       receiveBase(result, "isUserEnabled");
+       if (result.isSetSuccess()) {
+         return result.success;
+       }
+       if (result.Idse != null) {
+         throw result.Idse;
+       }
+       if (result.ae != null) {
+         throw result.ae;
+       }
+       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isUserEnabled failed: unknown result");
+     }
+ 
 -    public boolean resetUserPassword(org.apache.airavata.model.security.AuthzToken authzToken, String username, String newPassword) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
 +    public boolean resetUserPassword(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, java.lang.String newPassword) throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
      {
        send_resetUserPassword(authzToken, username, newPassword);
        return recv_resetUserPassword();
@@@ -565,7 -626,42 +599,42 @@@
        }
      }
  
 -    public void isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, String username, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
++    public void isUserEnabled(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+       checkReady();
+       isUserEnabled_call method_call = new isUserEnabled_call(authzToken, username, resultHandler, this, ___protocolFactory, ___transport);
+       this.___currentMethod = method_call;
+       ___manager.call(method_call);
+     }
+ 
 -    public static class isUserEnabled_call extends org.apache.thrift.async.TAsyncMethodCall {
++    public static class isUserEnabled_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
+       private org.apache.airavata.model.security.AuthzToken authzToken;
 -      private String username;
 -      public isUserEnabled_call(org.apache.airavata.model.security.AuthzToken authzToken, String username, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
++      private java.lang.String username;
++      public isUserEnabled_call(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> 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.username = username;
+       }
+ 
+       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+         prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("isUserEnabled", org.apache.thrift.protocol.TMessageType.CALL, 0));
+         isUserEnabled_args args = new isUserEnabled_args();
+         args.setAuthzToken(authzToken);
+         args.setUsername(username);
+         args.write(prot);
+         prot.writeMessageEnd();
+       }
+ 
 -      public boolean getResult() throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
++      public java.lang.Boolean getResult() throws org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
 -          throw new IllegalStateException("Method call not finished!");
++          throw new java.lang.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_isUserEnabled();
+       }
+     }
+ 
 -    public void resetUserPassword(org.apache.airavata.model.security.AuthzToken authzToken, String username, String newPassword, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
 +    public void resetUserPassword(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String username, java.lang.String newPassword, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        checkReady();
        resetUserPassword_call method_call = new resetUserPassword_call(authzToken, username, newPassword, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
@@@ -1382,7 -1479,70 +1480,77 @@@
        }
      }
  
 -    public static class isUserEnabled<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isUserEnabled_args, Boolean> {
++    public static class isUserEnabled<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isUserEnabled_args, java.lang.Boolean> {
+       public isUserEnabled() {
+         super("isUserEnabled");
+       }
+ 
+       public isUserEnabled_args getEmptyArgsInstance() {
+         return new isUserEnabled_args();
+       }
+ 
 -      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+         final org.apache.thrift.AsyncProcessFunction fcall = this;
 -        return new AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
++          public void onComplete(java.lang.Boolean o) {
+             isUserEnabled_result result = new isUserEnabled_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);
++              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
++            } catch (org.apache.thrift.transport.TTransportException e) {
++              _LOGGER.error("TTransportException writing to internal frame buffer", e);
++              fb.close();
++            } catch (java.lang.Exception e) {
++              _LOGGER.error("Exception writing to internal frame buffer", e);
++              onError(e);
+             }
 -            fb.close();
+           }
 -          public void onError(Exception e) {
++          public void onError(java.lang.Exception e) {
+             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
++            org.apache.thrift.TSerializable msg;
+             isUserEnabled_result result = new isUserEnabled_result();
+             if (e instanceof org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException) {
 -                        result.Idse = (org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException) e;
 -                        result.setIdseIsSet(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 
 -            {
++              result.Idse = (org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException) e;
++              result.setIdseIsSet(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 if (e instanceof org.apache.thrift.transport.TTransportException) {
++              _LOGGER.error("TTransportException inside handler", e);
++              fb.close();
++              return;
++            } else if (e instanceof org.apache.thrift.TApplicationException) {
++              _LOGGER.error("TApplicationException inside handler", e);
++              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
++              msg = (org.apache.thrift.TApplicationException)e;
++            } else {
++              _LOGGER.error("Exception inside handler", e);
+               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());
++              msg = 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);
++            } catch (java.lang.Exception ex) {
++              _LOGGER.error("Exception writing to internal frame buffer", ex);
++              fb.close();
+             }
 -            fb.close();
+           }
+         };
+       }
+ 
+       protected boolean isOneway() {
+         return false;
+       }
+ 
 -      public void start(I iface, isUserEnabled_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, isUserEnabled_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.isUserEnabled(args.authzToken, args.username,resultHandler);
+       }
+     }
+ 
 -    public static class resetUserPassword<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, resetUserPassword_args, Boolean> {
 +    public static class resetUserPassword<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, resetUserPassword_args, java.lang.Boolean> {
        public resetUserPassword() {
          super("resetUserPassword");
        }
@@@ -6230,6 -6362,1041 +6398,1038 @@@
            struct.setIdseIsSet(true);
          }
          if (incoming.get(2)) {
+           struct.ae = new org.apache.airavata.model.error.AuthorizationException();
+           struct.ae.read(iprot);
+           struct.setAeIsSet(true);
+         }
+       }
+     }
+ 
++    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
++      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
++    }
+   }
+ 
+   public static class isUserEnabled_args implements org.apache.thrift.TBase<isUserEnabled_args, isUserEnabled_args._Fields>, java.io.Serializable, Cloneable, Comparable<isUserEnabled_args>   {
+     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isUserEnabled_args");
+ 
+     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+     private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)2);
+ 
 -    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
 -    static {
 -      schemes.put(StandardScheme.class, new isUserEnabled_argsStandardSchemeFactory());
 -      schemes.put(TupleScheme.class, new isUserEnabled_argsTupleSchemeFactory());
 -    }
++    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new isUserEnabled_argsStandardSchemeFactory();
++    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new isUserEnabled_argsTupleSchemeFactory();
+ 
+     public org.apache.airavata.model.security.AuthzToken authzToken; // required
 -    public String username; // required
++    public java.lang.String username; // required
+ 
+     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+       AUTHZ_TOKEN((short)1, "authzToken"),
+       USERNAME((short)2, "username");
+ 
 -      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
++      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+ 
+       static {
 -        for (_Fields field : EnumSet.allOf(_Fields.class)) {
++        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+           byName.put(field.getFieldName(), field);
+         }
+       }
+ 
+       /**
+        * Find the _Fields constant that matches fieldId, or null if its not found.
+        */
+       public static _Fields findByThriftId(int fieldId) {
+         switch(fieldId) {
+           case 1: // AUTHZ_TOKEN
+             return AUTHZ_TOKEN;
+           case 2: // USERNAME
+             return USERNAME;
+           default:
+             return null;
+         }
+       }
+ 
+       /**
+        * Find the _Fields constant that matches fieldId, throwing an exception
+        * if it is not found.
+        */
+       public static _Fields findByThriftIdOrThrow(int fieldId) {
+         _Fields fields = findByThriftId(fieldId);
 -        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
++        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+         return fields;
+       }
+ 
+       /**
+        * Find the _Fields constant that matches name, or null if its not found.
+        */
 -      public static _Fields findByName(String name) {
++      public static _Fields findByName(java.lang.String name) {
+         return byName.get(name);
+       }
+ 
+       private final short _thriftId;
 -      private final String _fieldName;
++      private final java.lang.String _fieldName;
+ 
 -      _Fields(short thriftId, String fieldName) {
++      _Fields(short thriftId, java.lang.String fieldName) {
+         _thriftId = thriftId;
+         _fieldName = fieldName;
+       }
+ 
+       public short getThriftFieldId() {
+         return _thriftId;
+       }
+ 
 -      public String getFieldName() {
++      public java.lang.String getFieldName() {
+         return _fieldName;
+       }
+     }
+ 
+     // isset id assignments
 -    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
++    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+     static {
 -      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
++      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+       tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
+       tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 -      metaDataMap = Collections.unmodifiableMap(tmpMap);
++      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isUserEnabled_args.class, metaDataMap);
+     }
+ 
+     public isUserEnabled_args() {
+     }
+ 
+     public isUserEnabled_args(
+       org.apache.airavata.model.security.AuthzToken authzToken,
 -      String username)
++      java.lang.String username)
+     {
+       this();
+       this.authzToken = authzToken;
+       this.username = username;
+     }
+ 
+     /**
+      * Performs a deep copy on <i>other</i>.
+      */
+     public isUserEnabled_args(isUserEnabled_args other) {
+       if (other.isSetAuthzToken()) {
+         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
+       }
+       if (other.isSetUsername()) {
+         this.username = other.username;
+       }
+     }
+ 
+     public isUserEnabled_args deepCopy() {
+       return new isUserEnabled_args(this);
+     }
+ 
+     @Override
+     public void clear() {
+       this.authzToken = null;
+       this.username = null;
+     }
+ 
+     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
+       return this.authzToken;
+     }
+ 
+     public isUserEnabled_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+       this.authzToken = authzToken;
+       return this;
+     }
+ 
+     public void unsetAuthzToken() {
+       this.authzToken = null;
+     }
+ 
+     /** Returns true if field authzToken is set (has been assigned a value) and false otherwise */
+     public boolean isSetAuthzToken() {
+       return this.authzToken != null;
+     }
+ 
+     public void setAuthzTokenIsSet(boolean value) {
+       if (!value) {
+         this.authzToken = null;
+       }
+     }
+ 
 -    public String getUsername() {
++    public java.lang.String getUsername() {
+       return this.username;
+     }
+ 
 -    public isUserEnabled_args setUsername(String username) {
++    public isUserEnabled_args setUsername(java.lang.String username) {
+       this.username = username;
+       return this;
+     }
+ 
+     public void unsetUsername() {
+       this.username = null;
+     }
+ 
+     /** Returns true if field username is set (has been assigned a value) and false otherwise */
+     public boolean isSetUsername() {
+       return this.username != null;
+     }
+ 
+     public void setUsernameIsSet(boolean value) {
+       if (!value) {
+         this.username = null;
+       }
+     }
+ 
 -    public void setFieldValue(_Fields field, Object value) {
++    public void setFieldValue(_Fields field, java.lang.Object value) {
+       switch (field) {
+       case AUTHZ_TOKEN:
+         if (value == null) {
+           unsetAuthzToken();
+         } else {
+           setAuthzToken((org.apache.airavata.model.security.AuthzToken)value);
+         }
+         break;
+ 
+       case USERNAME:
+         if (value == null) {
+           unsetUsername();
+         } else {
 -          setUsername((String)value);
++          setUsername((java.lang.String)value);
+         }
+         break;
+ 
+       }
+     }
+ 
 -    public Object getFieldValue(_Fields field) {
++    public java.lang.Object getFieldValue(_Fields field) {
+       switch (field) {
+       case AUTHZ_TOKEN:
+         return getAuthzToken();
+ 
+       case USERNAME:
+         return getUsername();
+ 
+       }
 -      throw new IllegalStateException();
++      throw new java.lang.IllegalStateException();
+     }
+ 
+     /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+     public boolean isSet(_Fields field) {
+       if (field == null) {
 -        throw new IllegalArgumentException();
++        throw new java.lang.IllegalArgumentException();
+       }
+ 
+       switch (field) {
+       case AUTHZ_TOKEN:
+         return isSetAuthzToken();
+       case USERNAME:
+         return isSetUsername();
+       }
 -      throw new IllegalStateException();
++      throw new java.lang.IllegalStateException();
+     }
+ 
+     @Override
 -    public boolean equals(Object that) {
++    public boolean equals(java.lang.Object that) {
+       if (that == null)
+         return false;
+       if (that instanceof isUserEnabled_args)
+         return this.equals((isUserEnabled_args)that);
+       return false;
+     }
+ 
+     public boolean equals(isUserEnabled_args that) {
+       if (that == null)
+         return false;
++      if (this == that)
++        return true;
+ 
+       boolean this_present_authzToken = true && this.isSetAuthzToken();
+       boolean that_present_authzToken = true && that.isSetAuthzToken();
+       if (this_present_authzToken || that_present_authzToken) {
+         if (!(this_present_authzToken && that_present_authzToken))
+           return false;
+         if (!this.authzToken.equals(that.authzToken))
+           return false;
+       }
+ 
+       boolean this_present_username = true && this.isSetUsername();
+       boolean that_present_username = true && that.isSetUsername();
+       if (this_present_username || that_present_username) {
+         if (!(this_present_username && that_present_username))
+           return false;
+         if (!this.username.equals(that.username))
+           return false;
+       }
+ 
+       return true;
+     }
+ 
+     @Override
+     public int hashCode() {
 -      List<Object> list = new ArrayList<Object>();
++      int hashCode = 1;
+ 
 -      boolean present_authzToken = true && (isSetAuthzToken());
 -      list.add(present_authzToken);
 -      if (present_authzToken)
 -        list.add(authzToken);
++      hashCode = hashCode * 8191 + ((isSetAuthzToken()) ? 131071 : 524287);
++      if (isSetAuthzToken())
++        hashCode = hashCode * 8191 + authzToken.hashCode();
+ 
 -      boolean present_username = true && (isSetUsername());
 -      list.add(present_username);
 -      if (present_username)
 -        list.add(username);
++      hashCode = hashCode * 8191 + ((isSetUsername()) ? 131071 : 524287);
++      if (isSetUsername())
++        hashCode = hashCode * 8191 + username.hashCode();
+ 
 -      return list.hashCode();
++      return hashCode;
+     }
+ 
+     @Override
+     public int compareTo(isUserEnabled_args other) {
+       if (!getClass().equals(other.getClass())) {
+         return getClass().getName().compareTo(other.getClass().getName());
+       }
+ 
+       int lastComparison = 0;
+ 
 -      lastComparison = Boolean.valueOf(isSetAuthzToken()).compareTo(other.isSetAuthzToken());
++      lastComparison = java.lang.Boolean.valueOf(isSetAuthzToken()).compareTo(other.isSetAuthzToken());
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+       if (isSetAuthzToken()) {
+         lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authzToken, other.authzToken);
+         if (lastComparison != 0) {
+           return lastComparison;
+         }
+       }
 -      lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
++      lastComparison = java.lang.Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+       if (isSetUsername()) {
+         lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
+         if (lastComparison != 0) {
+           return lastComparison;
+         }
+       }
+       return 0;
+     }
+ 
+     public _Fields fieldForId(int fieldId) {
+       return _Fields.findByThriftId(fieldId);
+     }
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
 -      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
++      scheme(iprot).read(iprot, this);
+     }
+ 
+     public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
 -      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
++      scheme(oprot).write(oprot, this);
+     }
+ 
+     @Override
 -    public String toString() {
 -      StringBuilder sb = new StringBuilder("isUserEnabled_args(");
++    public java.lang.String toString() {
++      java.lang.StringBuilder sb = new java.lang.StringBuilder("isUserEnabled_args(");
+       boolean first = true;
+ 
+       sb.append("authzToken:");
+       if (this.authzToken == null) {
+         sb.append("null");
+       } else {
+         sb.append(this.authzToken);
+       }
+       first = false;
+       if (!first) sb.append(", ");
+       sb.append("username:");
+       if (this.username == null) {
+         sb.append("null");
+       } else {
+         sb.append(this.username);
+       }
+       first = false;
+       sb.append(")");
+       return sb.toString();
+     }
+ 
+     public void validate() throws org.apache.thrift.TException {
+       // check for required fields
+       if (authzToken == null) {
+         throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
+       }
+       if (username == null) {
+         throw new org.apache.thrift.protocol.TProtocolException("Required field 'username' was not present! Struct: " + toString());
+       }
+       // check for sub-struct validity
+       if (authzToken != null) {
+         authzToken.validate();
+       }
+     }
+ 
+     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+       try {
+         write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+       } catch (org.apache.thrift.TException te) {
+         throw new java.io.IOException(te);
+       }
+     }
+ 
 -    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
++    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+       try {
+         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+       } catch (org.apache.thrift.TException te) {
+         throw new java.io.IOException(te);
+       }
+     }
+ 
 -    private static class isUserEnabled_argsStandardSchemeFactory implements SchemeFactory {
++    private static class isUserEnabled_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+       public isUserEnabled_argsStandardScheme getScheme() {
+         return new isUserEnabled_argsStandardScheme();
+       }
+     }
+ 
 -    private static class isUserEnabled_argsStandardScheme extends StandardScheme<isUserEnabled_args> {
++    private static class isUserEnabled_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<isUserEnabled_args> {
+ 
+       public void read(org.apache.thrift.protocol.TProtocol iprot, isUserEnabled_args struct) throws org.apache.thrift.TException {
+         org.apache.thrift.protocol.TField schemeField;
+         iprot.readStructBegin();
+         while (true)
+         {
+           schemeField = iprot.readFieldBegin();
+           if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+             break;
+           }
+           switch (schemeField.id) {
+             case 1: // AUTHZ_TOKEN
+               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                 struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
+                 struct.authzToken.read(iprot);
+                 struct.setAuthzTokenIsSet(true);
+               } else { 
+                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+               }
+               break;
+             case 2: // USERNAME
+               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                 struct.username = iprot.readString();
+                 struct.setUsernameIsSet(true);
+               } else { 
+                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+               }
+               break;
+             default:
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+           }
+           iprot.readFieldEnd();
+         }
+         iprot.readStructEnd();
+ 
+         // check for required fields of primitive type, which can't be checked in the validate method
+         struct.validate();
+       }
+ 
+       public void write(org.apache.thrift.protocol.TProtocol oprot, isUserEnabled_args struct) throws org.apache.thrift.TException {
+         struct.validate();
+ 
+         oprot.writeStructBegin(STRUCT_DESC);
+         if (struct.authzToken != null) {
+           oprot.writeFieldBegin(AUTHZ_TOKEN_FIELD_DESC);
+           struct.authzToken.write(oprot);
+           oprot.writeFieldEnd();
+         }
+         if (struct.username != null) {
+           oprot.writeFieldBegin(USERNAME_FIELD_DESC);
+           oprot.writeString(struct.username);
+           oprot.writeFieldEnd();
+         }
+         oprot.writeFieldStop();
+         oprot.writeStructEnd();
+       }
+ 
+     }
+ 
 -    private static class isUserEnabled_argsTupleSchemeFactory implements SchemeFactory {
++    private static class isUserEnabled_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+       public isUserEnabled_argsTupleScheme getScheme() {
+         return new isUserEnabled_argsTupleScheme();
+       }
+     }
+ 
 -    private static class isUserEnabled_argsTupleScheme extends TupleScheme<isUserEnabled_args> {
++    private static class isUserEnabled_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<isUserEnabled_args> {
+ 
+       @Override
+       public void write(org.apache.thrift.protocol.TProtocol prot, isUserEnabled_args struct) throws org.apache.thrift.TException {
 -        TTupleProtocol oprot = (TTupleProtocol) prot;
++        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+         struct.authzToken.write(oprot);
+         oprot.writeString(struct.username);
+       }
+ 
+       @Override
+       public void read(org.apache.thrift.protocol.TProtocol prot, isUserEnabled_args struct) throws org.apache.thrift.TException {
 -        TTupleProtocol iprot = (TTupleProtocol) prot;
++        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
+         struct.authzToken.read(iprot);
+         struct.setAuthzTokenIsSet(true);
+         struct.username = iprot.readString();
+         struct.setUsernameIsSet(true);
+       }
+     }
+ 
++    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
++      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
++    }
+   }
+ 
+   public static class isUserEnabled_result implements org.apache.thrift.TBase<isUserEnabled_result, isUserEnabled_result._Fields>, java.io.Serializable, Cloneable, Comparable<isUserEnabled_result>   {
+     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isUserEnabled_result");
+ 
+     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
+     private static final org.apache.thrift.protocol.TField IDSE_FIELD_DESC = new org.apache.thrift.protocol.TField("Idse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+ 
 -    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
 -    static {
 -      schemes.put(StandardScheme.class, new isUserEnabled_resultStandardSchemeFactory());
 -      schemes.put(TupleScheme.class, new isUserEnabled_resultTupleSchemeFactory());
 -    }
++    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new isUserEnabled_resultStandardSchemeFactory();
++    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new isUserEnabled_resultTupleSchemeFactory();
+ 
+     public boolean success; // required
+     public org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException Idse; // required
+     public org.apache.airavata.model.error.AuthorizationException ae; // required
+ 
+     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+       SUCCESS((short)0, "success"),
+       IDSE((short)1, "Idse"),
+       AE((short)2, "ae");
+ 
 -      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
++      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+ 
+       static {
 -        for (_Fields field : EnumSet.allOf(_Fields.class)) {
++        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+           byName.put(field.getFieldName(), field);
+         }
+       }
+ 
+       /**
+        * Find the _Fields constant that matches fieldId, or null if its not found.
+        */
+       public static _Fields findByThriftId(int fieldId) {
+         switch(fieldId) {
+           case 0: // SUCCESS
+             return SUCCESS;
+           case 1: // IDSE
+             return IDSE;
+           case 2: // AE
+             return AE;
+           default:
+             return null;
+         }
+       }
+ 
+       /**
+        * Find the _Fields constant that matches fieldId, throwing an exception
+        * if it is not found.
+        */
+       public static _Fields findByThriftIdOrThrow(int fieldId) {
+         _Fields fields = findByThriftId(fieldId);
 -        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
++        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+         return fields;
+       }
+ 
+       /**
+        * Find the _Fields constant that matches name, or null if its not found.
+        */
 -      public static _Fields findByName(String name) {
++      public static _Fields findByName(java.lang.String name) {
+         return byName.get(name);
+       }
+ 
+       private final short _thriftId;
 -      private final String _fieldName;
++      private final java.lang.String _fieldName;
+ 
 -      _Fields(short thriftId, String fieldName) {
++      _Fields(short thriftId, java.lang.String fieldName) {
+         _thriftId = thriftId;
+         _fieldName = fieldName;
+       }
+ 
+       public short getThriftFieldId() {
+         return _thriftId;
+       }
+ 
 -      public String getFieldName() {
++      public java.lang.String getFieldName() {
+         return _fieldName;
+       }
+     }
+ 
+     // isset id assignments
+     private static final int __SUCCESS_ISSET_ID = 0;
+     private byte __isset_bitfield = 0;
 -    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
++    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+     static {
 -      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
++      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+       tmpMap.put(_Fields.IDSE, new org.apache.thrift.meta_data.FieldMetaData("Idse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
 -          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
++          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException.class)));
+       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
 -          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
 -      metaDataMap = Collections.unmodifiableMap(tmpMap);
++          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
++      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isUserEnabled_result.class, metaDataMap);
+     }
+ 
+     public isUserEnabled_result() {
+     }
+ 
+     public isUserEnabled_result(
+       boolean success,
+       org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException Idse,
+       org.apache.airavata.model.error.AuthorizationException ae)
+     {
+       this();
+       this.success = success;
+       setSuccessIsSet(true);
+       this.Idse = Idse;
+       this.ae = ae;
+     }
+ 
+     /**
+      * Performs a deep copy on <i>other</i>.
+      */
+     public isUserEnabled_result(isUserEnabled_result other) {
+       __isset_bitfield = other.__isset_bitfield;
+       this.success = other.success;
+       if (other.isSetIdse()) {
+         this.Idse = new org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException(other.Idse);
+       }
+       if (other.isSetAe()) {
+         this.ae = new org.apache.airavata.model.error.AuthorizationException(other.ae);
+       }
+     }
+ 
+     public isUserEnabled_result deepCopy() {
+       return new isUserEnabled_result(this);
+     }
+ 
+     @Override
+     public void clear() {
+       setSuccessIsSet(false);
+       this.success = false;
+       this.Idse = null;
+       this.ae = null;
+     }
+ 
+     public boolean isSuccess() {
+       return this.success;
+     }
+ 
+     public isUserEnabled_result setSuccess(boolean success) {
+       this.success = success;
+       setSuccessIsSet(true);
+       return this;
+     }
+ 
+     public void unsetSuccess() {
 -      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
++      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+     }
+ 
+     /** Returns true if field success is set (has been assigned a value) and false otherwise */
+     public boolean isSetSuccess() {
 -      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
++      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+     }
+ 
+     public void setSuccessIsSet(boolean value) {
 -      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
++      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+     }
+ 
+     public org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException getIdse() {
+       return this.Idse;
+     }
+ 
+     public isUserEnabled_result setIdse(org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException Idse) {
+       this.Idse = Idse;
+       return this;
+     }
+ 
+     public void unsetIdse() {
+       this.Idse = null;
+     }
+ 
+     /** Returns true if field Idse is set (has been assigned a value) and false otherwise */
+     public boolean isSetIdse() {
+       return this.Idse != null;
+     }
+ 
+     public void setIdseIsSet(boolean value) {
+       if (!value) {
+         this.Idse = null;
+       }
+     }
+ 
+     public org.apache.airavata.model.error.AuthorizationException getAe() {
+       return this.ae;
+     }
+ 
+     public isUserEnabled_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+       this.ae = ae;
+       return this;
+     }
+ 
+     public void unsetAe() {
+       this.ae = null;
+     }
+ 
+     /** Returns true if field ae is set (has been assigned a value) and false otherwise */
+     public boolean isSetAe() {
+       return this.ae != null;
+     }
+ 
+     public void setAeIsSet(boolean value) {
+       if (!value) {
+         this.ae = null;
+       }
+     }
+ 
 -    public void setFieldValue(_Fields field, Object value) {
++    public void setFieldValue(_Fields field, java.lang.Object value) {
+       switch (field) {
+       case SUCCESS:
+         if (value == null) {
+           unsetSuccess();
+         } else {
 -          setSuccess((Boolean)value);
++          setSuccess((java.lang.Boolean)value);
+         }
+         break;
+ 
+       case IDSE:
+         if (value == null) {
+           unsetIdse();
+         } else {
+           setIdse((org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException)value);
+         }
+         break;
+ 
+       case AE:
+         if (value == null) {
+           unsetAe();
+         } else {
+           setAe((org.apache.airavata.model.error.AuthorizationException)value);
+         }
+         break;
+ 
+       }
+     }
+ 
 -    public Object getFieldValue(_Fields field) {
++    public java.lang.Object getFieldValue(_Fields field) {
+       switch (field) {
+       case SUCCESS:
+         return isSuccess();
+ 
+       case IDSE:
+         return getIdse();
+ 
+       case AE:
+         return getAe();
+ 
+       }
 -      throw new IllegalStateException();
++      throw new java.lang.IllegalStateException();
+     }
+ 
+     /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+     public boolean isSet(_Fields field) {
+       if (field == null) {
 -        throw new IllegalArgumentException();
++        throw new java.lang.IllegalArgumentException();
+       }
+ 
+       switch (field) {
+       case SUCCESS:
+         return isSetSuccess();
+       case IDSE:
+         return isSetIdse();
+       case AE:
+         return isSetAe();
+       }
 -      throw new IllegalStateException();
++      throw new java.lang.IllegalStateException();
+     }
+ 
+     @Override
 -    public boolean equals(Object that) {
++    public boolean equals(java.lang.Object that) {
+       if (that == null)
+         return false;
+       if (that instanceof isUserEnabled_result)
+         return this.equals((isUserEnabled_result)that);
+       return false;
+     }
+ 
+     public boolean equals(isUserEnabled_result that) {
+       if (that == null)
+         return false;
++      if (this == that)
++        return true;
+ 
+       boolean this_present_success = true;
+       boolean that_present_success = true;
+       if (this_present_success || that_present_success) {
+         if (!(this_present_success && that_present_success))
+           return false;
+         if (this.success != that.success)
+           return false;
+       }
+ 
+       boolean this_present_Idse = true && this.isSetIdse();
+       boolean that_present_Idse = true && that.isSetIdse();
+       if (this_present_Idse || that_present_Idse) {
+         if (!(this_present_Idse && that_present_Idse))
+           return false;
+         if (!this.Idse.equals(that.Idse))
+           return false;
+       }
+ 
+       boolean this_present_ae = true && this.isSetAe();
+       boolean that_present_ae = true && that.isSetAe();
+       if (this_present_ae || that_present_ae) {
+         if (!(this_present_ae && that_present_ae))
+           return false;
+         if (!this.ae.equals(that.ae))
+           return false;
+       }
+ 
+       return true;
+     }
+ 
+     @Override
+     public int hashCode() {
 -      List<Object> list = new ArrayList<Object>();
++      int hashCode = 1;
+ 
 -      boolean present_success = true;
 -      list.add(present_success);
 -      if (present_success)
 -        list.add(success);
++      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+ 
 -      boolean present_Idse = true && (isSetIdse());
 -      list.add(present_Idse);
 -      if (present_Idse)
 -        list.add(Idse);
++      hashCode = hashCode * 8191 + ((isSetIdse()) ? 131071 : 524287);
++      if (isSetIdse())
++        hashCode = hashCode * 8191 + Idse.hashCode();
+ 
 -      boolean present_ae = true && (isSetAe());
 -      list.add(present_ae);
 -      if (present_ae)
 -        list.add(ae);
++      hashCode = hashCode * 8191 + ((isSetAe()) ? 131071 : 524287);
++      if (isSetAe())
++        hashCode = hashCode * 8191 + ae.hashCode();
+ 
 -      return list.hashCode();
++      return hashCode;
+     }
+ 
+     @Override
+     public int compareTo(isUserEnabled_result other) {
+       if (!getClass().equals(other.getClass())) {
+         return getClass().getName().compareTo(other.getClass().getName());
+       }
+ 
+       int lastComparison = 0;
+ 
 -      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
++      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+       if (isSetSuccess()) {
+         lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+         if (lastComparison != 0) {
+           return lastComparison;
+         }
+       }
 -      lastComparison = Boolean.valueOf(isSetIdse()).compareTo(other.isSetIdse());
++      lastComparison = java.lang.Boolean.valueOf(isSetIdse()).compareTo(other.isSetIdse());
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+       if (isSetIdse()) {
+         lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.Idse, other.Idse);
+         if (lastComparison != 0) {
+           return lastComparison;
+         }
+       }
 -      lastComparison = Boolean.valueOf(isSetAe()).compareTo(other.isSetAe());
++      lastComparison = java.lang.Boolean.valueOf(isSetAe()).compareTo(other.isSetAe());
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+       if (isSetAe()) {
+         lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ae, other.ae);
+         if (lastComparison != 0) {
+           return lastComparison;
+         }
+       }
+       return 0;
+     }
+ 
+     public _Fields fieldForId(int fieldId) {
+       return _Fields.findByThriftId(fieldId);
+     }
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
 -      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
++      scheme(iprot).read(iprot, this);
+     }
+ 
+     public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
 -      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
++      scheme(oprot).write(oprot, this);
+       }
+ 
+     @Override
 -    public String toString() {
 -      StringBuilder sb = new StringBuilder("isUserEnabled_result(");
++    public java.lang.String toString() {
++      java.lang.StringBuilder sb = new java.lang.StringBuilder("isUserEnabled_result(");
+       boolean first = true;
+ 
+       sb.append("success:");
+       sb.append(this.success);
+       first = false;
+       if (!first) sb.append(", ");
+       sb.append("Idse:");
+       if (this.Idse == null) {
+         sb.append("null");
+       } else {
+         sb.append(this.Idse);
+       }
+       first = false;
+       if (!first) sb.append(", ");
+       sb.append("ae:");
+       if (this.ae == null) {
+         sb.append("null");
+       } else {
+         sb.append(this.ae);
+       }
+       first = false;
+       sb.append(")");
+       return sb.toString();
+     }
+ 
+     public void validate() throws org.apache.thrift.TException {
+       // check for required fields
+       // check for sub-struct validity
+     }
+ 
+     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+       try {
+         write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+       } catch (org.apache.thrift.TException te) {
+         throw new java.io.IOException(te);
+       }
+     }
+ 
 -    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
++    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+       try {
+         // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+         __isset_bitfield = 0;
+         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+       } catch (org.apache.thrift.TException te) {
+         throw new java.io.IOException(te);
+       }
+     }
+ 
 -    private static class isUserEnabled_resultStandardSchemeFactory implements SchemeFactory {
++    private static class isUserEnabled_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+       public isUserEnabled_resultStandardScheme getScheme() {
+         return new isUserEnabled_resultStandardScheme();
+       }
+     }
+ 
 -    private static class isUserEnabled_resultStandardScheme extends StandardScheme<isUserEnabled_result> {
++    private static class isUserEnabled_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<isUserEnabled_result> {
+ 
+       public void read(org.apache.thrift.protocol.TProtocol iprot, isUserEnabled_result struct) throws org.apache.thrift.TException {
+         org.apache.thrift.protocol.TField schemeField;
+         iprot.readStructBegin();
+         while (true)
+         {
+           schemeField = iprot.readFieldBegin();
+           if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+             break;
+           }
+           switch (schemeField.id) {
+             case 0: // SUCCESS
+               if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+                 struct.success = iprot.readBool();
+                 struct.setSuccessIsSet(true);
+               } else { 
+                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+               }
+               break;
+             case 1: // IDSE
+               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                 struct.Idse = new org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException();
+                 struct.Idse.read(iprot);
+                 struct.setIdseIsSet(true);
+               } else { 
+                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+               }
+               break;
+             case 2: // AE
+               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                 struct.ae = new org.apache.airavata.model.error.AuthorizationException();
+                 struct.ae.read(iprot);
+                 struct.setAeIsSet(true);
+               } else { 
+                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+               }
+               break;
+             default:
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+           }
+           iprot.readFieldEnd();
+         }
+         iprot.readStructEnd();
+ 
+         // check for required fields of primitive type, which can't be checked in the validate method
+         struct.validate();
+       }
+ 
+       public void write(org.apache.thrift.protocol.TProtocol oprot, isUserEnabled_result struct) throws org.apache.thrift.TException {
+         struct.validate();
+ 
+         oprot.writeStructBegin(STRUCT_DESC);
+         if (struct.isSetSuccess()) {
+           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+           oprot.writeBool(struct.success);
+           oprot.writeFieldEnd();
+         }
+         if (struct.Idse != null) {
+           oprot.writeFieldBegin(IDSE_FIELD_DESC);
+           struct.Idse.write(oprot);
+           oprot.writeFieldEnd();
+         }
+         if (struct.ae != null) {
+           oprot.writeFieldBegin(AE_FIELD_DESC);
+           struct.ae.write(oprot);
+           oprot.writeFieldEnd();
+         }
+         oprot.writeFieldStop();
+         oprot.writeStructEnd();
+       }
+ 
+     }
+ 
 -    private static class isUserEnabled_resultTupleSchemeFactory implements SchemeFactory {
++    private static class isUserEnabled_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+       public isUserEnabled_resultTupleScheme getScheme() {
+         return new isUserEnabled_resultTupleScheme();
+       }
+     }
+ 
 -    private static class isUserEnabled_resultTupleScheme extends TupleScheme<isUserEnabled_result> {
++    private static class isUserEnabled_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<isUserEnabled_result> {
+ 
+       @Override
+       public void write(org.apache.thrift.protocol.TProtocol prot, isUserEnabled_result struct) throws org.apache.thrift.TException {
 -        TTupleProtocol oprot = (TTupleProtocol) prot;
 -        BitSet optionals = new BitSet();
++        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
++        java.util.BitSet optionals = new java.util.BitSet();
+         if (struct.isSetSuccess()) {
+           optionals.set(0);
+         }
+         if (struct.isSetIdse()) {
+           optionals.set(1);
+         }
+         if (struct.isSetAe()) {
+           optionals.set(2);
+         }
+         oprot.writeBitSet(optionals, 3);
+         if (struct.isSetSuccess()) {
+           oprot.writeBool(struct.success);
+         }
+         if (struct.isSetIdse()) {
+           struct.Idse.write(oprot);
+         }
+         if (struct.isSetAe()) {
+           struct.ae.write(oprot);
+         }
+       }
+ 
+       @Override
+       public void read(org.apache.thrift.protocol.TProtocol prot, isUserEnabled_result struct) throws org.apache.thrift.TException {
 -        TTupleProtocol iprot = (TTupleProtocol) prot;
 -        BitSet incoming = iprot.readBitSet(3);
++        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
++        java.util.BitSet incoming = iprot.readBitSet(3);
+         if (incoming.get(0)) {
+           struct.success = iprot.readBool();
+           struct.setSuccessIsSet(true);
+         }
+         if (incoming.get(1)) {
+           struct.Idse = new org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException();
+           struct.Idse.read(iprot);
+           struct.setIdseIsSet(true);
+         }
+         if (incoming.get(2)) {
            struct.ae = new org.apache.airavata.model.error.AuthorizationException();
            struct.ae.read(iprot);
            struct.setAeIsSet(true);
diff --cc modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SCPDataStageTask.java
index 39a5ab9,3a6b0dc..f1df955
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SCPDataStageTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SCPDataStageTask.java
@@@ -57,9 -57,9 +57,10 @@@ import java.io.IOException
  import java.net.URI;
  import java.net.URISyntaxException;
  import java.util.Arrays;
+ import java.util.Collections;
  import java.util.List;
  import java.util.Map;
 +import java.util.Optional;
  
  /**
   * This will be used for both Input file staging and output file staging, hence if you do any changes to a part of logic
@@@ -177,23 -179,25 +180,25 @@@ public class SCPDataStageTask implement
  
                  OutputDataObjectType processOutput = taskContext.getProcessOutput();
  
-                 for(int i=0; i<fileNames.size(); i++){
-                     String temp = fileNames.get(i);
-                     if(temp != null && temp != ""){
+                 for (String temp : fileNames) {
+                     if (temp != null && !"".equals(temp)) {
                          fileName = temp;
                      }
-                     if(destParentPath.endsWith(File.separator)){
+ 
+                     if (destParentPath.endsWith(File.separator)) {
                          destinationURI = new URI(destParentPath + fileName);
-                     }else{
+                     } else {
                          destinationURI = new URI(destParentPath + File.separator + fileName);
                      }
- 
                      //Wildcard support is only enabled for output data staging
                      if (processState == ProcessState.OUTPUT_DATA_STAGING) {
+                         URI newSourceURI = new URI((sourceParentPath.endsWith(File.separator) ?
+                                 sourceParentPath : sourceParentPath + File.separator) +
+                                 fileName);
                          processOutput.setName(fileName);
  
 -                        experimentCatalog.add(ExpCatChildDataType.EXPERIMENT_OUTPUT, Collections.singletonList(processOutput), experimentId);
 -                        experimentCatalog.add(ExpCatChildDataType.PROCESS_OUTPUT, Collections.singletonList(processOutput), processId);
 +                        registryClient.addExperimentProcessOutputs(GFacConstants.EXPERIMENT_OUTPUT, Arrays.asList(processOutput), experimentId);
 +                        registryClient.addExperimentProcessOutputs(GFacConstants.PROCESS_OUTPUT, Arrays.asList(processOutput), processId);
  
                          taskContext.setProcessOutput(processOutput);
  

-- 
To stop receiving notification emails like this one, please contact
machristie@apache.org.

Mime
View raw message