RANGER-200 : Implement pagination on Analytics page Signed-off-by: sneethiraj <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/2e2bdd8a Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/2e2bdd8a Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/2e2bdd8a Branch: refs/heads/master Commit: 2e2bdd8a1c1804e7e729967aa1b441b6779d3b4d Parents: f2ed981 Author: Gautam Borad <[email protected]> Authored: Wed Apr 8 14:06:35 2015 +0530 Committer: sneethiraj <[email protected]> Committed: Wed Apr 8 07:57:15 2015 -0400 ---------------------------------------------------------------------- .../java/org/apache/ranger/rest/AssetREST.java | 7 +- .../org/apache/ranger/rest/PublicAPIsv2.java | 6 +- .../org/apache/ranger/rest/ServiceREST.java | 258 +++++-------------- 3 files changed, 67 insertions(+), 204 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/2e2bdd8a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java ---------------------------------------------------------------------- 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 07f43b8..0fc0094 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 @@ -239,7 +239,7 @@ public class AssetREST { VXAssetList ret = new VXAssetList(); - List<RangerService> services = serviceREST.getServices(request); + List<RangerService> services = serviceREST.getServices(request).getServices(); if(services != null) { List<VXAsset> assets = new ArrayList<VXAsset>(); @@ -383,7 +383,8 @@ public class AssetREST { String arg = request.getParameter("assetId"); Long assetId = (arg == null || arg.isEmpty()) ? null : Long.parseLong(arg); - List<RangerPolicy> policies = assetId != null ? serviceREST.getServicePolicies(assetId, request) : serviceREST.getPolicies(request); + List<RangerPolicy> policies = assetId != null ? serviceREST.getServicePolicies(assetId, request) + .getPolicies() : serviceREST.getPolicies(request).getPolicies(); if(policies != null) { List<VXResource> resources = new ArrayList<VXResource>(policies.size()); @@ -515,7 +516,7 @@ public class AssetREST { boolean httpEnabled = PropertiesUtil.getBooleanProperty("http.enabled",true); RangerService service = serviceREST.getServiceByName(repository); - List<RangerPolicy> policies = serviceREST.getServicePolicies(repository, request); + List<RangerPolicy> policies = serviceREST.getServicePolicies(repository, request).getPolicies(); long policyUpdTime = (service != null && service.getPolicyUpdateTime() != null) ? service.getPolicyUpdateTime().getTime() : 0l; VXAsset vAsset = serviceUtil.toVXAsset(service); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/2e2bdd8a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java index 4e641ad..2094228 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java @@ -79,7 +79,7 @@ public class PublicAPIsv2 { @PreAuthorize("hasRole('ROLE_SYS_ADMIN')") @Produces({ "application/json", "application/xml" }) public List<RangerServiceDef> searchServiceDefs(@Context HttpServletRequest request) { - return serviceREST.getServiceDefs(request); + return serviceREST.getServiceDefs(request).getServiceDefs(); } @POST @@ -190,7 +190,7 @@ public class PublicAPIsv2 { @PreAuthorize("hasRole('ROLE_SYS_ADMIN')") @Produces({ "application/json", "application/xml" }) public List<RangerService> searchServices(@Context HttpServletRequest request) { - return serviceREST.getServices(request); + return serviceREST.getServices(request).getServices(); } @POST @@ -312,7 +312,7 @@ public class PublicAPIsv2 { @Produces({ "application/json", "application/xml" }) public List<RangerPolicy> searchPolicies(@PathParam("servicename") String serviceName, @Context HttpServletRequest request) { - return serviceREST.getServicePolicies(serviceName, request); + return serviceREST.getServicePolicies(serviceName, request).getPolicies(); } @POST http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/2e2bdd8a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java index c2b0a3f..d9f7015 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java @@ -20,7 +20,6 @@ package org.apache.ranger.rest; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -90,7 +89,6 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; - @Path("plugins") @Component @Scope("request") @@ -279,35 +277,33 @@ public class ServiceREST { return ret; } - + @GET - @Path("/definitions/unpaginated") + @Path("/definitions") @Produces({ "application/json", "application/xml" }) - public List<RangerServiceDef> getServiceDefs(@Context HttpServletRequest request) { - if(LOG.isDebugEnabled()) { + public RangerServiceDefList getServiceDefs(@Context HttpServletRequest request) { + if (LOG.isDebugEnabled()) { LOG.debug("==> ServiceREST.getServiceDefs()"); } - List<RangerServiceDef> ret = null; + RangerServiceDefList ret = null; SearchFilter filter = searchUtil.getSearchFilter(request, serviceDefService.sortFields); try { - ret = svcStore.getServiceDefs(filter); - } catch(Exception excp) { + ret = svcStore.getPaginatedServiceDefs(filter); + } catch (Exception excp) { LOG.error("getServiceDefs() failed", excp); throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); } - if(LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getServiceDefs(): count=" + (ret == null ? 0 : ret.size())); + if (LOG.isDebugEnabled()) { + LOG.debug("<== ServiceREST.getServiceDefs(): count=" + (ret == null ? 0 : ret.getListSize())); } - return ret; } - @POST @Path("/services") @Produces({ "application/json", "application/xml" }) @@ -448,29 +444,28 @@ public class ServiceREST { } @GET - @Path("/services/unpaginated") + @Path("/services") @Produces({ "application/json", "application/xml" }) - public List<RangerService> getServices(@Context HttpServletRequest request) { - if(LOG.isDebugEnabled()) { - LOG.debug("==> ServiceREST.getServices():"); + public RangerServiceList getServices(@Context HttpServletRequest request) { + if (LOG.isDebugEnabled()) { + LOG.debug("==> ServiceREST.getServices()"); } - List<RangerService> ret = null; + RangerServiceList ret = null; SearchFilter filter = searchUtil.getSearchFilter(request, svcService.sortFields); try { - ret = svcStore.getServices(filter); - } catch(Exception excp) { + ret = svcStore.getPaginatedServices(filter); + } catch (Exception excp) { LOG.error("getServices() failed", excp); throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); } - if(LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getServices(): count=" + (ret == null ? 0 : ret.size())); + if (LOG.isDebugEnabled()) { + LOG.debug("<== ServiceREST.getServices(): count=" + (ret == null ? 0 : ret.getListSize())); } - return ret; } @@ -508,7 +503,7 @@ public class ServiceREST { Long ret = null; try { - List<RangerService> services = getServices(request); + List<RangerService> services = getServices(request).getServices(); ret = new Long(services == null ? 0 : services.size()); } catch(Exception excp) { @@ -955,21 +950,28 @@ public class ServiceREST { } @GET - @Path("/policies/unpaginated") + @Path("/policies") @Produces({ "application/json", "application/xml" }) - public List<RangerPolicy> getPolicies(@Context HttpServletRequest request) { - if(LOG.isDebugEnabled()) { - LOG.debug("==> ServiceREST.getPolicies(request)"); + public RangerPolicyList getPolicies(@Context HttpServletRequest request) { + if (LOG.isDebugEnabled()) { + LOG.debug("==> ServiceREST.getPolicies()"); } + RangerPolicyList ret = null; + SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields); - List<RangerPolicy> ret = getPolicies(filter); + try { + ret = svcStore.getPaginatedPolicies(filter); + } catch (Exception excp) { + LOG.error("getPolicies() failed", excp); - if(LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getPolicies(request): count=" + (ret == null ? 0 : ret.size())); + throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); } + if (LOG.isDebugEnabled()) { + LOG.debug("<== ServiceREST.getPolicies(): count=" + (ret == null ? 0 : ret.getListSize())); + } return ret; } @@ -1006,7 +1008,7 @@ public class ServiceREST { Long ret = null; try { - List<RangerPolicy> services = getPolicies(request); + List<RangerPolicy> services = getPolicies(request).getPolicies(); ret = new Long(services == null ? 0 : services.size()); } catch(Exception excp) { @@ -1023,62 +1025,65 @@ public class ServiceREST { } @GET - @Path("/policies/service/unpaginated/{id}") + @Path("/policies/service/{id}") @Produces({ "application/json", "application/xml" }) - public List<RangerPolicy> getServicePolicies(@PathParam("id") Long serviceId, @Context HttpServletRequest request) { - if(LOG.isDebugEnabled()) { + public RangerPolicyList getServicePolicies(@PathParam("id") Long serviceId, + @Context HttpServletRequest request) { + if (LOG.isDebugEnabled()) { LOG.debug("==> ServiceREST.getServicePolicies(" + serviceId + ")"); } - List<RangerPolicy> ret = null; + RangerPolicyList ret = null; SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields); try { - ret = svcStore.getServicePolicies(serviceId, filter); - } catch(Exception excp) { + ret = svcStore.getPaginatedServicePolicies(serviceId, filter); + } catch (Exception excp) { LOG.error("getServicePolicies(" + serviceId + ") failed", excp); throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); } - if(ret == null) { - throw restErrorUtil.createRESTException(HttpServletResponse.SC_NOT_FOUND, "Not found", true); + if (ret == null) { + LOG.info("No Policies found for given service id: " + serviceId); } - if(LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getServicePolicies(" + serviceId + "): count=" + ret.size()); + if (LOG.isDebugEnabled()) { + LOG.debug("<== ServiceREST.getServicePolicies(" + serviceId + "): count=" + + ret.getListSize()); } - return ret; } @GET - @Path("/policies/service/unpaginated/name/{name}") + @Path("/policies/service/name/{name}") @Produces({ "application/json", "application/xml" }) - public List<RangerPolicy> getServicePolicies(@PathParam("name") String serviceName, @Context HttpServletRequest request) { - if(LOG.isDebugEnabled()) { + public RangerPolicyList getServicePolicies(@PathParam("name") String serviceName, + @Context HttpServletRequest request) { + if (LOG.isDebugEnabled()) { LOG.debug("==> ServiceREST.getServicePolicies(" + serviceName + ")"); } - List<RangerPolicy> ret = null; + RangerPolicyList ret = null; SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields); try { - ret = svcStore.getServicePolicies(serviceName, filter); - } catch(Exception excp) { + ret = svcStore.getPaginatedServicePolicies(serviceName, filter); + } catch (Exception excp) { LOG.error("getServicePolicies(" + serviceName + ") failed", excp); throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); } - if(ret == null) { - throw restErrorUtil.createRESTException(HttpServletResponse.SC_NOT_FOUND, "Not found", true); + if (ret == null) { + LOG.info("No Policies found for given service name: " + serviceName); } - if(LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getServicePolicies(" + serviceName + "): count=" + ret.size()); + if (LOG.isDebugEnabled()) { + LOG.debug("<== ServiceREST.getServicePolicies(" + serviceName + "): count=" + + ret.getListSize()); } return ret; @@ -1159,7 +1164,7 @@ public class ServiceREST { boolean ret = false; - List<RangerPolicy> policies = getServicePolicies(serviceName, null); + List<RangerPolicy> policies = getServicePolicies(serviceName, null).getPolicies(); if(!CollectionUtils.isEmpty(policies)) { for(RangerPolicy policy : policies) { @@ -1204,7 +1209,7 @@ public class ServiceREST { RangerPolicy ret = null; - List<RangerPolicy> policies = getServicePolicies(serviceName, null); + List<RangerPolicy> policies = getServicePolicies(serviceName, null).getPolicies(); if(!CollectionUtils.isEmpty(policies)) { for(RangerPolicy policy : policies) { @@ -1381,149 +1386,6 @@ public class ServiceREST { } @GET - @Path("/definitions") - @Produces({ "application/json", "application/xml" }) - public RangerServiceDefList getPaginatedServiceDefs(@Context HttpServletRequest request) { - if (LOG.isDebugEnabled()) { - LOG.debug("==> ServiceREST.getPaginatedServiceDefs()"); - } - - RangerServiceDefList ret = null; - - SearchFilter filter = searchUtil.getSearchFilter(request, serviceDefService.sortFields); - - try { - ret = svcStore.getPaginatedServiceDefs(filter); - } catch (Exception excp) { - LOG.error("getServiceDefs() failed", excp); - - throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); - } - - if (LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getPaginatedServiceDefs(): count=" + (ret == null ? 0 : ret.getListSize())); - } - return ret; - } - - @GET - @Path("/services") - @Produces({ "application/json", "application/xml" }) - public RangerServiceList getPaginatedServices(@Context HttpServletRequest request) { - if (LOG.isDebugEnabled()) { - LOG.debug("==> ServiceREST.getPaginatedServices()"); - } - - RangerServiceList ret = null; - - SearchFilter filter = searchUtil.getSearchFilter(request, svcService.sortFields); - - try { - ret = svcStore.getPaginatedServices(filter); - } catch (Exception excp) { - LOG.error("getServices() failed", excp); - - throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); - } - - if (LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getPaginatedServices(): count=" + (ret == null ? 0 : ret.getListSize())); - } - return ret; - } - - @GET - @Path("/policies") - @Produces({ "application/json", "application/xml" }) - public RangerPolicyList getPaginatedPolicies(@Context HttpServletRequest request) { - if (LOG.isDebugEnabled()) { - LOG.debug("==> ServiceREST.getPaginatedPolicies()"); - } - - RangerPolicyList ret = null; - - SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields); - - try { - ret = svcStore.getPaginatedPolicies(filter); - } catch (Exception excp) { - LOG.error("getPolicies() failed", excp); - - throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); - } - - if (LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getPaginatedPolicies(): count=" + (ret == null ? 0 : ret.getListSize())); - } - return ret; - } - - @GET - @Path("/policies/service/{id}") - @Produces({ "application/json", "application/xml" }) - public RangerPolicyList getPaginatedServicePolicies(@PathParam("id") Long serviceId, - @Context HttpServletRequest request) { - if (LOG.isDebugEnabled()) { - LOG.debug("==> ServiceREST.getServicePolicies(" + serviceId + ")"); - } - - RangerPolicyList ret = null; - - SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields); - - try { - ret = svcStore.getPaginatedServicePolicies(serviceId, filter); - } catch (Exception excp) { - LOG.error("getServicePolicies(" + serviceId + ") failed", excp); - - throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); - } - - if (ret == null) { - throw restErrorUtil.createRESTException(HttpServletResponse.SC_NOT_FOUND, "Not found", true); - } - - if (LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getServicePolicies(" + serviceId + "): count=" - + ret.getListSize()); - } - return ret; - } - - @GET - @Path("/policies/service/name/{name}") - @Produces({ "application/json", "application/xml" }) - public RangerPolicyList getPaginatedServicePolicies(@PathParam("name") String serviceName, - @Context HttpServletRequest request) { - if (LOG.isDebugEnabled()) { - LOG.debug("==> ServiceREST.getServicePolicies(" + serviceName + ")"); - } - - RangerPolicyList ret = null; - - SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields); - - try { - ret = svcStore.getPaginatedServicePolicies(serviceName, filter); - } catch (Exception excp) { - LOG.error("getServicePolicies(" + serviceName + ") failed", excp); - - throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); - } - - if (ret == null) { - throw restErrorUtil.createRESTException(HttpServletResponse.SC_NOT_FOUND, "Not found", true); - } - - if (LOG.isDebugEnabled()) { - LOG.debug("<== ServiceREST.getServicePolicies(" + serviceName + "): count=" - + ret.getListSize()); - } - - return ret; - } - - @GET @Path("/policies/eventTime") @Produces({ "application/json", "application/xml" }) public RangerPolicy getPolicyFromEventTime(@Context HttpServletRequest request) {
