You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/06/15 16:27:06 UTC

[airavata-django-portal] branch master updated (11c180f -> 9fbcb72)

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git.


    from 11c180f  Merge pull request #12 from eldhomathulla/master
     new f1fa76e  Regenerate Thrift stubs
     new 9fbcb72  Add self url to GroupResourceProfileSerializer

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 airavata/api/Airavata-remote                       |  14 +
 airavata/api/Airavata.py                           | 648 ++++++++++++++++++++-
 .../model/appcatalog/userresourceprofile/ttypes.py |  17 +-
 django_airavata/apps/api/serializers.py            |   4 +-
 django_airavata/apps/api/views.py                  |   1 +
 5 files changed, 640 insertions(+), 44 deletions(-)

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

[airavata-django-portal] 02/02: Add self url to GroupResourceProfileSerializer

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit 9fbcb727f6c48c8d8a24e53f797e55e5b92acdbd
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Fri Jun 8 15:58:55 2018 -0400

    Add self url to GroupResourceProfileSerializer
---
 django_airavata/apps/api/serializers.py | 4 +++-
 django_airavata/apps/api/views.py       | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/django_airavata/apps/api/serializers.py b/django_airavata/apps/api/serializers.py
index e1a3d80..a6b986a 100644
--- a/django_airavata/apps/api/serializers.py
+++ b/django_airavata/apps/api/serializers.py
@@ -444,13 +444,15 @@ class UserProfileSerializer(
 
 class GroupResourceProfileSerializer(
         thrift_utils.create_serializer_class(GroupResourceProfile)):
+    url = FullyEncodedHyperlinkedIdentityField(view_name='django_airavata_api:group-resource-profile-detail', lookup_field='groupResourceProfileId', lookup_url_kwarg='group_resource_profile_id')
     creationTime = UTCPosixTimestampDateTimeField(allow_null=True)
     updatedTime = UTCPosixTimestampDateTimeField(allow_null=True)
 
+
 class SharedGroups(serializers.Serializer):
     groupList=serializers.ListField(child=serializers.CharField())
     entityId=serializers.CharField()
 
     def update(self, instance, validated_data):
         instance["groupList"]=validated_data["groupList"]
-        return instance
\ No newline at end of file
+        return instance
diff --git a/django_airavata/apps/api/views.py b/django_airavata/apps/api/views.py
index 636d2c6..c361a3a 100644
--- a/django_airavata/apps/api/views.py
+++ b/django_airavata/apps/api/views.py
@@ -687,6 +687,7 @@ class UserProfileViewSet(mixins.ListModelMixin, GenericAPIBackedViewSet):
 
 class GroupResourceProfileViewSet(APIBackedViewSet):
     serializer_class = serializers.GroupResourceProfileSerializer
+    lookup_field = 'group_resource_profile_id'
 
     def get_list(self):
         return self.request.airavata_client.getGroupResourceList(

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

[airavata-django-portal] 01/02: Regenerate Thrift stubs

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit f1fa76e69f3b6a3853455dae0990ea3cf7f021fb
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Thu Jun 7 10:45:45 2018 -0400

    Regenerate Thrift stubs
---
 airavata/api/Airavata-remote                       |  14 +
 airavata/api/Airavata.py                           | 648 ++++++++++++++++++++-
 .../model/appcatalog/userresourceprofile/ttypes.py |  17 +-
 3 files changed, 636 insertions(+), 43 deletions(-)

diff --git a/airavata/api/Airavata-remote b/airavata/api/Airavata-remote
index 30ae6c0..ca91113 100755
--- a/airavata/api/Airavata-remote
+++ b/airavata/api/Airavata-remote
@@ -163,6 +163,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
     print('  bool doesUserHaveSSHAccount(AuthzToken authzToken, string computeResourceId, string userId)')
     print('  UserComputeResourcePreference setupUserComputeResourcePreferencesForSSH(AuthzToken authzToken, string computeResourceId, string userId, string airavataCredStoreToken)')
     print('  string registerUserResourceProfile(AuthzToken authzToken, UserResourceProfile userResourceProfile)')
+    print('  bool isUserResourceProfileExists(AuthzToken authzToken, string userId, string gatewayID)')
     print('  UserResourceProfile getUserResourceProfile(AuthzToken authzToken, string userId, string gatewayID)')
     print('  bool updateUserResourceProfile(AuthzToken authzToken, string userId, string gatewayID, UserResourceProfile userResourceProfile)')
     print('  bool deleteUserResourceProfile(AuthzToken authzToken, string userId, string gatewayID)')
@@ -195,6 +196,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
     print('  bool revokeSharingOfResourceFromUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType,  userPermissionList)')
     print('  bool revokeSharingOfResourceFromGroups(AuthzToken authzToken, string resourceId, ResourceType resourceType,  groupPermissionList)')
     print('   getAllAccessibleUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType, ResourcePermissionType permissionType)')
+    print('  bool userHasAccess(AuthzToken authzToken, string resourceId, ResourcePermissionType permissionType)')
     print('  string createGroupResourceProfile(AuthzToken authzToken, GroupResourceProfile groupResourceProfile)')
     print('  void updateGroupResourceProfile(AuthzToken authzToken, GroupResourceProfile groupResourceProfile)')
     print('  GroupResourceProfile getGroupResourceProfile(AuthzToken authzToken, string groupResourceProfileId)')
@@ -1123,6 +1125,12 @@ elif cmd == 'registerUserResourceProfile':
         sys.exit(1)
     pp.pprint(client.registerUserResourceProfile(eval(args[0]), eval(args[1]),))
 
+elif cmd == 'isUserResourceProfileExists':
+    if len(args) != 3:
+        print('isUserResourceProfileExists requires 3 args')
+        sys.exit(1)
+    pp.pprint(client.isUserResourceProfileExists(eval(args[0]), args[1], args[2],))
+
 elif cmd == 'getUserResourceProfile':
     if len(args) != 3:
         print('getUserResourceProfile requires 3 args')
@@ -1315,6 +1323,12 @@ elif cmd == 'getAllAccessibleUsers':
         sys.exit(1)
     pp.pprint(client.getAllAccessibleUsers(eval(args[0]), args[1], eval(args[2]), eval(args[3]),))
 
+elif cmd == 'userHasAccess':
+    if len(args) != 3:
+        print('userHasAccess requires 3 args')
+        sys.exit(1)
+    pp.pprint(client.userHasAccess(eval(args[0]), args[1], eval(args[2]),))
+
 elif cmd == 'createGroupResourceProfile':
     if len(args) != 2:
         print('createGroupResourceProfile requires 2 args')
diff --git a/airavata/api/Airavata.py b/airavata/api/Airavata.py
index f1d4ada..3b9fae2 100644
--- a/airavata/api/Airavata.py
+++ b/airavata/api/Airavata.py
@@ -2996,6 +2996,26 @@ class Iface(object):
         """
         pass
 
+    def isUserResourceProfileExists(self, authzToken, userId, gatewayID):
+        """
+        Check if User Resource Profile exists.
+
+        @param userId
+          The identifier for the requested user resource profile.
+
+        @param gatewayID
+          The identifier to link a gateway for the requested user resource profile.
+
+        @return bool
+
+
+        Parameters:
+         - authzToken
+         - userId
+         - gatewayID
+        """
+        pass
+
     def getUserResourceProfile(self, authzToken, userId, gatewayID):
         """
         Fetch the given User Resource Profile.
@@ -3506,6 +3526,15 @@ class Iface(object):
         """
         pass
 
+    def userHasAccess(self, authzToken, resourceId, permissionType):
+        """
+        Parameters:
+         - authzToken
+         - resourceId
+         - permissionType
+        """
+        pass
+
     def createGroupResourceProfile(self, authzToken, groupResourceProfile):
         """
         Parameters:
@@ -11311,6 +11340,60 @@ class Client(Iface):
             raise result.ae
         raise TApplicationException(TApplicationException.MISSING_RESULT, "registerUserResourceProfile failed: unknown result")
 
+    def isUserResourceProfileExists(self, authzToken, userId, gatewayID):
+        """
+        Check if User Resource Profile exists.
+
+        @param userId
+          The identifier for the requested user resource profile.
+
+        @param gatewayID
+          The identifier to link a gateway for the requested user resource profile.
+
+        @return bool
+
+
+        Parameters:
+         - authzToken
+         - userId
+         - gatewayID
+        """
+        self.send_isUserResourceProfileExists(authzToken, userId, gatewayID)
+        return self.recv_isUserResourceProfileExists()
+
+    def send_isUserResourceProfileExists(self, authzToken, userId, gatewayID):
+        self._oprot.writeMessageBegin('isUserResourceProfileExists', TMessageType.CALL, self._seqid)
+        args = isUserResourceProfileExists_args()
+        args.authzToken = authzToken
+        args.userId = userId
+        args.gatewayID = gatewayID
+        args.write(self._oprot)
+        self._oprot.writeMessageEnd()
+        self._oprot.trans.flush()
+
+    def recv_isUserResourceProfileExists(self):
+        iprot = self._iprot
+        (fname, mtype, rseqid) = iprot.readMessageBegin()
+        if mtype == TMessageType.EXCEPTION:
+            x = TApplicationException()
+            x.read(iprot)
+            iprot.readMessageEnd()
+            raise x
+        result = isUserResourceProfileExists_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:
+            raise result.ace
+        if result.ase is not None:
+            raise result.ase
+        if result.ae is not None:
+            raise result.ae
+        raise TApplicationException(TApplicationException.MISSING_RESULT, "isUserResourceProfileExists failed: unknown result")
+
     def getUserResourceProfile(self, authzToken, userId, gatewayID):
         """
         Fetch the given User Resource Profile.
@@ -12909,6 +12992,49 @@ class Client(Iface):
             raise result.ae
         raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllAccessibleUsers failed: unknown result")
 
+    def userHasAccess(self, authzToken, resourceId, permissionType):
+        """
+        Parameters:
+         - authzToken
+         - resourceId
+         - permissionType
+        """
+        self.send_userHasAccess(authzToken, resourceId, permissionType)
+        return self.recv_userHasAccess()
+
+    def send_userHasAccess(self, authzToken, resourceId, permissionType):
+        self._oprot.writeMessageBegin('userHasAccess', TMessageType.CALL, self._seqid)
+        args = userHasAccess_args()
+        args.authzToken = authzToken
+        args.resourceId = resourceId
+        args.permissionType = permissionType
+        args.write(self._oprot)
+        self._oprot.writeMessageEnd()
+        self._oprot.trans.flush()
+
+    def recv_userHasAccess(self):
+        iprot = self._iprot
+        (fname, mtype, rseqid) = iprot.readMessageBegin()
+        if mtype == TMessageType.EXCEPTION:
+            x = TApplicationException()
+            x.read(iprot)
+            iprot.readMessageEnd()
+            raise x
+        result = userHasAccess_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:
+            raise result.ace
+        if result.ase is not None:
+            raise result.ase
+        if result.ae is not None:
+            raise result.ae
+        raise TApplicationException(TApplicationException.MISSING_RESULT, "userHasAccess failed: unknown result")
+
     def createGroupResourceProfile(self, authzToken, groupResourceProfile):
         """
         Parameters:
@@ -13670,6 +13796,7 @@ class Processor(Iface, TProcessor):
         self._processMap["doesUserHaveSSHAccount"] = Processor.process_doesUserHaveSSHAccount
         self._processMap["setupUserComputeResourcePreferencesForSSH"] = Processor.process_setupUserComputeResourcePreferencesForSSH
         self._processMap["registerUserResourceProfile"] = Processor.process_registerUserResourceProfile
+        self._processMap["isUserResourceProfileExists"] = Processor.process_isUserResourceProfileExists
         self._processMap["getUserResourceProfile"] = Processor.process_getUserResourceProfile
         self._processMap["updateUserResourceProfile"] = Processor.process_updateUserResourceProfile
         self._processMap["deleteUserResourceProfile"] = Processor.process_deleteUserResourceProfile
@@ -13702,6 +13829,7 @@ class Processor(Iface, TProcessor):
         self._processMap["revokeSharingOfResourceFromUsers"] = Processor.process_revokeSharingOfResourceFromUsers
         self._processMap["revokeSharingOfResourceFromGroups"] = Processor.process_revokeSharingOfResourceFromGroups
         self._processMap["getAllAccessibleUsers"] = Processor.process_getAllAccessibleUsers
+        self._processMap["userHasAccess"] = Processor.process_userHasAccess
         self._processMap["createGroupResourceProfile"] = Processor.process_createGroupResourceProfile
         self._processMap["updateGroupResourceProfile"] = Processor.process_updateGroupResourceProfile
         self._processMap["getGroupResourceProfile"] = Processor.process_getGroupResourceProfile
@@ -18057,6 +18185,37 @@ class Processor(Iface, TProcessor):
         oprot.writeMessageEnd()
         oprot.trans.flush()
 
+    def process_isUserResourceProfileExists(self, seqid, iprot, oprot):
+        args = isUserResourceProfileExists_args()
+        args.read(iprot)
+        iprot.readMessageEnd()
+        result = isUserResourceProfileExists_result()
+        try:
+            result.success = self._handler.isUserResourceProfileExists(args.authzToken, args.userId, args.gatewayID)
+            msg_type = TMessageType.REPLY
+        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+            raise
+        except airavata.api.error.ttypes.InvalidRequestException as ire:
+            msg_type = TMessageType.REPLY
+            result.ire = ire
+        except airavata.api.error.ttypes.AiravataClientException as ace:
+            msg_type = TMessageType.REPLY
+            result.ace = ace
+        except airavata.api.error.ttypes.AiravataSystemException as ase:
+            msg_type = TMessageType.REPLY
+            result.ase = ase
+        except airavata.api.error.ttypes.AuthorizationException as ae:
+            msg_type = TMessageType.REPLY
+            result.ae = ae
+        except Exception as ex:
+            msg_type = TMessageType.EXCEPTION
+            logging.exception(ex)
+            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+        oprot.writeMessageBegin("isUserResourceProfileExists", msg_type, seqid)
+        result.write(oprot)
+        oprot.writeMessageEnd()
+        oprot.trans.flush()
+
     def process_getUserResourceProfile(self, seqid, iprot, oprot):
         args = getUserResourceProfile_args()
         args.read(iprot)
@@ -19049,6 +19208,37 @@ class Processor(Iface, TProcessor):
         oprot.writeMessageEnd()
         oprot.trans.flush()
 
+    def process_userHasAccess(self, seqid, iprot, oprot):
+        args = userHasAccess_args()
+        args.read(iprot)
+        iprot.readMessageEnd()
+        result = userHasAccess_result()
+        try:
+            result.success = self._handler.userHasAccess(args.authzToken, args.resourceId, args.permissionType)
+            msg_type = TMessageType.REPLY
+        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+            raise
+        except airavata.api.error.ttypes.InvalidRequestException as ire:
+            msg_type = TMessageType.REPLY
+            result.ire = ire
+        except airavata.api.error.ttypes.AiravataClientException as ace:
+            msg_type = TMessageType.REPLY
+            result.ace = ace
+        except airavata.api.error.ttypes.AiravataSystemException as ase:
+            msg_type = TMessageType.REPLY
+            result.ase = ase
+        except airavata.api.error.ttypes.AuthorizationException as ae:
+            msg_type = TMessageType.REPLY
+            result.ae = ae
+        except Exception as ex:
+            msg_type = TMessageType.EXCEPTION
+            logging.exception(ex)
+            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+        oprot.writeMessageBegin("userHasAccess", msg_type, seqid)
+        result.write(oprot)
+        oprot.writeMessageEnd()
+        oprot.trans.flush()
+
     def process_createGroupResourceProfile(self, seqid, iprot, oprot):
         args = createGroupResourceProfile_args()
         args.read(iprot)
@@ -47278,9 +47468,198 @@ class setupUserComputeResourcePreferencesForSSH_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.userresourceprofile.ttypes.UserComputeResourcePreference()
-                    self.success.read(iprot)
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.userresourceprofile.ttypes.UserComputeResourcePreference()
+                    self.success.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 1:
+                if ftype == TType.STRUCT:
+                    self.ire = airavata.api.error.ttypes.InvalidRequestException()
+                    self.ire.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRUCT:
+                    self.ace = airavata.api.error.ttypes.AiravataClientException()
+                    self.ace.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.ase = airavata.api.error.ttypes.AiravataSystemException()
+                    self.ase.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRUCT:
+                    self.ae = airavata.api.error.ttypes.AuthorizationException()
+                    self.ae.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('setupUserComputeResourcePreferencesForSSH_result')
+        if self.success is not None:
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ire is not None:
+            oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+            self.ire.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ace is not None:
+            oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+            self.ace.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ase is not None:
+            oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+            self.ase.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ae is not None:
+            oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+            self.ae.write(oprot)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class registerUserResourceProfile_args(object):
+    """
+    Attributes:
+     - authzToken
+     - userResourceProfile
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
+        (2, TType.STRUCT, 'userResourceProfile', (airavata.model.appcatalog.userresourceprofile.ttypes.UserResourceProfile, airavata.model.appcatalog.userresourceprofile.ttypes.UserResourceProfile.thrift_spec), None, ),  # 2
+    )
+
+    def __init__(self, authzToken=None, userResourceProfile=None,):
+        self.authzToken = authzToken
+        self.userResourceProfile = userResourceProfile
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRUCT:
+                    self.authzToken = airavata.model.security.ttypes.AuthzToken()
+                    self.authzToken.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRUCT:
+                    self.userResourceProfile = airavata.model.appcatalog.userresourceprofile.ttypes.UserResourceProfile()
+                    self.userResourceProfile.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('registerUserResourceProfile_args')
+        if self.authzToken is not None:
+            oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+            self.authzToken.write(oprot)
+            oprot.writeFieldEnd()
+        if self.userResourceProfile is not None:
+            oprot.writeFieldBegin('userResourceProfile', TType.STRUCT, 2)
+            self.userResourceProfile.write(oprot)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.authzToken is None:
+            raise TProtocolException(message='Required field authzToken is unset!')
+        if self.userResourceProfile is None:
+            raise TProtocolException(message='Required field userResourceProfile is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class registerUserResourceProfile_result(object):
+    """
+    Attributes:
+     - success
+     - ire
+     - ace
+     - ase
+     - ae
+    """
+
+    thrift_spec = (
+        (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, success=None, ire=None, ace=None, ase=None, ae=None,):
+        self.success = success
+        self.ire = ire
+        self.ace = ace
+        self.ase = ase
+        self.ae = ae
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            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:
@@ -47316,10 +47695,10 @@ class setupUserComputeResourcePreferencesForSSH_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('setupUserComputeResourcePreferencesForSSH_result')
+        oprot.writeStructBegin('registerUserResourceProfile_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            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)
@@ -47355,22 +47734,25 @@ class setupUserComputeResourcePreferencesForSSH_result(object):
         return not (self == other)
 
 
-class registerUserResourceProfile_args(object):
+class isUserResourceProfileExists_args(object):
     """
     Attributes:
      - authzToken
-     - userResourceProfile
+     - userId
+     - gatewayID
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRUCT, 'userResourceProfile', (airavata.model.appcatalog.userresourceprofile.ttypes.UserResourceProfile, airavata.model.appcatalog.userresourceprofile.ttypes.UserResourceProfile.thrift_spec), None, ),  # 2
+        (2, TType.STRING, 'userId', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'gatewayID', 'UTF8', None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, userResourceProfile=None,):
+    def __init__(self, authzToken=None, userId=None, gatewayID=None,):
         self.authzToken = authzToken
-        self.userResourceProfile = userResourceProfile
+        self.userId = userId
+        self.gatewayID = gatewayID
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -47388,9 +47770,13 @@ class registerUserResourceProfile_args(object):
                 else:
                     iprot.skip(ftype)
             elif fid == 2:
-                if ftype == TType.STRUCT:
-                    self.userResourceProfile = airavata.model.appcatalog.userresourceprofile.ttypes.UserResourceProfile()
-                    self.userResourceProfile.read(iprot)
+                if ftype == TType.STRING:
+                    self.userId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.gatewayID = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -47402,14 +47788,18 @@ class registerUserResourceProfile_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerUserResourceProfile_args')
+        oprot.writeStructBegin('isUserResourceProfileExists_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.userResourceProfile is not None:
-            oprot.writeFieldBegin('userResourceProfile', TType.STRUCT, 2)
-            self.userResourceProfile.write(oprot)
+        if self.userId is not None:
+            oprot.writeFieldBegin('userId', TType.STRING, 2)
+            oprot.writeString(self.userId.encode('utf-8') if sys.version_info[0] == 2 else self.userId)
+            oprot.writeFieldEnd()
+        if self.gatewayID is not None:
+            oprot.writeFieldBegin('gatewayID', TType.STRING, 3)
+            oprot.writeString(self.gatewayID.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayID)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -47417,8 +47807,10 @@ class registerUserResourceProfile_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.userResourceProfile is None:
-            raise TProtocolException(message='Required field userResourceProfile is unset!')
+        if self.userId is None:
+            raise TProtocolException(message='Required field userId is unset!')
+        if self.gatewayID is None:
+            raise TProtocolException(message='Required field gatewayID is unset!')
         return
 
     def __repr__(self):
@@ -47433,7 +47825,7 @@ class registerUserResourceProfile_args(object):
         return not (self == other)
 
 
-class registerUserResourceProfile_result(object):
+class isUserResourceProfileExists_result(object):
     """
     Attributes:
      - success
@@ -47444,7 +47836,7 @@ class registerUserResourceProfile_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.BOOL, 'success', None, 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
@@ -47468,8 +47860,8 @@ class registerUserResourceProfile_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -47505,10 +47897,10 @@ class registerUserResourceProfile_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerUserResourceProfile_result')
+        oprot.writeStructBegin('isUserResourceProfileExists_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.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -54150,6 +54542,208 @@ class getAllAccessibleUsers_result(object):
         return not (self == other)
 
 
+class userHasAccess_args(object):
+    """
+    Attributes:
+     - authzToken
+     - resourceId
+     - permissionType
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
+        (2, TType.STRING, 'resourceId', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'permissionType', None, None, ),  # 3
+    )
+
+    def __init__(self, authzToken=None, resourceId=None, permissionType=None,):
+        self.authzToken = authzToken
+        self.resourceId = resourceId
+        self.permissionType = permissionType
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRUCT:
+                    self.authzToken = airavata.model.security.ttypes.AuthzToken()
+                    self.authzToken.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.resourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.I32:
+                    self.permissionType = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('userHasAccess_args')
+        if self.authzToken is not None:
+            oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+            self.authzToken.write(oprot)
+            oprot.writeFieldEnd()
+        if self.resourceId is not None:
+            oprot.writeFieldBegin('resourceId', TType.STRING, 2)
+            oprot.writeString(self.resourceId.encode('utf-8') if sys.version_info[0] == 2 else self.resourceId)
+            oprot.writeFieldEnd()
+        if self.permissionType is not None:
+            oprot.writeFieldBegin('permissionType', TType.I32, 3)
+            oprot.writeI32(self.permissionType)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.authzToken is None:
+            raise TProtocolException(message='Required field authzToken is unset!')
+        if self.resourceId is None:
+            raise TProtocolException(message='Required field resourceId is unset!')
+        if self.permissionType is None:
+            raise TProtocolException(message='Required field permissionType is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class userHasAccess_result(object):
+    """
+    Attributes:
+     - success
+     - ire
+     - ace
+     - ase
+     - ae
+    """
+
+    thrift_spec = (
+        (0, TType.BOOL, 'success', None, 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, success=None, ire=None, ace=None, ase=None, ae=None,):
+        self.success = success
+        self.ire = ire
+        self.ace = ace
+        self.ase = ase
+        self.ae = ae
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 0:
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 1:
+                if ftype == TType.STRUCT:
+                    self.ire = airavata.api.error.ttypes.InvalidRequestException()
+                    self.ire.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRUCT:
+                    self.ace = airavata.api.error.ttypes.AiravataClientException()
+                    self.ace.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.ase = airavata.api.error.ttypes.AiravataSystemException()
+                    self.ase.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRUCT:
+                    self.ae = airavata.api.error.ttypes.AuthorizationException()
+                    self.ae.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('userHasAccess_result')
+        if self.success is not None:
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
+            oprot.writeFieldEnd()
+        if self.ire is not None:
+            oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+            self.ire.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ace is not None:
+            oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+            self.ace.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ase is not None:
+            oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+            self.ase.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ae is not None:
+            oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+            self.ae.write(oprot)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
 class createGroupResourceProfile_args(object):
     """
     Attributes:
diff --git a/airavata/model/appcatalog/userresourceprofile/ttypes.py b/airavata/model/appcatalog/userresourceprofile/ttypes.py
index efec47c..1fdda7b 100644
--- a/airavata/model/appcatalog/userresourceprofile/ttypes.py
+++ b/airavata/model/appcatalog/userresourceprofile/ttypes.py
@@ -347,9 +347,6 @@ class UserResourceProfile(object):
 
      identityServerPwdCredToken:
 
-    isNull:
-     Indicates that this instance is just a container for a null value.
-
 
     Attributes:
      - userId
@@ -359,7 +356,6 @@ class UserResourceProfile(object):
      - userStoragePreferences
      - identityServerTenant
      - identityServerPwdCredToken
-     - isNull
     """
 
     thrift_spec = (
@@ -371,10 +367,9 @@ class UserResourceProfile(object):
         (5, TType.LIST, 'userStoragePreferences', (TType.STRUCT, (UserStoragePreference, UserStoragePreference.thrift_spec), False), None, ),  # 5
         (6, TType.STRING, 'identityServerTenant', 'UTF8', None, ),  # 6
         (7, TType.STRING, 'identityServerPwdCredToken', 'UTF8', None, ),  # 7
-        (8, TType.BOOL, 'isNull', None, False, ),  # 8
     )
 
-    def __init__(self, userId=None, gatewayID=None, credentialStoreToken=None, userComputeResourcePreferences=None, userStoragePreferences=None, identityServerTenant=None, identityServerPwdCredToken=None, isNull=thrift_spec[8][4],):
+    def __init__(self, userId=None, gatewayID=None, credentialStoreToken=None, userComputeResourcePreferences=None, userStoragePreferences=None, identityServerTenant=None, identityServerPwdCredToken=None,):
         self.userId = userId
         self.gatewayID = gatewayID
         self.credentialStoreToken = credentialStoreToken
@@ -382,7 +377,6 @@ class UserResourceProfile(object):
         self.userStoragePreferences = userStoragePreferences
         self.identityServerTenant = identityServerTenant
         self.identityServerPwdCredToken = identityServerPwdCredToken
-        self.isNull = isNull
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -440,11 +434,6 @@ class UserResourceProfile(object):
                     self.identityServerPwdCredToken = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
-            elif fid == 8:
-                if ftype == TType.BOOL:
-                    self.isNull = iprot.readBool()
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -489,10 +478,6 @@ class UserResourceProfile(object):
             oprot.writeFieldBegin('identityServerPwdCredToken', TType.STRING, 7)
             oprot.writeString(self.identityServerPwdCredToken.encode('utf-8') if sys.version_info[0] == 2 else self.identityServerPwdCredToken)
             oprot.writeFieldEnd()
-        if self.isNull is not None:
-            oprot.writeFieldBegin('isNull', TType.BOOL, 8)
-            oprot.writeBool(self.isNull)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 

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