@Sneha, thank you for taking lead on this, and elaborating on the changes. dev,
In addition to what Sneha mentioned below, I also wanted to add that we have introduced a new AIRAVATA_INTERNAL_GATEWAY_ID field to the GatewayEntity (JPA entity) and Gateway (thrift data model) classes. This field will now serve as the primary key for the Gateway table in the Profile Service database. We earlier had the GATEWAY_ID as the primary key. A gateway will be considered duplicate, if there exists a record in the Gateway table with same GATEWAY_ID, GATEWAY_URL, and with status APPROVED. A user might submit multiple gateway creation request with the same GATEWAY_ID (for any reason – one possibility is he forgets his credentials and creates a new account to submit a new request, while previous one remains UNAPPROVED). I just wanted to bring to notice this particular change. Thanks and Regards, Gourav Shenoy From: Sneha Tilak <[email protected]> Reply-To: "[email protected]" <[email protected]> Date: Friday, June 9, 2017 at 3:21 PM To: "[email protected]" <[email protected]> Subject: Modifying the Profile Service Hello dev, Last week, Eroma assigned me a JIRA ticket - https://issues.apache.org/jira/browse/AIRAVATA-2385 to check for duplicate gateway requests (if there already exists an APPROVED gateway with the same Id/name/URL). I created a PULL request - https://github.com/apache/airavata/pull/111 with a few changes after which I received some suggestions from Marcus. The PULL request now reflects the following code changes - 1. Added new method checkDuplicateGateway() in TenantProfileServiceHandler.java to identify duplicate requests for Gateway Ids that have already been approved 2. Modified FIND_GATEWAY_BY_ID in QueryConstants.java to return only Approved Gateways 3. Added new method getAllGatewaysForUser() in TenantProfileServiceHandler.java as a Thrift service to display gateways belonging to a particular user 4. Added new method getAllGatewaysForUser() in TenantProfileRepository.java to retrieve the GET_USER_GATEWAYS query result 5. Modified profile_tenant_cpi.thrift to include getAllGatewaysForUser() and generated the stubs to reflect in Iface (TenantProfileService.java) 6. Added GET_USER_GATEWAYS in QueryContsants.java to return all Gateways belonging to a particular user 7. Modified workspace_model.thrift to expose the Gateway's airavataInternalId to Update and Delete Gateways and generated the stubs to reflect in Gateway.java 8. Modified deleteGateway() in profile_tenant_cpi.thrift to accept the airavataInternalId as a parameter and generated the stubs to reflect in Iface (TenantProfileService.java) Reviews/suggestions are welcome! Regards, Sneha Tilak
