rameeshm commented on code in PR #932:
URL: https://github.com/apache/ranger/pull/932#discussion_r3193524814


##########
security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java:
##########
@@ -1261,6 +1261,47 @@ public RangerSharedResource 
updateSharedResource(@PathParam("id") Long resourceI
         return ret;
     }
 
+    @PUT
+    @Path("/resources")
+    @Consumes("application/json")
+    @Produces("application/json")
+    @PreAuthorize("@rangerPreAuthSecurityHandler.isAPIAccessible(\"" + 
RangerAPIList.UPDATE_SHARED_RESOURCES + "\")")
+    public void updateSharedResources(@QueryParam("forceDelete") 
@DefaultValue("false") boolean forceDelete, List<Long> resourceIds) {
+        LOG.debug("==> GdsREST.updateSharedResources(resourceIds={}, 
forceDelete={})", resourceIds, forceDelete);
+
+        RangerPerfTracer perf = null;
+
+        try {
+            if (resourceIds == null) {
+                throw new Exception("resourceIds must not be null");
+            }
+
+            if (resourceIds.size() > SHARED_RESOURCES_MAX_BATCH_SIZE) {
+                throw new Exception("updateSharedResources batch size exceeded 
the configured limit: Maximum allowed is " + SHARED_RESOURCES_MAX_BATCH_SIZE);
+            }
+
+            if (RangerPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
+                perf = RangerPerfTracer.getPerfTracer(PERF_LOG, 
"GdsREST.updateSharedResources(" + resourceIds + ",forceDelete=" + forceDelete 
+ ")");
+            }
+
+            if (forceDelete) {

Review Comment:
   @mneethiraj we need to use updateSharedResources API to do delete as well, 
because HTTP DELETE is not accepting payloads and in order to support a bulk 
delete we are using the flag "forceDelete". Naming the API as 
deleteSharedResources with PUT doesn't look right, so introduced this flag 
"forceDelete". Should I have new API list as 
"UPDATE_OR_DELETE_SHARED_RESOURCES" for this new API? Please advice. 
    This bulk delete / update will be helpful in the integration of external 
system which does bulk operations of adding / updating / removing resources in 
the DataShares.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to