This is an automated email from the ASF dual-hosted git repository. madhan pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 58a75b1a2880bd975626f1dc5a1fd7eaa3fe7c7a Author: princeap173 <[email protected]> AuthorDate: Thu Dec 14 10:06:02 2023 +0530 RANGER-4605: /assets/resources/count does not return proper count if policies are greater than 200 Signed-off-by: Madhan Neethiraj <[email protected]> --- .../java/org/apache/ranger/rest/AssetREST.java | 33 ++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java index e5ef779f4..be077e789 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java @@ -22,7 +22,9 @@ import java.io.File; import java.security.cert.X509Certificate; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -446,12 +448,39 @@ public class AssetREST { logger.debug("==> AssetREST.countXResources()"); } + SearchFilter filter = searchUtil.getSearchFilterFromLegacyRequest(request, xResourceService.sortFields); + + filter.setMaxRows(Integer.MAX_VALUE); + + List<RangerPolicy> policies = serviceREST.getPolicies(filter); + int policiesCount = 0; + + if (policies != null) { + Map<String, RangerService> services = new HashMap<>(); + + for (RangerPolicy policy : policies) { + RangerService service = services.get(policy.getService()); + + if (service == null) { + service = serviceREST.getServiceByName(policy.getService()); + + services.put(policy.getService(), service); + } + + VXResource resource = serviceUtil.toVXResource(policy, service); + + if (resource != null) { + policiesCount++; + } + } + } + VXLong ret = new VXLong(); - ret.setValue(searchXResources(request).getListSize()); + ret.setValue(policiesCount); if(logger.isDebugEnabled()) { - logger.debug("<== AssetREST.countXAssets(): " + ret); + logger.debug("<== AssetREST.countXResources(): " + ret); } return ret;
