rameeshm commented on code in PR #932:
URL: https://github.com/apache/ranger/pull/932#discussion_r3198408741
##########
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 the existing API may not be useful.
As per `(RFC7321)
https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.5`
A payload within a DELETE request message has no defined semantics; sending
a payload body on a DELETE request might cause some existing implementations to
reject the request. Because of this while the spec does not explicitly forbid
bodies, it warns that many servers, proxies, and load balancers may reject or
silently ignore them. To overcome this and have a functionality to bulk delete
I am using
`public void updateSharedResources(@QueryParam("forceDelete")
@DefaultValue("false") boolean forceDelete, List<RangerSharedResource>
resources)`
--
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]