-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75213/
-----------------------------------------------------------
(Updated Sept. 30, 2024, 3:59 a.m.)
Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, and Radhika Kundam.
Changes
-------
Review comments addressed
Summary (updated)
-----------------
RANGER-4937: Enhance GDS resources API to support creation of datashare add
resources and add to dataset as an option
Bugs: RANGER-4937
https://issues.apache.org/jira/browse/RANGER-4937
Repository: ranger
Description (updated)
-------
RANGER-4937: Enhance GDS resources API to support creation of datashare add
resources and add to dataset as an option
Diffs (updated)
-----
security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java 0b3d91001
Diff: https://reviews.apache.org/r/75213/diff/2/
Changes: https://reviews.apache.org/r/75213/diff/1-2/
Testing (updated)
-------
Enhance GDS resources API to support creation of datashare, add resources and
add to dataset as an option
- add a resource to a dataset using existing API "POST service/gds/resource",
with following enhancements:
- receive optional parameters "serviceName" and "datasetId"
- when dataShareId=-1 in the payload, this API should do the following:
if a data share named "_dataset<datasetId>service<svcId>" does not
exist, create it, associate it with the dataset with status=ACTIVE
add the given resource/resources to this datashare
This would be useful to integrate external service which would use the
GDS functionality to create DataShare in ranger with resources
Testing done with local vm:
- Create a DataSet with "POST service/gds/dataset".
- Call the enhanced API "POST service/gds/resources" as following.
curl -ikv -u <user:password> -X POST -H "Content-Type: application/json"
'http://localhost:6080/service/gds/resources?serviceName=cm_hive&id=26' --data
'[ { "createdBy": "Admin", "isEnabled": "true", "version": 1,
"dataShareId":"-1", "resource":{ "database":{ "values":["test_db"] }, "table":{
"values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ],
"isExcludes": false, "isRecursive": false } }, "name":"test-resource-17",
"accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true",
"version": 1, "dataShareId":"-1", "resource":{ "database":{
"values":["default"] }, "table":{
"values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [
"*" ], "isExcludes": false, "isRecursive": false } },
"name":"test-resource-18", "accessTypes":["all"] } ]'
curl -ikv -u admin:Admin123 -X POST -H "Content-Type: application/json"
'http://localhost:6080/service/gds/resources' --data '[ { "createdBy": "Admin",
"isEnabled": "true", "version": 1, "dataShareId":"29", "resource":{
"database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"]
}, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false }
}, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin",
"isEnabled": "true", "version": 1, "dataShareId":"29", "resource":{
"database":{ "values":["default"] }, "table":{
"values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [
"*" ], "isExcludes": false, "isRecursive": false } },
"name":"test-resource-18", "accessTypes":["all"] } ]'
Thanks,
Ramesh Mani