RANGER-4636: RANGER-4637: Fix /public/api/policy/count and /public/api/repository/count to return the proper value
Signed-off-by: Madhan Neethiraj <madhan@apache.org>
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java
index a6b86e9..b7735e7 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java
@@ -78,6 +78,9 @@
@Autowired
RESTErrorUtil restErrorUtil;
+
+ @Autowired
+ AssetREST assetREST;
@GET
@Path("/api/repository/{id}")
@@ -217,16 +220,13 @@
logger.debug("==> PublicAPIs.countRepositories()");
}
- VXRepositoryList repositories = searchRepositories(request);
+ VXLong ret = assetREST.countXAssets(request);
- VXLong ret = new VXLong();
- ret.setValue(repositories == null ? 0 : repositories.getResultSize());
-
- if(logger.isDebugEnabled()) {
+ if(logger.isDebugEnabled()) {
logger.debug("<== PublicAPIs.countRepositories(): count=" + ret);
}
- return ret;
+ return ret;
}
@@ -392,16 +392,13 @@
logger.debug("==> PublicAPIs.countPolicies(): ");
}
- VXPolicyList policies = searchPolicies(request);
-
- VXLong vXlong = new VXLong();
- vXlong.setValue(policies == null ? 0 : policies.getResultSize());
+ VXLong ret = assetREST.countXResources(request);
if(logger.isDebugEnabled()) {
- logger.debug("<== PublicAPIs.countPolicies(): " + request );
+ logger.debug("<== PublicAPIs.countPolicies(): " + ret);
}
- return vXlong;
+ return ret;
}
}
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
index 180742b..23fbb84 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
@@ -416,7 +416,7 @@
List<RangerService> services = Arrays.asList(rangerService1, rangerService2);
SearchFilter searchFilter = new SearchFilter();
- Mockito.when(searchUtil.getSearchFilterFromLegacyRequestForRepositorySearch(request, null))
+ Mockito.when(searchUtil.getSearchFilterFromLegacyRequest(request, null))
.thenReturn(searchFilter);
Mockito.when(serviceREST.getServices(searchFilter)).thenReturn(services);
Mockito.when(serviceUtil.toVXAsset(rangerService1)).thenReturn(vXAsset1);
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java b/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java
index eb0cb64..aa7e9b8 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java
@@ -99,6 +99,9 @@
@Mock
RangerPolicyService policyService;
+
+ @Mock
+ AssetREST assetREST;
@Rule
public ExpectedException thrown = ExpectedException.none();
@@ -351,26 +354,16 @@
@Test
public void test6countRepositories() throws Exception {
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
- VXLong vXLong = new VXLong();
- List<RangerService> ret = new ArrayList<RangerService>();
- RangerService rangerService = rangerService();
- VXRepository vXRepository = vXRepository(rangerService);
- List<VXRepository> repoList = new ArrayList<VXRepository>();
- repoList.add(vXRepository);
- VXRepositoryList vXRepositoryList = new VXRepositoryList(repoList);
- SearchFilter filter = new SearchFilter();
- filter.setParam(SearchFilter.POLICY_NAME, "policyName");
- filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
- Mockito.when(searchUtil.getSearchFilterFromLegacyRequestForRepositorySearch(request, xAssetService.sortFields)).thenReturn(filter);
- Mockito.when(serviceREST.getServices(filter)).thenReturn(ret);
- Mockito.when(serviceUtil.rangerServiceListToPublicObjectList(ret)).thenReturn(vXRepositoryList);
- VXRepositoryList dbVXRepositoryList = publicAPIs.searchRepositories(request);
- vXLong.setValue(dbVXRepositoryList.getResultSize());
- Assert.assertNotNull(vXLong);
- Assert.assertEquals(vXLong.getValue(), 1);
- Mockito.verify(searchUtil).getSearchFilterFromLegacyRequestForRepositorySearch(request, xAssetService.sortFields);
- Mockito.verify(serviceREST).getServices(filter);
- Mockito.verify(serviceUtil).rangerServiceListToPublicObjectList(ret);
+
+ VXLong resultExpected = new VXLong();
+ resultExpected.setValue(4l);
+
+ Mockito.when(assetREST.countXAssets(request)).thenReturn(resultExpected);
+
+ VXLong resultActual = publicAPIs.countRepositories(request);
+
+ Assert.assertEquals(resultExpected.getValue(), resultActual.getValue());
+ Mockito.verify(assetREST).countXAssets(request);
}
@Test
@@ -481,32 +474,17 @@
@Test
public void test12countPolicies() throws Exception {
- VXLong vXLong = new VXLong();
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
- RangerService service = rangerService();
- RangerPolicy policy = rangerPolicy();
- List<RangerPolicy> policyList = new ArrayList<RangerPolicy>();
- policyList.add(policy);
- VXPolicy vXPolicy = vXPolicy(policy, service);
- List<VXPolicy> vXPolicies = new ArrayList<VXPolicy>();
- vXPolicies.add(vXPolicy);
- VXPolicyList vXPolicyList = new VXPolicyList(vXPolicies);
- SearchFilter filter = new SearchFilter();
- filter.setParam(SearchFilter.POLICY_NAME, "policyName");
- filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
- filter.setStartIndex(0);
- filter.setMaxRows(10);
- Mockito.when(searchUtil.getSearchFilterFromLegacyRequest(request, policyService.sortFields)).thenReturn(filter);
- Mockito.when(serviceREST.getPolicies(filter)).thenReturn(policyList);
- Mockito.when(serviceUtil.rangerPolicyListToPublic(policyList,filter)).thenReturn(vXPolicyList);
- VXPolicyList dbVXPolicyList = publicAPIs.searchPolicies(request);
- vXLong.setValue(dbVXPolicyList.getResultSize());
- Assert.assertNotNull(vXLong);
- Assert.assertEquals(vXLong.getValue(), 1);
- Mockito.verify(searchUtil).getSearchFilterFromLegacyRequest(request, policyService.sortFields);
- Mockito.verify(serviceREST).getPolicies(filter);
- Mockito.verify(serviceUtil).rangerPolicyListToPublic(policyList,filter);
-
+
+ VXLong resultExpected = new VXLong();
+ resultExpected.setValue(6l);
+
+ Mockito.when(assetREST.countXResources(request)).thenReturn(resultExpected);
+
+ VXLong resultActual = publicAPIs.countPolicies(request);
+
+ Assert.assertEquals(resultExpected.getValue(), resultActual.getValue());
+ Mockito.verify(assetREST).countXResources(request);
}
}
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java
index 2864cd3..5cf21d5 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java
@@ -198,22 +198,23 @@
public void Test8countXAccessAudits() {
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
searchCriteria.addParam("name", name);
- VXLong vxLongExp = new VXLong();
- vxLongExp.setValue(id);
+ VXAccessAuditList vxAuditList = new VXAccessAuditList();
+ vxAuditList.setTotalCount(id);
Mockito.when(searchUtil.extractCommonCriterias((HttpServletRequest) Mockito.any(),
(List<SortField>) Mockito.any())).thenReturn(searchCriteria);
- Mockito.when(xAuditMgr.getXAccessAuditSearchCount(searchCriteria)).thenReturn(vxLongExp);
+ Mockito.when(auditREST.searchXAccessAudits(request)).thenReturn(vxAuditList);
+
+ VXLong vXLongExpect = new VXLong();
+ vXLongExpect.setValue(vxAuditList.getTotalCount());
VXLong vxLongAct = auditREST.countXAccessAudits(request);
Assert.assertNotNull(vxLongAct);
- Assert.assertEquals(vxLongExp, vxLongAct);
- Assert.assertEquals(vxLongExp.getValue(), vxLongAct.getValue());
+ Assert.assertEquals(vXLongExpect.getValue(), vxLongAct.getValue());
- Mockito.verify(searchUtil).extractCommonCriterias((HttpServletRequest) Mockito.any(),
+ Mockito.verify(searchUtil, Mockito.times(2)).extractCommonCriterias((HttpServletRequest) Mockito.any(),
(List<SortField>) Mockito.any());
- Mockito.verify(xAuditMgr).getXAccessAuditSearchCount(searchCriteria);
}
}