----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/75213/#review226942 -----------------------------------------------------------
agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java Lines 840 (patched) <https://reviews.apache.org/r/75213/#comment315225> Ramesh - instead of creating a new payload and API, I suggest to go with 2 step process: 1. create a dataset using existing API "POST service/gds/dataset" 2. 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 to this datashare This API can be used to add subsequent resources to the dataset as well, in addition to eliminating steps to create/find dataShare before adding a resource. - Madhan Neethiraj On Sept. 22, 2024, 3:57 a.m., Ramesh Mani wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/75213/ > ----------------------------------------------------------- > > (Updated Sept. 22, 2024, 3:57 a.m.) > > > Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, and Radhika > Kundam. > > > Bugs: RANGER-4937 > https://issues.apache.org/jira/browse/RANGER-4937 > > > Repository: ranger > > > Description > ------- > > RANGER-4937:API to create DataShare with resources in GDS > > > Diffs > ----- > > agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java > d582e420f > security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java b1a00533e > > security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java > 65e0f7848 > > > Diff: https://reviews.apache.org/r/75213/diff/1/ > > > Testing > ------- > > New API in Ranger for creating DataShare with resource in single API > 1. Create a new Ranger Dataset > 2. Create a Ranger DataShare > 2. Add assets/resources to the created Ranger DataShare > 4. Add Ranger DataShare to the created Ranger DatSet > > This would be useful to integrate external service which would use the GDS > functionality to create DataShare in ranger with resources. > > Testing done in local VM > > curl -ikv -u admin:Admin123 -X POST -H "Content-Type: application/json" > 'http://localhost:6080/service/gds/dataset/resources' -d > '{"serviceName":"cm_hive","rangerDataSet":{"name":"rm-purchase","acl":{"users":{"testuser2":"POLICY_ADMIN"},"groups":{},"roles":{}},"description":"rm-purchase","termsOfUse":"rm-purchase > > condition"},"rangerDataShare":{"name":"DataShare-rm-purchase","acl":{"users":{"testuser2":"POLICY_ADMIN"},"groups":{},"roles":{}},"service":"cm_hive","description":"DataShare-rm-purchase","termsOfUse":"DataShare-rm-purchase-Terms > and > Conditions","defaultAccessTypes":["select"],"defaultTagMasks":[]},"rangerSharedResources":[{ > "name": "rm-purchase-data", > "dataShareId":"","resource":{"database":{"values":["pur_data"],"isRecursive":false},"table":{"values":["orders"],"isRecursive":false},"column":{"values":["*"],"isRecursive":false}}}]}' > > curl -ikv -u admin:Admin123 -X POST -H "Content-Type: application/json" > 'http://localhost:6080/service/gds/dataset/resources' -d > '{"serviceName":"cm_hive","rangerDataSet":{"name":"rm-sales","acl":{"users":{"testuser2":"POLICY_ADMIN"},"groups":{},"roles":{}},"description":"rm-sales","termsOfUse":"rm-sales > condition"},"rangerDataShare":{},"rangerSharedResources":[{ "name": > "rm-sales", > "dataShareId":"","resource":{"database":{"values":["emp_data"],"isRecursive":false},"table":{"values":["employees"],"isRecursive":false},"column":{"values":["*"],"isRecursive":false}}}]}' > > > Thanks, > > Ramesh Mani > >
