-----------------------------------------------------------
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