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]