RANGER-4630: added pagination support and searchFilters in tag REST APIs
Signed-off-by: Madhan Neethiraj <madhan@apache.org>
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
index ad304f8..4534b78 100755
--- a/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
@@ -37,6 +37,7 @@
public static final String IS_ENABLED = "isEnabled"; // search
public static final String IS_RECURSIVE = "isRecursive"; // search
public static final String TAG_SERVICE_NAME = "tagServiceName"; // search
+ public static final String TAG_SERVICE_NAME_PARTIAL = "tagServiceNamePartial"; // search
public static final String TAG_SERVICE_ID = "tagServiceId"; // search
public static final String GDS_SERVICE_NAME = "gdsServiceName"; // search
public static final String GDS_SERVICE_ID = "gdsServiceId"; // search
@@ -76,6 +77,9 @@
public static final String TAG_DEF_ID = "tagDefId"; // search
public static final String TAG_DEF_GUID = "tagDefGuid"; // search
public static final String TAG_TYPE = "tagType"; // search
+ public static final String TAG_TYPE_PARTIAL = "tagTypePartial"; // search
+ public static final String TAG_SOURCE = "tagSource"; // search
+ public static final String TAG_SOURCE_PARTIAL = "tagSourcePartial"; // search
public static final String TAG_ID = "tagId"; // search
public static final String TAG_GUID = "tagGuid"; // search
public static final String TAG_RESOURCE_ID = "resourceId"; // search
diff --git a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
index 59b5737..2936c3a 100755
--- a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
@@ -92,6 +92,17 @@
ret.setParam(SearchFilter.FETCH_TAG_POLICIES, request.getParameter(SearchFilter.FETCH_TAG_POLICIES));
ret.setParam(SearchFilter.SERVICE_NAME_PREFIX, request.getParameter(SearchFilter.SERVICE_NAME_PREFIX));
ret.setParam(SearchFilter.ZONE_NAME_PREFIX, request.getParameter(SearchFilter.ZONE_NAME_PREFIX));
+ ret.setParam(SearchFilter.TAG_TYPE, request.getParameter(SearchFilter.TAG_TYPE));
+ ret.setParam(SearchFilter.TAG_TYPE_PARTIAL, request.getParameter(SearchFilter.TAG_TYPE_PARTIAL));
+ ret.setParam(SearchFilter.TAG_SOURCE, request.getParameter(SearchFilter.TAG_SOURCE));
+ ret.setParam(SearchFilter.TAG_SOURCE_PARTIAL, request.getParameter(SearchFilter.TAG_SOURCE_PARTIAL));
+ ret.setParam(SearchFilter.TAG_SERVICE_NAME, request.getParameter(SearchFilter.TAG_SERVICE_NAME));
+ ret.setParam(SearchFilter.TAG_SERVICE_NAME_PARTIAL, request.getParameter(SearchFilter.TAG_SERVICE_NAME_PARTIAL));
+ ret.setParam(SearchFilter.TAG_RESOURCE_GUID, request.getParameter(SearchFilter.TAG_RESOURCE_GUID));
+ ret.setParam(SearchFilter.TAG_RESOURCE_SIGNATURE, request.getParameter(SearchFilter.TAG_RESOURCE_SIGNATURE));
+ ret.setParam(SearchFilter.TAG_DEF_GUID, request.getParameter(SearchFilter.TAG_DEF_GUID));
+ ret.setParam(SearchFilter.TAG_DEF_ID, request.getParameter(SearchFilter.TAG_DEF_ID));
+ ret.setParam(SearchFilter.TAG_ID, request.getParameter(SearchFilter.TAG_ID));
ret.setParam(SearchFilter.CREATED_BY, request.getParameter(SearchFilter.CREATED_BY));
ret.setParam(SearchFilter.APPROVER, request.getParameter(SearchFilter.APPROVER));
ret.setParam(SearchFilter.SHARE_STATUS, request.getParameter(SearchFilter.SHARE_STATUS));
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java
index 6d0019f..f05253f 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java
@@ -28,6 +28,7 @@
import org.apache.ranger.biz.TagDBStore;
import org.apache.ranger.common.MessageEnums;
import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.common.RangerSearchUtil;
import org.apache.ranger.db.RangerDaoManager;
import org.apache.ranger.entity.XXService;
import org.apache.ranger.entity.XXServiceDef;
@@ -38,12 +39,16 @@
import org.apache.ranger.plugin.model.RangerTagResourceMap;
import org.apache.ranger.plugin.model.RangerTagDef;
import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil;
+import org.apache.ranger.plugin.store.PList;
import org.apache.ranger.plugin.store.TagStore;
import org.apache.ranger.plugin.store.TagValidator;
import org.apache.ranger.plugin.util.RangerPerfTracer;
import org.apache.ranger.plugin.util.RangerRESTUtils;
import org.apache.ranger.plugin.util.SearchFilter;
import org.apache.ranger.plugin.util.ServiceTags;
+import org.apache.ranger.service.RangerServiceResourceService;
+import org.apache.ranger.service.RangerTagDefService;
+import org.apache.ranger.service.RangerTagService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -100,6 +105,18 @@
TagValidator validator;
+ @Autowired
+ RangerSearchUtil searchUtil;
+
+ @Autowired
+ RangerTagService tagService;
+
+ @Autowired
+ RangerTagDefService tagDefService;
+
+ @Autowired
+ RangerServiceResourceService rangerServiceResourceService;
+
public TagREST() {
}
@@ -347,6 +364,38 @@
}
@GET
+ @Path(TagRESTConstants.TAGDEFS_RESOURCE_PAGINATED)
+ @Produces({ "application/json" })
+ @PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
+ public PList<RangerTagDef> getTagDefs(@Context HttpServletRequest request) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagREST.getTagDefs()");
+ }
+
+ final PList<RangerTagDef> ret;
+
+ try {
+ SearchFilter filter = searchUtil.getSearchFilter(request, tagDefService.sortFields);
+
+ ret = tagStore.getPaginatedTagDefs(filter);
+ } catch (Exception excp) {
+ LOG.error("getTagDefs() 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("<== TagREST.getTagDefs(): count=" + ((ret == null || ret.getList() == null) ? 0 : ret.getList().size()));
+ }
+
+ return ret;
+ }
+
+ @GET
@Path(TagRESTConstants.TAGTYPES_RESOURCE)
@Produces({ "application/json" })
@PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
@@ -606,6 +655,40 @@
return ret;
}
+ @GET
+ @Path(TagRESTConstants.TAGS_RESOURCE_PAGINATED)
+ @Produces({ "application/json" })
+ @PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
+ public PList<RangerTag> getTags(@Context HttpServletRequest request) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagREST.getTags()");
+ }
+
+ final PList<RangerTag> ret;
+
+ try {
+ SearchFilter filter = searchUtil.getSearchFilter(request, tagService.sortFields);
+
+ ret = tagStore.getPaginatedTags(filter);
+ } catch (Exception excp) {
+ LOG.error("getTags() failed", excp);
+
+ throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true);
+ }
+
+ if (CollectionUtils.isEmpty(ret.getList())) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("getTags() - No tags found");
+ }
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagREST.getTags(): count=" + ((ret == null || ret.getList() == null) ? 0 : ret.getList().size()));
+ }
+
+ return ret;
+ }
+
/**
* Resets/ removes tag policy cache for given service.
* @param serviceName non-empty service-name
@@ -948,6 +1031,34 @@
return ret;
}
+ @GET
+ @Path(TagRESTConstants.RESOURCES_RESOURCE_PAGINATED)
+ @Produces({ "application/json" })
+ @PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
+ public PList<RangerServiceResource> getServiceResources(@Context HttpServletRequest request) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagREST.getServiceResources()");
+ }
+
+ final PList<RangerServiceResource> ret;
+
+ try {
+ SearchFilter filter = searchUtil.getSearchFilter(request, rangerServiceResourceService.sortFields);
+
+ ret = tagStore.getPaginatedServiceResources(filter);
+ } catch (Exception excp) {
+ LOG.error("getServiceResources() failed", excp);
+
+ throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true);
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagREST.getServiceResources(): count=" + ((ret == null || ret.getList() == null) ? 0 : ret.getList().size()));
+ }
+
+ return ret;
+ }
+
@POST
@Path(TagRESTConstants.TAGRESOURCEMAPS_RESOURCE)
@Consumes({ "application/json" })
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/TagRESTConstants.java b/security-admin/src/main/java/org/apache/ranger/rest/TagRESTConstants.java
index 9e78cf0..a6e49e7 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/TagRESTConstants.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/TagRESTConstants.java
@@ -23,10 +23,13 @@
public static final String TAGDEF_NAME_AND_VERSION = "tags";
static final String TAGDEFS_RESOURCE = "/tagdefs/";
+ static final String TAGDEFS_RESOURCE_PAGINATED = "/tagdefs/paginated";
static final String TAGDEF_RESOURCE = "/tagdef/";
static final String TAGS_RESOURCE = "/tags/";
+ static final String TAGS_RESOURCE_PAGINATED = "/tags/paginated";
static final String TAG_RESOURCE = "/tag/";
static final String RESOURCES_RESOURCE = "/resources/";
+ static final String RESOURCES_RESOURCE_PAGINATED = "/resources/paginated";
static final String RESOURCE_RESOURCE = "/resource/";
static final String TAGRESOURCEMAPS_RESOURCE = "/tagresourcemaps/";
static final String IMPORT_SERVICETAGS_RESOURCE = "/importservicetags/";
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java
index 3a4ccf8..989ea22 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java
@@ -32,6 +32,7 @@
import org.apache.ranger.authorization.utils.JsonUtils;
import org.apache.ranger.biz.RangerTagDBRetriever;
import org.apache.ranger.common.SearchField;
+import org.apache.ranger.common.SortField;
import org.apache.ranger.common.SearchField.DATA_TYPE;
import org.apache.ranger.common.SearchField.SEARCH_TYPE;
import org.apache.ranger.entity.XXServiceResource;
@@ -56,7 +57,15 @@
public RangerServiceResourceService() {
searchFields.add(new SearchField(SearchFilter.TAG_RESOURCE_ID, "obj.id", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL));
searchFields.add(new SearchField(SearchFilter.TAG_SERVICE_ID, "obj.serviceId", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL));
+ searchFields.add(new SearchField(SearchFilter.TAG_SERVICE_NAME, "service.name", DATA_TYPE.STRING, SEARCH_TYPE.FULL, "XXService service", "obj.serviceId = service.id"));
+ searchFields.add(new SearchField(SearchFilter.TAG_SERVICE_NAME_PARTIAL, "service.name", DATA_TYPE.STRING, SEARCH_TYPE.PARTIAL, "XXService service", "obj.serviceId = service.id"));
+ searchFields.add(new SearchField(SearchFilter.TAG_RESOURCE_GUID, "obj.guid", DATA_TYPE.STRING, SEARCH_TYPE.FULL));
searchFields.add(new SearchField(SearchFilter.TAG_RESOURCE_SIGNATURE, "obj.resourceSignature", DATA_TYPE.STRING, SEARCH_TYPE.FULL));
+
+ sortFields.add(new SortField(SearchFilter.TAG_RESOURCE_ID, "obj.id", true, SortField.SORT_ORDER.ASC));
+ sortFields.add(new SortField(SearchFilter.TAG_SERVICE_ID, "obj.serviceId"));
+ sortFields.add(new SortField(SearchFilter.CREATE_TIME, "obj.createTime"));
+ sortFields.add(new SortField(SearchFilter.UPDATE_TIME, "obj.updateTime"));
}
@Override
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java
index 329d3ee..69b6438 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java
@@ -110,6 +110,12 @@
resourceList.add(taggedRes);
}
retList.setList(resourceList);
+ retList.setResultSize(resourceList.size());
+ retList.setPageSize(searchFilter.getMaxRows());
+ retList.setStartIndex(searchFilter.getStartIndex());
+ retList.setSortType(searchFilter.getSortType());
+ retList.setSortBy(searchFilter.getSortBy());
+
return retList;
}
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java
index 8f67799..c779b77 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java
@@ -26,6 +26,7 @@
import org.apache.ranger.authorization.utils.JsonUtils;
import org.apache.ranger.biz.RangerTagDBRetriever;
import org.apache.ranger.common.SearchField;
+import org.apache.ranger.common.SortField;
import org.apache.ranger.common.SearchField.DATA_TYPE;
import org.apache.ranger.common.SearchField.SEARCH_TYPE;
import org.apache.ranger.entity.XXTagDef;
@@ -40,6 +41,14 @@
searchFields.add(new SearchField(SearchFilter.TAG_DEF_ID, "obj.id", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL));
searchFields.add(new SearchField(SearchFilter.TAG_DEF_GUID, "obj.guid", DATA_TYPE.STRING, SEARCH_TYPE.FULL));
searchFields.add(new SearchField(SearchFilter.TAG_TYPE, "obj.name", DATA_TYPE.STRING, SEARCH_TYPE.FULL));
+ searchFields.add(new SearchField(SearchFilter.TAG_TYPE_PARTIAL, "obj.name", DATA_TYPE.STRING, SEARCH_TYPE.PARTIAL));
+ searchFields.add(new SearchField(SearchFilter.TAG_SOURCE, "obj.source", DATA_TYPE.STRING, SEARCH_TYPE.FULL));
+ searchFields.add(new SearchField(SearchFilter.TAG_SOURCE_PARTIAL, "obj.source", DATA_TYPE.STRING, SEARCH_TYPE.PARTIAL));
+
+ sortFields.add(new SortField(SearchFilter.TAG_DEF_ID, "obj.id", true, SortField.SORT_ORDER.ASC));
+ sortFields.add(new SortField(SearchFilter.TAG_TYPE, "obj.name"));
+ sortFields.add(new SortField(SearchFilter.CREATE_TIME, "obj.createTime"));
+ sortFields.add(new SortField(SearchFilter.UPDATE_TIME, "obj.updateTime"));
}
@Override
@@ -117,5 +126,5 @@
public List<RangerTagDef.RangerTagAttributeDef> getAttributeDefForTagDef(XXTagDef xtagDef) {
return new ArrayList<>();
}
-
+
}
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefServiceBase.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefServiceBase.java
index 929a4b0..4720476 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefServiceBase.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefServiceBase.java
@@ -127,6 +127,11 @@
}
retList.setList(tagDefList);
+ retList.setResultSize(tagDefList.size());
+ retList.setPageSize(searchFilter.getMaxRows());
+ retList.setStartIndex(searchFilter.getStartIndex());
+ retList.setSortType(searchFilter.getSortType());
+ retList.setSortBy(searchFilter.getSortBy());
return retList;
}
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java
index 3a90bd8..055525f 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java
@@ -31,6 +31,7 @@
import org.apache.ranger.authorization.utils.JsonUtils;
import org.apache.ranger.biz.RangerTagDBRetriever;
import org.apache.ranger.common.SearchField;
+import org.apache.ranger.common.SortField;
import org.apache.ranger.common.SearchField.DATA_TYPE;
import org.apache.ranger.common.SearchField.SEARCH_TYPE;
import org.apache.ranger.entity.XXServiceResource;
@@ -49,6 +50,12 @@
searchFields.add(new SearchField(SearchFilter.TAG_ID, "obj.id", SearchField.DATA_TYPE.INTEGER, SearchField.SEARCH_TYPE.FULL));
searchFields.add(new SearchField(SearchFilter.TAG_DEF_ID, "obj.type", SearchField.DATA_TYPE.INTEGER, SearchField.SEARCH_TYPE.FULL));
searchFields.add(new SearchField(SearchFilter.TAG_TYPE, "tagDef.name", DATA_TYPE.STRING, SEARCH_TYPE.FULL, "XXTagDef tagDef", "obj.type = tagDef.id"));
+ searchFields.add(new SearchField(SearchFilter.TAG_TYPE_PARTIAL, "tagDef.name", DATA_TYPE.STRING, SEARCH_TYPE.PARTIAL, "XXTagDef tagDef", "obj.type = tagDef.id"));
+
+ sortFields.add(new SortField(SearchFilter.TAG_ID, "obj.id", true, SortField.SORT_ORDER.ASC));
+ sortFields.add(new SortField(SearchFilter.TAG_DEF_ID, "obj.type"));
+ sortFields.add(new SortField(SearchFilter.CREATE_TIME, "obj.createTime"));
+ sortFields.add(new SortField(SearchFilter.UPDATE_TIME, "obj.updateTime"));
}
@Override
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagServiceBase.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagServiceBase.java
index 2e2c04f..1d35564 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagServiceBase.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagServiceBase.java
@@ -142,7 +142,11 @@
}
retList.setList(tagList);
-
+ retList.setResultSize(tagList.size());
+ retList.setPageSize(searchFilter.getMaxRows());
+ retList.setStartIndex(searchFilter.getStartIndex());
+ retList.setSortType(searchFilter.getSortType());
+ retList.setSortBy(searchFilter.getSortBy());
return retList;
}
}
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestTagREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestTagREST.java
index 570ce87..98d87bc 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestTagREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestTagREST.java
@@ -16,9 +16,12 @@
*/
package org.apache.ranger.rest;
+import static org.mockito.ArgumentMatchers.eq;
+
import java.util.ArrayList;
import java.util.List;
+import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.WebApplicationException;
import org.apache.ranger.biz.AssetMgr;
@@ -26,6 +29,7 @@
import org.apache.ranger.biz.ServiceDBStore;
import org.apache.ranger.biz.TagDBStore;
import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.common.RangerSearchUtil;
import org.apache.ranger.db.RangerDaoManager;
import org.apache.ranger.db.XXServiceDao;
import org.apache.ranger.db.XXServiceDefDao;
@@ -36,10 +40,14 @@
import org.apache.ranger.plugin.model.RangerTag;
import org.apache.ranger.plugin.model.RangerTagDef;
import org.apache.ranger.plugin.model.RangerTagResourceMap;
+import org.apache.ranger.plugin.store.PList;
import org.apache.ranger.plugin.store.TagValidator;
import org.apache.ranger.plugin.util.RangerPluginCapability;
import org.apache.ranger.plugin.util.SearchFilter;
import org.apache.ranger.plugin.util.ServiceTags;
+import org.apache.ranger.service.RangerServiceResourceService;
+import org.apache.ranger.service.RangerTagDefService;
+import org.apache.ranger.service.RangerTagService;
import org.junit.Assert;
import org.junit.FixMethodOrder;
import org.junit.Rule;
@@ -90,6 +98,18 @@
@Mock
AssetMgr assetMgr;
+ @Mock
+ RangerSearchUtil searchUtil;
+
+ @Mock
+ RangerTagDefService tagDefService;
+
+ @Mock
+ RangerTagService tagService;
+
+ @Mock
+ RangerServiceResourceService resourceService;
+
@Rule
public ExpectedException thrown = ExpectedException.none();
@@ -420,7 +440,39 @@
} catch (Exception e) {
}
}
-
+
+ @Test
+ public void test62getTagDefs() {
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+ PList<RangerTagDef> ret = new PList<RangerTagDef>();
+ List<RangerTagDef> tagDefList = new ArrayList<RangerTagDef>();
+ SearchFilter searchFilter = new SearchFilter();
+ RangerTagDef rangerTagDef = new RangerTagDef();
+
+ rangerTagDef.setId(id);
+ rangerTagDef.setVersion(5L);
+ tagDefList.add(rangerTagDef);
+ ret.setList(tagDefList);
+
+ Mockito.when(searchUtil.getSearchFilter(Mockito.any(HttpServletRequest.class), eq(tagDefService.sortFields)))
+ .thenReturn(searchFilter);
+
+ try {
+ Mockito.when(tagStore.getPaginatedTagDefs((SearchFilter) Mockito.any())).thenReturn(ret);
+ } catch (Exception e) {
+ }
+ PList<RangerTagDef> result = tagREST.getTagDefs(request);
+
+ Assert.assertNotNull(result);
+ Assert.assertEquals(result.getList().get(0).getId(), tagDefList.get(0).getId());
+ Assert.assertEquals(result.getList().get(0).getVersion(), tagDefList.get(0).getVersion());
+
+ try {
+ Mockito.verify(tagStore).getPaginatedTagDefs((SearchFilter) Mockito.any());
+ } catch (Exception e) {
+ }
+ }
+
@Test
public void test15getAllTagDefs() {
try {
@@ -743,6 +795,38 @@
}
@Test
+ public void test63getTags() {
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+ SearchFilter searchFilter = new SearchFilter();
+ String testTagType = "TAG-TYPE";
+ PList<RangerTag> ret = new PList<RangerTag>();
+ List<RangerTag> tagList = new ArrayList<RangerTag>();
+ RangerTag tag = new RangerTag();
+
+ tag.setType(testTagType);
+ tagList.add(tag);
+ ret.setList(tagList);
+
+ Mockito.when(searchUtil.getSearchFilter(Mockito.any(HttpServletRequest.class), eq(tagService.sortFields)))
+ .thenReturn(searchFilter);
+
+ try {
+ Mockito.when(tagStore.getPaginatedTags(searchFilter)).thenReturn(ret);
+ } catch (Exception e) {
+ }
+
+ PList<RangerTag> result = tagREST.getTags(request);
+
+ Assert.assertNotNull(result);
+ Assert.assertEquals(result.getList().get(0).getType(), tagList.get(0).getType());
+
+ try {
+ Mockito.verify(tagStore).getPaginatedTags((SearchFilter) Mockito.any());
+ } catch (Exception e) {
+ }
+ }
+
+ @Test
public void test27createServiceResource() {
RangerServiceResource oldRSR = null;
RangerServiceResource newRSR = new RangerServiceResource();
@@ -1048,7 +1132,40 @@
} catch (Exception e) {
}
}
-
+
+ @Test
+ public void test64getServiceResources() {
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+ SearchFilter searchFilter = new SearchFilter();
+ PList<RangerServiceResource> ret = new PList<RangerServiceResource>();
+ List<RangerServiceResource> serviceResourceList = new ArrayList<RangerServiceResource>();
+ RangerServiceResource rangerServiceResource = new RangerServiceResource();
+
+ rangerServiceResource.setId(id);
+ rangerServiceResource.setServiceName(serviceName);
+ serviceResourceList.add(rangerServiceResource);
+ ret.setList(serviceResourceList);
+
+ Mockito.when(searchUtil.getSearchFilter(Mockito.any(HttpServletRequest.class), eq(resourceService.sortFields)))
+ .thenReturn(searchFilter);
+
+ try {
+ Mockito.when(tagStore.getPaginatedServiceResources((SearchFilter) Mockito.any())).thenReturn(ret);
+ } catch (Exception e) {
+ }
+
+ PList<RangerServiceResource> result = tagREST.getServiceResources(request);
+
+ Assert.assertNotNull(result.getList().get(0).getId());
+ Assert.assertEquals(result.getList().get(0).getId(), serviceResourceList.get(0).getId());
+ Assert.assertEquals(result.getList().get(0).getServiceName(), serviceResourceList.get(0).getServiceName());
+
+ try {
+ Mockito.verify(tagStore).getPaginatedServiceResources((SearchFilter) Mockito.any());
+ } catch (Exception e) {
+ }
+ }
+
@Test
public void test38createTagResourceMap() {
RangerTagResourceMap oldTagResourceMap = null;