@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

Reply via email to