airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From machris...@apache.org
Subject [airavata] branch group-based-auth updated: GroupResourceProfile: add default id and return id from create method
Date Wed, 02 May 2018 19:05:59 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


The following commit(s) were added to refs/heads/group-based-auth by this push:
     new 6836a2c  GroupResourceProfile: add default id and return id from create method
6836a2c is described below

commit 6836a2c3e45c50c280947d9c46d57ada3b70c1fc
Author: Marcus Christie <machristie@apache.org>
AuthorDate: Wed May 2 15:05:16 2018 -0400

    GroupResourceProfile: add default id and return id from create method
---
 .../api/server/handler/AiravataServerHandler.java  |  17 ++-
 .../java/org/apache/airavata/api/Airavata.java     | 160 +++++++++++++++++----
 .../resources/lib/airavata/api/Airavata-remote     |   2 +-
 .../main/resources/lib/airavata/api/Airavata.py    |  25 +++-
 .../appcatalog/groupresourceprofile/ttypes.py      |   5 +-
 .../model/appcatalog/storageresource/ttypes.py     |  26 +++-
 .../lib/airavata/model/data/movement/ttypes.py     |  38 ++++-
 .../lib/airavata/model/experiment/ttypes.py        |  14 +-
 .../resources/lib/airavata/model/group/ttypes.py   |   9 +-
 .../resources/lib/airavata/model/process/ttypes.py |  14 +-
 .../groupresourceprofile/GroupResourceProfile.java |   5 +-
 .../airavata-apis/airavata_api.thrift              |   2 +-
 .../group_resource_profile_model.thrift            |   3 +-
 13 files changed, 269 insertions(+), 51 deletions(-)

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 47479dc..1c040e4 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
@@ -45,7 +45,12 @@ import org.apache.airavata.model.appcatalog.accountprovisioning.SSHAccountProvis
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.*;
+import org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
+import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
@@ -109,15 +114,15 @@ import org.apache.airavata.sharing.registry.models.Domain;
 import org.apache.airavata.sharing.registry.models.Entity;
 import org.apache.airavata.sharing.registry.models.EntitySearchField;
 import org.apache.airavata.sharing.registry.models.EntityType;
+import org.apache.airavata.sharing.registry.models.GroupCardinality;
+import org.apache.airavata.sharing.registry.models.GroupType;
 import org.apache.airavata.sharing.registry.models.PermissionType;
 import org.apache.airavata.sharing.registry.models.SearchCondition;
 import org.apache.airavata.sharing.registry.models.SearchCriteria;
 import org.apache.airavata.sharing.registry.models.SharingRegistryException;
 import org.apache.airavata.sharing.registry.models.User;
-import org.apache.airavata.sharing.registry.service.cpi.SharingRegistryService;
 import org.apache.airavata.sharing.registry.models.UserGroup;
-import org.apache.airavata.sharing.registry.models.GroupCardinality;
-import org.apache.airavata.sharing.registry.models.GroupType;
+import org.apache.airavata.sharing.registry.service.cpi.SharingRegistryService;
 import org.apache.commons.pool.impl.GenericObjectPool;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
@@ -130,7 +135,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
-import java.util.stream.Collectors;
 
 public class AiravataServerHandler implements Airavata.Iface {
     private static final Logger logger = LoggerFactory.getLogger(AiravataServerHandler.class);
@@ -5072,7 +5076,7 @@ public class AiravataServerHandler implements Airavata.Iface {
 
     @Override
     @SecurityCheck
-    public void createGroupResourceProfile(AuthzToken authzToken, GroupResourceProfile groupResourceProfile) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+    public String createGroupResourceProfile(AuthzToken authzToken, GroupResourceProfile groupResourceProfile) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
         RegistryService.Client regClient = registryClientPool.getResource();
         SharingRegistryService.Client sharingClient = sharingClientPool.getResource();
         String userName = authzToken.getClaimsMap().get(Constants.USER_NAME);
@@ -5099,6 +5103,7 @@ public class AiravataServerHandler implements Airavata.Iface {
             }
             registryClientPool.returnResource(regClient);
             sharingClientPool.returnResource(sharingClient);
+            return groupResourceProfileId;
         } catch (Exception e) {
             String msg = "Error creating group resource profile.";
             logger.error(msg, e);
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 1b20368..7a88a8c 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
@@ -3047,7 +3047,7 @@ public class Airavata {
 
     public java.util.List<java.lang.String> getAllAccessibleUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourceType resourceType, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error [...]
 
-    public void createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+    public java.lang.String createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
     public void updateGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
@@ -3417,7 +3417,7 @@ public class Airavata {
 
     public void getAllAccessibleUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourceType resourceType, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 
-    public void createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
+    public void createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 
     public void updateGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 
@@ -9683,10 +9683,10 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllAccessibleUsers failed: unknown result");
     }
 
-    public void createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    public java.lang.String createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
     {
       send_createGroupResourceProfile(authzToken, groupResourceProfile);
-      recv_createGroupResourceProfile();
+      return recv_createGroupResourceProfile();
     }
 
     public void send_createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) throws org.apache.thrift.TException
@@ -9697,10 +9697,13 @@ public class Airavata {
       sendBase("createGroupResourceProfile", args);
     }
 
-    public void recv_createGroupResourceProfile() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    public java.lang.String recv_createGroupResourceProfile() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
     {
       createGroupResourceProfile_result result = new createGroupResourceProfile_result();
       receiveBase(result, "createGroupResourceProfile");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
       if (result.ire != null) {
         throw result.ire;
       }
@@ -9713,7 +9716,7 @@ public class Airavata {
       if (result.ae != null) {
         throw result.ae;
       }
-      return;
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "createGroupResourceProfile failed: unknown result");
     }
 
     public void updateGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
@@ -16539,17 +16542,17 @@ public class Airavata {
       }
     }
 
-    public void createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+    public void createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       createGroupResourceProfile_call method_call = new createGroupResourceProfile_call(authzToken, groupResourceProfile, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
-    public static class createGroupResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
+    public static class createGroupResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.String> {
       private org.apache.airavata.model.security.AuthzToken authzToken;
       private org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile;
-      public createGroupResourceProfile_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public createGroupResourceProfile_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> 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.groupResourceProfile = groupResourceProfile;
@@ -16564,13 +16567,13 @@ public class Airavata {
         prot.writeMessageEnd();
       }
 
-      public Void getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+      public java.lang.String getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           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 null;
+        return (new Client(prot)).recv_createGroupResourceProfile();
       }
     }
 
@@ -22388,7 +22391,7 @@ public class Airavata {
       public createGroupResourceProfile_result getResult(I iface, createGroupResourceProfile_args args) throws org.apache.thrift.TException {
         createGroupResourceProfile_result result = new createGroupResourceProfile_result();
         try {
-          iface.createGroupResourceProfile(args.authzToken, args.groupResourceProfile);
+          result.success = iface.createGroupResourceProfile(args.authzToken, args.groupResourceProfile);
         } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
           result.ire = ire;
         } catch (org.apache.airavata.model.error.AiravataClientException ace) {
@@ -36078,7 +36081,7 @@ public class Airavata {
       }
     }
 
-    public static class createGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroupResourceProfile_args, Void> {
+    public static class createGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroupResourceProfile_args, java.lang.String> {
       public createGroupResourceProfile() {
         super("createGroupResourceProfile");
       }
@@ -36087,11 +36090,12 @@ public class Airavata {
         return new createGroupResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
             createGroupResourceProfile_result result = new createGroupResourceProfile_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36149,7 +36153,7 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, createGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+      public void start(I iface, createGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
         iface.createGroupResourceProfile(args.authzToken, args.groupResourceProfile,resultHandler);
       }
     }
@@ -265001,6 +265005,7 @@ public class Airavata {
   public static class createGroupResourceProfile_result implements org.apache.thrift.TBase<createGroupResourceProfile_result, createGroupResourceProfile_result._Fields>, java.io.Serializable, Cloneable, Comparable<createGroupResourceProfile_result>   {
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("createGroupResourceProfile_result");
 
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
@@ -265009,6 +265014,7 @@ public class Airavata {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new createGroupResourceProfile_resultStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new createGroupResourceProfile_resultTupleSchemeFactory();
 
+    public java.lang.String success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
@@ -265016,6 +265022,7 @@ public class Airavata {
 
     /** 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"),
       IRE((short)1, "ire"),
       ACE((short)2, "ace"),
       ASE((short)3, "ase"),
@@ -265034,6 +265041,8 @@ public class Airavata {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
           case 1: // IRE
             return IRE;
           case 2: // ACE
@@ -265085,6 +265094,8 @@ public class Airavata {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       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.STRING)));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -265101,12 +265112,14 @@ public class Airavata {
     }
 
     public createGroupResourceProfile_result(
+      java.lang.String success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
       org.apache.airavata.model.error.AuthorizationException ae)
     {
       this();
+      this.success = success;
       this.ire = ire;
       this.ace = ace;
       this.ase = ase;
@@ -265117,6 +265130,9 @@ public class Airavata {
      * Performs a deep copy on <i>other</i>.
      */
     public createGroupResourceProfile_result(createGroupResourceProfile_result other) {
+      if (other.isSetSuccess()) {
+        this.success = other.success;
+      }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
       }
@@ -265137,12 +265153,37 @@ public class Airavata {
 
     @Override
     public void clear() {
+      this.success = null;
       this.ire = null;
       this.ace = null;
       this.ase = null;
       this.ae = null;
     }
 
+    public java.lang.String getSuccess() {
+      return this.success;
+    }
+
+    public createGroupResourceProfile_result setSuccess(java.lang.String success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
     public org.apache.airavata.model.error.InvalidRequestException getIre() {
       return this.ire;
     }
@@ -265241,6 +265282,14 @@ public class Airavata {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((java.lang.String)value);
+        }
+        break;
+
       case IRE:
         if (value == null) {
           unsetIre();
@@ -265278,6 +265327,9 @@ public class Airavata {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
       case IRE:
         return getIre();
 
@@ -265301,6 +265353,8 @@ public class Airavata {
       }
 
       switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
       case IRE:
         return isSetIre();
       case ACE:
@@ -265328,6 +265382,15 @@ public class Airavata {
       if (this == that)
         return true;
 
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
       boolean this_present_ire = true && this.isSetIre();
       boolean that_present_ire = true && that.isSetIre();
       if (this_present_ire || that_present_ire) {
@@ -265371,6 +265434,10 @@ public class Airavata {
     public int hashCode() {
       int hashCode = 1;
 
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
+
       hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
       if (isSetIre())
         hashCode = hashCode * 8191 + ire.hashCode();
@@ -265398,6 +265465,16 @@ public class Airavata {
 
       int lastComparison = 0;
 
+      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 = java.lang.Boolean.valueOf(isSetIre()).compareTo(other.isSetIre());
       if (lastComparison != 0) {
         return lastComparison;
@@ -265458,6 +265535,14 @@ public class Airavata {
       java.lang.StringBuilder sb = new java.lang.StringBuilder("createGroupResourceProfile_result(");
       boolean first = true;
 
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
       sb.append("ire:");
       if (this.ire == null) {
         sb.append("null");
@@ -265532,6 +265617,14 @@ public class Airavata {
             break;
           }
           switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.success = iprot.readString();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             case 1: // IRE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
@@ -265583,6 +265676,11 @@ public class Airavata {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeString(struct.success);
+          oprot.writeFieldEnd();
+        }
         if (struct.ire != null) {
           oprot.writeFieldBegin(IRE_FIELD_DESC);
           struct.ire.write(oprot);
@@ -265621,19 +265719,25 @@ public class Airavata {
       public void write(org.apache.thrift.protocol.TProtocol prot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetIre()) {
+        if (struct.isSetSuccess()) {
           optionals.set(0);
         }
-        if (struct.isSetAce()) {
+        if (struct.isSetIre()) {
           optionals.set(1);
         }
-        if (struct.isSetAse()) {
+        if (struct.isSetAce()) {
           optionals.set(2);
         }
-        if (struct.isSetAe()) {
+        if (struct.isSetAse()) {
           optionals.set(3);
         }
-        oprot.writeBitSet(optionals, 4);
+        if (struct.isSetAe()) {
+          optionals.set(4);
+        }
+        oprot.writeBitSet(optionals, 5);
+        if (struct.isSetSuccess()) {
+          oprot.writeString(struct.success);
+        }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
         }
@@ -265651,23 +265755,27 @@ public class Airavata {
       @Override
       public void read(org.apache.thrift.protocol.TProtocol prot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        java.util.BitSet incoming = iprot.readBitSet(4);
+        java.util.BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
+          struct.success = iprot.readString();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
           struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
           struct.ire.read(iprot);
           struct.setIreIsSet(true);
         }
-        if (incoming.get(1)) {
+        if (incoming.get(2)) {
           struct.ace = new org.apache.airavata.model.error.AiravataClientException();
           struct.ace.read(iprot);
           struct.setAceIsSet(true);
         }
-        if (incoming.get(2)) {
+        if (incoming.get(3)) {
           struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
           struct.ase.read(iprot);
           struct.setAseIsSet(true);
         }
-        if (incoming.get(3)) {
+        if (incoming.get(4)) {
           struct.ae = new org.apache.airavata.model.error.AuthorizationException();
           struct.ae.read(iprot);
           struct.setAeIsSet(true);
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata-remote b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata-remote
index 138ed6b..7b09b27 100755
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata-remote
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata-remote
@@ -193,7 +193,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
     print('  bool shareResourceWithUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType,  userPermissionList)')
     print('  bool revokeSharingOfResourceFromUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType,  userPermissionList)')
     print('   getAllAccessibleUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType, ResourcePermissionType permissionType)')
-    print('  void createGroupResourceProfile(AuthzToken authzToken, GroupResourceProfile groupResourceProfile)')
+    print('  string createGroupResourceProfile(AuthzToken authzToken, GroupResourceProfile groupResourceProfile)')
     print('  void updateGroupResourceProfile(AuthzToken authzToken, GroupResourceProfile groupResourceProfile)')
     print('  GroupResourceProfile getGroupResourceProfile(AuthzToken authzToken, string groupResourceProfileId)')
     print('  bool removeGroupResourceProfile(AuthzToken authzToken, string groupResourceProfileId)')
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata.py
index b36f53f..8a09145 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata.py
@@ -12797,7 +12797,7 @@ class Client(Iface):
          - groupResourceProfile
         """
         self.send_createGroupResourceProfile(authzToken, groupResourceProfile)
-        self.recv_createGroupResourceProfile()
+        return self.recv_createGroupResourceProfile()
 
     def send_createGroupResourceProfile(self, authzToken, groupResourceProfile):
         self._oprot.writeMessageBegin('createGroupResourceProfile', TMessageType.CALL, self._seqid)
@@ -12819,6 +12819,8 @@ class Client(Iface):
         result = createGroupResourceProfile_result()
         result.read(iprot)
         iprot.readMessageEnd()
+        if result.success is not None:
+            return result.success
         if result.ire is not None:
             raise result.ire
         if result.ace is not None:
@@ -12827,7 +12829,7 @@ class Client(Iface):
             raise result.ase
         if result.ae is not None:
             raise result.ae
-        return
+        raise TApplicationException(TApplicationException.MISSING_RESULT, "createGroupResourceProfile failed: unknown result")
 
     def updateGroupResourceProfile(self, authzToken, groupResourceProfile):
         """
@@ -18828,7 +18830,7 @@ class Processor(Iface, TProcessor):
         iprot.readMessageEnd()
         result = createGroupResourceProfile_result()
         try:
-            self._handler.createGroupResourceProfile(args.authzToken, args.groupResourceProfile)
+            result.success = self._handler.createGroupResourceProfile(args.authzToken, args.groupResourceProfile)
             msg_type = TMessageType.REPLY
         except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
             raise
@@ -53525,6 +53527,7 @@ class createGroupResourceProfile_args(object):
 class createGroupResourceProfile_result(object):
     """
     Attributes:
+     - success
      - ire
      - ace
      - ase
@@ -53532,14 +53535,15 @@ class createGroupResourceProfile_result(object):
     """
 
     thrift_spec = (
-        None,  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
         (4, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 4
     )
 
-    def __init__(self, ire=None, ace=None, ase=None, ae=None,):
+    def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+        self.success = success
         self.ire = ire
         self.ace = ace
         self.ase = ase
@@ -53554,7 +53558,12 @@ class createGroupResourceProfile_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 1:
+            if fid == 0:
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 1:
                 if ftype == TType.STRUCT:
                     self.ire = airavata.api.error.ttypes.InvalidRequestException()
                     self.ire.read(iprot)
@@ -53588,6 +53597,10 @@ class createGroupResourceProfile_result(object):
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
         oprot.writeStructBegin('createGroupResourceProfile_result')
+        if self.success is not None:
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
             self.ire.write(oprot)
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/appcatalog/groupresourceprofile/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/appcatalog/groupresourceprofile/ttypes.py
index 197af65..b8689fd 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/appcatalog/groupresourceprofile/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/appcatalog/groupresourceprofile/ttypes.py
@@ -9,6 +9,7 @@
 from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
 from thrift.protocol.TProtocol import TProtocolException
 import sys
+import airavata.model.commons.ttypes
 import airavata.model.appcatalog.computeresource.ttypes
 import airavata.model.data.movement.ttypes
 
@@ -677,7 +678,7 @@ class GroupResourceProfile(object):
 
     thrift_spec = (
         None,  # 0
-        (1, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 1
+        (1, TType.STRING, 'gatewayId', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 1
         (2, TType.STRING, 'groupResourceProfileId', 'UTF8', None, ),  # 2
         (3, TType.STRING, 'groupResourceProfileName', 'UTF8', None, ),  # 3
         (4, TType.LIST, 'computePreferences', (TType.STRUCT, (GroupComputeResourcePreference, GroupComputeResourcePreference.thrift_spec), False), None, ),  # 4
@@ -687,7 +688,7 @@ class GroupResourceProfile(object):
         (8, TType.I64, 'updatedTime', None, None, ),  # 8
     )
 
-    def __init__(self, gatewayId=None, groupResourceProfileId=None, groupResourceProfileName=None, computePreferences=None, computeResourcePolicies=None, batchQueueResourcePolicies=None, creationTime=None, updatedTime=None,):
+    def __init__(self, gatewayId=thrift_spec[1][4], groupResourceProfileId=None, groupResourceProfileName=None, computePreferences=None, computeResourcePolicies=None, batchQueueResourcePolicies=None, creationTime=None, updatedTime=None,):
         self.gatewayId = gatewayId
         self.groupResourceProfileId = groupResourceProfileId
         self.groupResourceProfileName = groupResourceProfileName
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/appcatalog/storageresource/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/appcatalog/storageresource/ttypes.py
index e1ebd1c..747540b 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/appcatalog/storageresource/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/appcatalog/storageresource/ttypes.py
@@ -39,6 +39,8 @@ class StorageResourceDescription(object):
      - storageResourceDescription
      - enabled
      - dataMovementInterfaces
+     - creationTime
+     - updateTime
     """
 
     thrift_spec = (
@@ -48,14 +50,18 @@ class StorageResourceDescription(object):
         (3, TType.STRING, 'storageResourceDescription', 'UTF8', None, ),  # 3
         (4, TType.BOOL, 'enabled', None, None, ),  # 4
         (5, TType.LIST, 'dataMovementInterfaces', (TType.STRUCT, (airavata.model.data.movement.ttypes.DataMovementInterface, airavata.model.data.movement.ttypes.DataMovementInterface.thrift_spec), False), None, ),  # 5
+        (6, TType.I64, 'creationTime', None, None, ),  # 6
+        (7, TType.I64, 'updateTime', None, None, ),  # 7
     )
 
-    def __init__(self, storageResourceId=thrift_spec[1][4], hostName=None, storageResourceDescription=None, enabled=None, dataMovementInterfaces=None,):
+    def __init__(self, storageResourceId=thrift_spec[1][4], hostName=None, storageResourceDescription=None, enabled=None, dataMovementInterfaces=None, creationTime=None, updateTime=None,):
         self.storageResourceId = storageResourceId
         self.hostName = hostName
         self.storageResourceDescription = storageResourceDescription
         self.enabled = enabled
         self.dataMovementInterfaces = dataMovementInterfaces
+        self.creationTime = creationTime
+        self.updateTime = updateTime
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -97,6 +103,16 @@ class StorageResourceDescription(object):
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.I64:
+                    self.creationTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 7:
+                if ftype == TType.I64:
+                    self.updateTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -130,6 +146,14 @@ class StorageResourceDescription(object):
                 iter6.write(oprot)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
+        if self.creationTime is not None:
+            oprot.writeFieldBegin('creationTime', TType.I64, 6)
+            oprot.writeI64(self.creationTime)
+            oprot.writeFieldEnd()
+        if self.updateTime is not None:
+            oprot.writeFieldBegin('updateTime', TType.I64, 7)
+            oprot.writeI64(self.updateTime)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/data/movement/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/data/movement/ttypes.py
index c25eb43..bc6f022 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/data/movement/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/data/movement/ttypes.py
@@ -504,6 +504,9 @@ class DataMovementInterface(object):
      - dataMovementInterfaceId
      - dataMovementProtocol
      - priorityOrder
+     - creationTime
+     - updateTime
+     - storageResourceId
     """
 
     thrift_spec = (
@@ -511,12 +514,18 @@ class DataMovementInterface(object):
         (1, TType.STRING, 'dataMovementInterfaceId', 'UTF8', None, ),  # 1
         (2, TType.I32, 'dataMovementProtocol', None, None, ),  # 2
         (3, TType.I32, 'priorityOrder', None, 0, ),  # 3
+        (4, TType.I64, 'creationTime', None, None, ),  # 4
+        (5, TType.I64, 'updateTime', None, None, ),  # 5
+        (6, TType.STRING, 'storageResourceId', 'UTF8', None, ),  # 6
     )
 
-    def __init__(self, dataMovementInterfaceId=None, dataMovementProtocol=None, priorityOrder=thrift_spec[3][4],):
+    def __init__(self, dataMovementInterfaceId=None, dataMovementProtocol=None, priorityOrder=thrift_spec[3][4], creationTime=None, updateTime=None, storageResourceId=None,):
         self.dataMovementInterfaceId = dataMovementInterfaceId
         self.dataMovementProtocol = dataMovementProtocol
         self.priorityOrder = priorityOrder
+        self.creationTime = creationTime
+        self.updateTime = updateTime
+        self.storageResourceId = storageResourceId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -542,6 +551,21 @@ class DataMovementInterface(object):
                     self.priorityOrder = iprot.readI32()
                 else:
                     iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.I64:
+                    self.creationTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.I64:
+                    self.updateTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.STRING:
+                    self.storageResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -564,6 +588,18 @@ class DataMovementInterface(object):
             oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
             oprot.writeI32(self.priorityOrder)
             oprot.writeFieldEnd()
+        if self.creationTime is not None:
+            oprot.writeFieldBegin('creationTime', TType.I64, 4)
+            oprot.writeI64(self.creationTime)
+            oprot.writeFieldEnd()
+        if self.updateTime is not None:
+            oprot.writeFieldBegin('updateTime', TType.I64, 5)
+            oprot.writeI64(self.updateTime)
+            oprot.writeFieldEnd()
+        if self.storageResourceId is not None:
+            oprot.writeFieldBegin('storageResourceId', TType.STRING, 6)
+            oprot.writeString(self.storageResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.storageResourceId)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/experiment/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/experiment/ttypes.py
index a1de658..196ba70 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/experiment/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/experiment/ttypes.py
@@ -95,6 +95,7 @@ class UserConfigurationDataModel(object):
      - storageId
      - experimentDataDir
      - useUserCRPref
+     - groupResourceProfileId
     """
 
     thrift_spec = (
@@ -109,9 +110,10 @@ class UserConfigurationDataModel(object):
         (8, TType.STRING, 'storageId', 'UTF8', None, ),  # 8
         (9, TType.STRING, 'experimentDataDir', 'UTF8', None, ),  # 9
         (10, TType.BOOL, 'useUserCRPref', None, None, ),  # 10
+        (11, TType.STRING, 'groupResourceProfileId', 'UTF8', None, ),  # 11
     )
 
-    def __init__(self, airavataAutoSchedule=thrift_spec[1][4], overrideManualScheduledParams=thrift_spec[2][4], shareExperimentPublicly=thrift_spec[3][4], computationalResourceScheduling=None, throttleResources=thrift_spec[5][4], userDN=None, generateCert=thrift_spec[7][4], storageId=None, experimentDataDir=None, useUserCRPref=None,):
+    def __init__(self, airavataAutoSchedule=thrift_spec[1][4], overrideManualScheduledParams=thrift_spec[2][4], shareExperimentPublicly=thrift_spec[3][4], computationalResourceScheduling=None, throttleResources=thrift_spec[5][4], userDN=None, generateCert=thrift_spec[7][4], storageId=None, experimentDataDir=None, useUserCRPref=None, groupResourceProfileId=None,):
         self.airavataAutoSchedule = airavataAutoSchedule
         self.overrideManualScheduledParams = overrideManualScheduledParams
         self.shareExperimentPublicly = shareExperimentPublicly
@@ -122,6 +124,7 @@ class UserConfigurationDataModel(object):
         self.storageId = storageId
         self.experimentDataDir = experimentDataDir
         self.useUserCRPref = useUserCRPref
+        self.groupResourceProfileId = groupResourceProfileId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -183,6 +186,11 @@ class UserConfigurationDataModel(object):
                     self.useUserCRPref = iprot.readBool()
                 else:
                     iprot.skip(ftype)
+            elif fid == 11:
+                if ftype == TType.STRING:
+                    self.groupResourceProfileId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -233,6 +241,10 @@ class UserConfigurationDataModel(object):
             oprot.writeFieldBegin('useUserCRPref', TType.BOOL, 10)
             oprot.writeBool(self.useUserCRPref)
             oprot.writeFieldEnd()
+        if self.groupResourceProfileId is not None:
+            oprot.writeFieldBegin('groupResourceProfileId', TType.STRING, 11)
+            oprot.writeString(self.groupResourceProfileId.encode('utf-8') if sys.version_info[0] == 2 else self.groupResourceProfileId)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py
index bebb343..e2a8da4 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py
@@ -19,14 +19,16 @@ class ResourceType(object):
     EXPERIMENT = 1
     DATA = 2
     APPLICATION_DEPLOYMENT = 3
-    OTHER = 4
+    GROUP_RESOURCE_PROFILE = 4
+    OTHER = 5
 
     _VALUES_TO_NAMES = {
         0: "PROJECT",
         1: "EXPERIMENT",
         2: "DATA",
         3: "APPLICATION_DEPLOYMENT",
-        4: "OTHER",
+        4: "GROUP_RESOURCE_PROFILE",
+        5: "OTHER",
     }
 
     _NAMES_TO_VALUES = {
@@ -34,7 +36,8 @@ class ResourceType(object):
         "EXPERIMENT": 1,
         "DATA": 2,
         "APPLICATION_DEPLOYMENT": 3,
-        "OTHER": 4,
+        "GROUP_RESOURCE_PROFILE": 4,
+        "OTHER": 5,
     }
 
 
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/process/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/process/ttypes.py
index 9bce399..38c5ad3 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/process/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/process/ttypes.py
@@ -53,6 +53,7 @@ class ProcessModel(object):
      - experimentDataDir
      - userName
      - useUserCRPref
+     - groupResourceProfileId
     """
 
     thrift_spec = (
@@ -81,9 +82,10 @@ class ProcessModel(object):
         (22, TType.STRING, 'experimentDataDir', 'UTF8', None, ),  # 22
         (23, TType.STRING, 'userName', 'UTF8', None, ),  # 23
         (24, TType.BOOL, 'useUserCRPref', None, None, ),  # 24
+        (25, TType.STRING, 'groupResourceProfileId', 'UTF8', None, ),  # 25
     )
 
-    def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatuses=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, processResourceSchedule=None, tasks=None, taskDag=None, processErrors=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, storageResourceId=None, userDn=None, generateCert=thrift_spec[2 [...]
+    def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatuses=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, processResourceSchedule=None, tasks=None, taskDag=None, processErrors=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, storageResourceId=None, userDn=None, generateCert=thrift_spec[2 [...]
         self.processId = processId
         self.experimentId = experimentId
         self.creationTime = creationTime
@@ -108,6 +110,7 @@ class ProcessModel(object):
         self.experimentDataDir = experimentDataDir
         self.userName = userName
         self.useUserCRPref = useUserCRPref
+        self.groupResourceProfileId = groupResourceProfileId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -274,6 +277,11 @@ class ProcessModel(object):
                     self.useUserCRPref = iprot.readBool()
                 else:
                     iprot.skip(ftype)
+            elif fid == 25:
+                if ftype == TType.STRING:
+                    self.groupResourceProfileId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -398,6 +406,10 @@ class ProcessModel(object):
             oprot.writeFieldBegin('useUserCRPref', TType.BOOL, 24)
             oprot.writeBool(self.useUserCRPref)
             oprot.writeFieldEnd()
+        if self.groupResourceProfileId is not None:
+            oprot.writeFieldBegin('groupResourceProfileId', TType.STRING, 25)
+            oprot.writeString(self.groupResourceProfileId.encode('utf-8') if sys.version_info[0] == 2 else self.groupResourceProfileId)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/groupresourceprofile/GroupResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/groupresourceprofile/GroupResourceProfile.java
index d5f006f..4e732b9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/groupresourceprofile/GroupResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/groupresourceprofile/GroupResourceProfile.java
@@ -179,6 +179,8 @@ public class GroupResourceProfile implements org.apache.thrift.TBase<GroupResour
   }
 
   public GroupResourceProfile() {
+    this.gatewayId = "DO_NOT_SET_AT_CLIENTS";
+
   }
 
   public GroupResourceProfile(
@@ -235,7 +237,8 @@ public class GroupResourceProfile implements org.apache.thrift.TBase<GroupResour
 
   @Override
   public void clear() {
-    this.gatewayId = null;
+    this.gatewayId = "DO_NOT_SET_AT_CLIENTS";
+
     this.groupResourceProfileId = null;
     this.groupResourceProfileName = null;
     this.computePreferences = null;
diff --git a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
index 304f878..0db9ed0 100644
--- a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
@@ -3506,7 +3506,7 @@ service Airavata {
                                                  4: airavata_errors.AuthorizationException ae)
 
 
- void createGroupResourceProfile(1: required security_model.AuthzToken authzToken, 2: required group_resource_profile_model.GroupResourceProfile groupResourceProfile)
+ string createGroupResourceProfile(1: required security_model.AuthzToken authzToken, 2: required group_resource_profile_model.GroupResourceProfile groupResourceProfile)
                                                                          throws (1: airavata_errors.InvalidRequestException ire,
                                                                                  2: airavata_errors.AiravataClientException ace,
                                                                                  3: airavata_errors.AiravataSystemException ase,
diff --git a/thrift-interface-descriptions/data-models/resource-catalog-models/group_resource_profile_model.thrift b/thrift-interface-descriptions/data-models/resource-catalog-models/group_resource_profile_model.thrift
index 5e9cc80..1674712 100644
--- a/thrift-interface-descriptions/data-models/resource-catalog-models/group_resource_profile_model.thrift
+++ b/thrift-interface-descriptions/data-models/resource-catalog-models/group_resource_profile_model.thrift
@@ -23,6 +23,7 @@ namespace php Airavata.Model.AppCatalog.GroupResourceProfile
 namespace cpp apache.airavata.model.appcatalog.groupresourceprofile
 namespace py airavata.model.appcatalog.groupresourceprofile
 
+include "../../airavata-apis/airavata_commons.thrift"
 include "compute_resource_model.thrift"
 include "data_movement_models.thrift"
 
@@ -92,7 +93,7 @@ struct BatchQueueResourcePolicy {
 */
 
 struct GroupResourceProfile {
-    1: required string gatewayId,
+    1: required string gatewayId = airavata_commons.DEFAULT_ID,
     2: required string groupResourceProfileId,
     3: optional string groupResourceProfileName,
     4: optional list<GroupComputeResourcePreference> computePreferences,

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

Mime
View raw message