-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74688/
-----------------------------------------------------------

(Updated Oct. 23, 2023, 11:26 a.m.)


Review request for ranger, Anand Nadar, Ankita Sinha, Madhan Neethiraj, Monika 
Kachhadiya, and Subhrat Chaudhary.


Bugs: RANGER-4490
    https://issues.apache.org/jira/browse/RANGER-4490


Repository: ranger


Description (updated)
-------

Get dataShareInDataset Summary objects with filters

The API is required for "My Requests" page to show mapping of dataset with 
datashare 

Required Fields for the page are 
(datasetName,dataShareName,sharedStatus,createTime,updateTime,createdBy)

Need to add new query params 

linkedServiceId/linkedServiceName ---------> in case of dataShares we need this 
query param to ensure we get only those dataShares that are linked to the given 
service AND also have datasets linked to them 

linkedZoneId/linkedZoneName -------------> in case of dataShares we need this 
query param to ensure we get only those dataShares that are linked to the given 
security-zone AND also have datasets linked to them 

linkedProjectId/linkedProjectName -----> in case of datasets we need this query 
param to ensure we only get datasets that are connected to the given project 
AND also have dataShares linked to them 

In case of dataShares the Existing query Params like serviceId/serviceName  
only return dataShares connected to the service but this do not ensure that the 
same dataShare is connected to any dataset 

Also for query param zoneId/zoneName from dataShare side only return dataShares 
connected to the given security-zone but this do not ensure that the same 
dataShare is connected to any dataset

in case of dataset the Existing param projectId/projectName will only return 
the datasets connected to the project but this do not ensure that the dataset 
is connected to any dataShare

Details of the API 

FIELDS 
(datasetId,datasetName,dataShareId,dataShareName,serviceId,serviceName,zoneId,resoueceCount(based
 on dataShare),zoneName,shareStatus,)

Supported Query Params

linkedServiceId,linkedServiceName,linkedServiceNamePartial,linkedZoneId,linkedZoneName,linkedZoneNamePartial,linkedProjectId,linkedProjectName,linkedProjectNamePartial


Need to merge after (https://reviews.apache.org/r/74681/)


Diffs
-----

  agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java 
93bd7f73d 
  security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java 10986823d 
  security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java 
f8b7837c5 
  security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java 4c0a106ad 
  
security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
 f21d445c4 
  
security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareInDatasetService.java
 569509d66 
  
security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareService.java
 6a93e44dc 
  
security-admin/src/main/java/org/apache/ranger/service/RangerGdsDatasetService.java
 75833ea7b 


Diff: https://reviews.apache.org/r/74688/diff/2/


Testing
-------

1)Create a dataset
2)Create a dataShare (create service,create security-zone attach them to the 
dataShare while creating)
3)Create a project (attach created dataset with project)
4)Link dataset with dataShare

use GET-API --------------> (/service/gds/datashare/dataset/summary) will get 
objects of dataset-in-datashare-summary

Supported Query Params
1)linkedServiceId,linkedServiceName,linkedServiceNamePartial ------------> will 
get objList based on service linked to datashares
2)linkedZoneId,linkedZoneName,linkedZoneNamePartial ---------------> will get 
objList based on security-zone linked to datashares
3)linkedProjectId,linkedProjectName,linkedProjectNamePartial ------------> will 
get objList based on project linked to dataset

Request  ---------> (/service/gds/datashare/dataset/summary?linkedZoneId=)
Response ----------> 
{
    "startIndex": 0,
    "pageSize": 200,
    "totalCount": 1,
    "resultSize": 1,
    "sortType": "dataShareInDatasetId",
    "sortBy": "ASC",
    "queryTimeMS": 1697803539620,
    "list": [
        {
            "id": 2,
            "guid": "64ef719b-38ca-442c-a246-3bf6bf7afead",
            "isEnabled": true,
            "createdBy": "Admin",
            "updatedBy": "Admin",
            "createTime": 1697713660000,
            "updateTime": 1697713660000,
            "datasetId": 1,
            "datasetName": "Test_GDS_Dataset82",
            "dataShareId": 2,
            "dataShareName": "RangerDataShare61",
            "serviceId": 1,
            "serviceName": "Ranger_hive",
            "zoneId": 2,
            "zoneName": "test-Zone-1",
            "resourceCount": 0,
            "shareStatus": "NONE",
            "approver":"admin"
        }
    ],
    "listSize": 1
}


Thanks,

Prashant Satam

Reply via email to