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


##########
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:
   @rameeshm  - GdsREST already has following API to bulk-delete shared 
resources, which I guess takes a comma-separated list of IDs as query 
parameter. Does that not work?
   
   ```
   @DELETE
   @Path("/resources")
   @PreAuthorize("@rangerPreAuthSecurityHandler.isAPIAccessible(\"" + 
RangerAPIList.REMOVE_SHARED_RESOURCES + "\")")
   public void removeSharedResources(List<Long> resourceIds) {
   ...
   }
   ```
   
   API to bulk-add shared resources also already exists. Perhaps adding an API 
to bulk-update is good enough? i.e. is an API to update or delete necessary?
   ```



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