You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/08/28 23:56:03 UTC
[4/4] incubator-ranger git commit: RANGER-595: updated tag-store
implementation; replaced externalId references with guid;
service.tagVersion incremented on changes to tagging for the service-resources
RANGER-595: updated tag-store implementation; replaced externalId references with guid; service.tagVersion incremented on changes to tagging for the service-resources
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/303f7b70
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/303f7b70
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/303f7b70
Branch: refs/heads/tag-policy
Commit: 303f7b7023f2e20464186babf97c461ea598062c
Parents: 83cb21e
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Fri Aug 28 02:48:17 2015 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Fri Aug 28 14:54:02 2015 -0700
----------------------------------------------------------------------
.../admin/client/RangerAdminRESTClient.java | 2 +-
.../plugin/model/RangerServiceResource.java | 10 +-
.../apache/ranger/plugin/model/RangerTag.java | 7 +-
.../ranger/plugin/model/RangerTagDef.java | 1 +
.../ranger/plugin/store/AbstractTagStore.java | 324 +-----
.../ranger/plugin/store/TagPredicateUtil.java | 91 +-
.../apache/ranger/plugin/store/TagStore.java | 48 +-
.../ranger/plugin/store/TagValidator.java | 124 +--
.../ranger/plugin/store/file/TagFileStore.java | 866 ++++++++++++---
.../apache/ranger/plugin/util/SearchFilter.java | 28 +-
.../apache/ranger/plugin/util/ServiceTags.java | 14 +-
.../ranger/plugin/store/TestTagStore.java | 24 +-
.../016-updated-schema-for-tag-based-policy.sql | 93 +-
.../java/org/apache/ranger/biz/TagDBStore.java | 1011 +++++++++++-------
.../org/apache/ranger/common/AppConstants.java | 12 +-
.../apache/ranger/db/RangerDaoManagerBase.java | 38 +-
.../apache/ranger/db/XXServiceResourceDao.java | 85 ++
.../ranger/db/XXServiceResourceElementDao.java | 49 +
.../db/XXServiceResourceElementValueDao.java | 61 ++
.../java/org/apache/ranger/db/XXTagDao.java | 70 +-
.../java/org/apache/ranger/db/XXTagDefDao.java | 45 +
.../apache/ranger/db/XXTagResourceMapDao.java | 102 +-
.../apache/ranger/db/XXTaggedResourceDao.java | 49 -
.../ranger/db/XXTaggedResourceValueDao.java | 49 -
.../ranger/db/XXTaggedResourceValueMapDao.java | 62 --
.../org/apache/ranger/entity/XXServiceBase.java | 74 ++
.../apache/ranger/entity/XXServiceResource.java | 245 +++++
.../ranger/entity/XXServiceResourceElement.java | 245 +++++
.../entity/XXServiceResourceElementValue.java | 220 ++++
.../java/org/apache/ranger/entity/XXTag.java | 86 --
.../apache/ranger/entity/XXTagResourceMap.java | 28 +-
.../apache/ranger/entity/XXTaggedResource.java | 245 -----
.../ranger/entity/XXTaggedResourceValue.java | 245 -----
.../ranger/entity/XXTaggedResourceValueMap.java | 220 ----
.../java/org/apache/ranger/rest/TagREST.java | 174 ++-
.../apache/ranger/rest/TagRESTConstants.java | 31 +-
.../ranger/service/RangerServiceDefService.java | 9 -
.../service/RangerServiceResourceService.java | 96 ++
.../RangerServiceResourceServiceBase.java | 112 ++
.../ranger/service/RangerTagDefService.java | 60 ++
.../service/RangerTagResourceMapService.java | 190 ++++
.../RangerTagResourceMapServiceBase.java | 75 ++
.../apache/ranger/service/RangerTagService.java | 82 +-
.../ranger/service/RangerTagServiceBase.java | 33 +-
.../service/RangerTaggedResourceService.java | 51 -
.../RangerTaggedResourceServiceBase.java | 112 --
.../resources/META-INF/jpa_named_queries.xml | 122 ++-
47 files changed, 3611 insertions(+), 2409 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java b/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java
index 3f0c5dd..5ec7996 100644
--- a/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java
+++ b/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java
@@ -222,7 +222,7 @@ public class RangerAdminRESTClient implements RangerAdminClient {
}
if(LOG.isDebugEnabled()) {
- LOG.debug("<==> RangerAdminRESTClient.getTaggedResources(" + lastKnownVersion + "): ");
+ LOG.debug("<== RangerAdminRESTClient.getServiceTagsIfUpdated(" + lastKnownVersion + "): ");
}
return ret;
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java
index 3728f6d..c9e07eb 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java
@@ -43,15 +43,15 @@ public class RangerServiceResource extends RangerBaseModelObject {
private String resourceSignature = null;
- public RangerServiceResource(String externalId, String serviceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec, String resourceSignature) {
+ public RangerServiceResource(String guid, String serviceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec, String resourceSignature) {
super();
- setGuid(externalId);
+ setGuid(guid);
setServiceName(serviceName);
setResourceSpec(resourceSpec);
setResourceSignature(resourceSignature);
}
- public RangerServiceResource(String externalId, String serviceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) {
- this(externalId, serviceName, resourceSpec, null);
+ public RangerServiceResource(String guid, String serviceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) {
+ this(guid, serviceName, resourceSpec, null);
}
public RangerServiceResource(String serviceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) {
this(null, serviceName, resourceSpec, null);
@@ -94,7 +94,7 @@ public class RangerServiceResource extends RangerBaseModelObject {
sb.append("{ ");
- sb.append("externalId={").append(getGuid()).append("} ");
+ sb.append("guid={").append(getGuid()).append("} ");
sb.append("serviceName={").append(serviceName).append("} ");
sb.append("resourceSpec={");
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTag.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTag.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTag.java
index 25dc24d..6e4685a 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTag.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTag.java
@@ -38,11 +38,12 @@ import java.util.Map;
public class RangerTag extends RangerBaseModelObject {
private static final long serialVersionUID = 1L;
- private String name;
+ private String name;
private Map<String, String> attributeValues;
public RangerTag(String guid, String name, Map<String, String> attributeValues) {
super();
+
setGuid(guid);
setName(name);
setAttributeValues(attributeValues);
@@ -82,10 +83,10 @@ public class RangerTag extends RangerBaseModelObject {
}
public StringBuilder toString(StringBuilder sb) {
+ sb.append("RangerTag={");
- sb.append("{ ");
+ super.toString(sb);
- sb.append("guid={").append(getGuid()).append("} ");
sb.append("name={").append(name).append("} ");
sb.append("attributeValues={");
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java
index 0f58c96..bd9bbfa 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java
@@ -102,6 +102,7 @@ public class RangerTagDef extends RangerBaseModelObject {
@XmlAccessorType(XmlAccessType.FIELD)
public static class RangerTagAttributeDef implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
private String name = null;
private String type = null;
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
index 43d25a7..ed1b64d 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
@@ -19,14 +19,9 @@
package org.apache.ranger.plugin.store;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ranger.plugin.model.*;
-import org.apache.ranger.plugin.util.SearchFilter;
-import org.apache.ranger.plugin.util.ServiceTags;
import java.util.*;
@@ -48,9 +43,11 @@ public abstract class AbstractTagStore implements TagStore {
protected void preCreate(RangerBaseModelObject obj) throws Exception {
obj.setId(0L);
+
if(obj.getGuid() == null) {
obj.setGuid(UUID.randomUUID().toString());
}
+
obj.setCreateTime(new Date());
obj.setUpdateTime(obj.getCreateTime());
obj.setVersion(1L);
@@ -88,7 +85,6 @@ public abstract class AbstractTagStore implements TagStore {
}
protected void preDelete(RangerBaseModelObject obj) throws Exception {
- // TODO:
}
protected void postDelete(RangerBaseModelObject obj) throws Exception {
@@ -106,322 +102,6 @@ public abstract class AbstractTagStore implements TagStore {
}
return ret;
}
-
- @Override
- public PList<RangerTagDef> getPaginatedTagDefs(SearchFilter filter) throws Exception {
- List<RangerTagDef> list = getTagDefs(filter);
-
- return new PList<RangerTagDef>(list, 0, list.size(),
- (long)list.size(), list.size(), filter.getSortType(), filter.getSortBy());
- }
-
- @Override
- public PList<RangerTagResourceMap> getPaginatedTagResourceMaps(SearchFilter filter) throws Exception {
- List<RangerTagResourceMap> list = getTagResourceMaps(filter);
-
- return new PList<RangerTagResourceMap>(list, 0, list.size(),
- (long)list.size(), list.size(), filter.getSortType(), filter.getSortBy());
- }
-
-
- @Override
- public List<RangerTagDef> getTagDefsByExternalId(String externalId) throws Exception {
-
- List<RangerTagDef> ret;
-
- if (StringUtils.isNotBlank(externalId)) {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_DEF_EXTERNAL_ID, externalId);
-
- ret = getTagDefs(filter);
-
- } else {
- ret = null;
- }
-
- return ret;
- }
-
- @Override
- public RangerTag getTagById(Long id) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> AbstractTagStore.getTagById(" + id + ")");
- }
-
- RangerTag ret = null;
-
- if (id != null) {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_ID, id.toString());
-
- List<RangerTag> tags = getTags(filter);
-
- if (CollectionUtils.isNotEmpty(tags) && CollectionUtils.size(tags) == 1) {
- ret = tags.get(0);
- }
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== AbstractTagStore.getTagDefById(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTag> getTagsByName(String name) throws Exception {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_NAME, name);
-
- return getTags(filter);
- }
-
- @Override
- public List<RangerTag> getTagsByExternalId(String externalId) throws Exception {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_EXTERNAL_ID, externalId);
-
- return getTags(filter);
- }
-
-
- @Override
- public RangerServiceResource getServiceResourceById(Long id) throws Exception {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_ID, id.toString());
-
- List<RangerServiceResource> resources = getServiceResources(filter);
- if (CollectionUtils.isEmpty(resources) || resources.size() > 1) {
- throw new Exception("Not exactly one resource found with id=" + id);
- }
-
- return resources.get(0);
- }
-
- @Override
- public List<RangerServiceResource> getServiceResourcesByExternalId(String externalId) throws Exception {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_EXTERNAL_ID, externalId);
-
- return getServiceResources(filter);
- }
-
- @Override
- public List<RangerServiceResource> getServiceResourcesByServiceAndResourceSpec(String serviceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) throws Exception {
- List<RangerServiceResource> ret = null;
-
- RangerService service;
- try {
- service = svcStore.getServiceByName(serviceName);
- } catch (Exception excp) {
- LOG.error("AbstractTagStore.getTaggedResource - failed to get service " + serviceName);
- throw new Exception("Invalid service: " + serviceName);
- }
-
- if (MapUtils.isNotEmpty(resourceSpec)) {
-
- RangerServiceResource resource = new RangerServiceResource(serviceName, resourceSpec);
- ret = getServiceResources(resource);
- }
-
- return ret;
- }
-
- private List<RangerServiceResource> getServiceResources(RangerServiceResource resource) throws Exception {
-
- List<RangerServiceResource> ret = null;
-
- RangerServiceResourceSignature serializer = new RangerServiceResourceSignature(resource);
- String signature = serializer.getSignature();
-
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_SIGNATURE, signature);
-
- ret = getServiceResources(filter);
-
- return ret;
- }
-
- @Override
- public List<RangerTagResourceMap> getTagResourceMap(String externalResourceId, String externalTagId) throws Exception {
- List<RangerTagResourceMap> ret = null;
-
- SearchFilter serviceResourceFilter = new SearchFilter();
- SearchFilter tagFilter = new SearchFilter();
-
- serviceResourceFilter.setParam(SearchFilter.TAG_RESOURCE_EXTERNAL_ID, externalResourceId);
- List<RangerServiceResource> serviceResources = getServiceResources(serviceResourceFilter);
-
- tagFilter.setParam(SearchFilter.TAG_EXTERNAL_ID, externalTagId);
- List<RangerTag> tags = getTags(tagFilter);
-
- if (CollectionUtils.isNotEmpty(serviceResources) && CollectionUtils.isNotEmpty(tags)) {
-
- for (RangerServiceResource serviceResource : serviceResources) {
-
- Long resourceId = serviceResource.getId();
-
- for (RangerTag tag : tags) {
-
- Long tagId = tag.getId();
-
- SearchFilter mapFilter = new SearchFilter();
-
- mapFilter.setParam(SearchFilter.TAG_MAP_TAG_ID, tagId.toString());
-
- mapFilter.setParam(SearchFilter.TAG_MAP_RESOURCE_ID, resourceId.toString());
-
- ret = getTagResourceMaps(mapFilter);
-
- if (CollectionUtils.isNotEmpty(ret)) {
- break;
- }
- }
- }
- }
-
- return ret;
- }
-
- @Override
- public RangerTagResourceMap getTagResourceMapById(Long id) throws Exception {
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.TAG_MAP_ID, id.toString());
-
- List<RangerTagResourceMap> list = getTagResourceMaps(filter);
-
- if (CollectionUtils.isEmpty(list) || CollectionUtils.size(list) != 1) {
- throw new Exception("Cannot find unique tagResourceMap object with id=" + id);
- }
- return list.get(0);
- }
-
- @Override
- public ServiceTags getServiceTagsIfUpdated(String serviceName, Long lastKnownVersion) throws Exception {
-
- ServiceTags ret = new ServiceTags();
-
- boolean tagsChanged = true;
-
- RangerService service = null;
-
- try {
- service = svcStore.getServiceByName(serviceName);
- ret.setServiceName(serviceName);
- } catch (Exception exception) {
- LOG.error("Cannot find service for serviceName=" + serviceName);
- tagsChanged = false;
- }
-
- if (lastKnownVersion != null
- && service != null && service.getTagVersion() != null
- && lastKnownVersion.compareTo(service.getTagVersion()) >= 0 ) {
- tagsChanged = false;
- }
-
- if (tagsChanged) {
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.TAG_RESOURCE_SERVICE_NAME, serviceName);
-
- List<RangerServiceResource> serviceResources = getServiceResources(filter);
-
- Map<Long, RangerTag> tagsMap = new HashMap<Long, RangerTag>();
- Map<Long, List<Long>> resourceToTagIdsMap = new HashMap<Long, List<Long>>();
-
- for (RangerServiceResource serviceResource : serviceResources) {
- List<RangerTag> tagList = getTagsForServiceResourceObject(serviceResource);
-
- if (CollectionUtils.isNotEmpty(tagList)) {
- List<Long> tagIdList = new ArrayList<Long>();
- for (RangerTag tag : tagList) {
- tagsMap.put(tag.getId(), tag);
- tagIdList.add(tag.getId());
- }
- resourceToTagIdsMap.put(serviceResource.getId(), tagIdList);
- }
- }
-
- if (MapUtils.isEmpty(resourceToTagIdsMap)) {
- serviceResources.clear();
- }
-
- ret.setServiceResources(serviceResources);
- ret.setResourceToTagIds(resourceToTagIdsMap);
- ret.setTags(tagsMap);
-
- if (service != null && service.getTagVersion() != null) {
- ret.setTagVersion(service.getTagVersion());
- }
- if (service != null && service.getTagUpdateTime() != null) {
- ret.setTagUpdateTime(service.getTagUpdateTime());
- }
- if (LOG.isDebugEnabled()) {
- LOG.debug("Changes to tagVersion detected, tagVersion in service=" + (service == null ? null : service.getTagVersion())
- + ", Plugin-provided lastKnownVersion=" + lastKnownVersion);
- }
- } else {
- if (LOG.isDebugEnabled()) {
- LOG.debug("No changes to tagVersion detected, tagVersion in service=" + (service == null ? null : service.getTagVersion())
- + ", Plugin-provided lastKnownVersion=" + lastKnownVersion);
- }
- ret.setTagVersion(lastKnownVersion);
- }
-
- return ret;
-
- }
-
- @Override
- public List<RangerTag> getTagsForServiceResource(Long resourceId) throws Exception {
- RangerServiceResource serviceResource = getServiceResourceById(resourceId);
-
- List<RangerTag> tagList = getTagsForServiceResourceObject(serviceResource);
-
- return tagList;
- }
-
- @Override
- public List<RangerTag> getTagsForServiceResourceByExtId(String resourceExtId) throws Exception {
- List<RangerTag> tagList = new ArrayList<RangerTag>();
-
- List<RangerServiceResource> serviceResources = getServiceResourcesByExternalId(resourceExtId);
- for (RangerServiceResource serviceResource : serviceResources) {
- List<RangerTag> tmp = getTagsForServiceResourceObject(serviceResource);
- tagList.addAll(tmp);
- }
- return tagList;
- }
-
- private List<RangerTag> getTagsForServiceResourceObject(RangerServiceResource serviceResource) throws Exception {
-
- List<RangerTag> tagList = new ArrayList<RangerTag>();
-
- if (serviceResource != null) {
- SearchFilter mapFilter = new SearchFilter();
- mapFilter.setParam(SearchFilter.TAG_MAP_RESOURCE_ID, serviceResource.getId().toString());
-
- List<RangerTagResourceMap> associations = getTagResourceMaps(mapFilter);
- if (CollectionUtils.isNotEmpty(associations)) {
-
- for (RangerTagResourceMap association : associations) {
- RangerTag tag = getTagById(association.getTagId());
- if (tag != null) {
- tagList.add(tag);
- }
- }
- }
- }
- return tagList;
- }
-
- @Override
- public List<RangerTagResourceMap> getTagResourceMapsByResourceId(Long tagId) throws Exception {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_MAP_RESOURCE_ID, tagId.toString());
- List<RangerTagResourceMap> associations = getTagResourceMaps(filter);
- return associations;
- }
-
- @Override
- public List<RangerTagResourceMap> getTagResourceMapsByTagId(Long tagId) throws Exception {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_MAP_TAG_ID, tagId.toString());
- List<RangerTagResourceMap> associations = getTagResourceMaps(filter);
- return associations;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java
index 950969e..de48240 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java
@@ -38,21 +38,19 @@ public class TagPredicateUtil extends AbstractPredicateUtil {
super.addPredicates(filter, predicates);
addPredicateForTagDefId(filter.getParam(SearchFilter.TAG_DEF_ID), predicates);
- addPredicateForTagDefExternalId(filter.getParam(SearchFilter.TAG_DEF_EXTERNAL_ID), predicates);
+ addPredicateForTagDefGuid(filter.getParam(SearchFilter.TAG_DEF_GUID), predicates);
addPredicateForTagDefName(filter.getParam(SearchFilter.TAG_DEF_NAME), predicates);
addPredicateForTagId(filter.getParam(SearchFilter.TAG_ID), predicates);
- addPredicateForTagExternalId(filter.getParam(SearchFilter.TAG_EXTERNAL_ID), predicates);
+ addPredicateForTagGuid(filter.getParam(SearchFilter.TAG_GUID), predicates);
addPredicateForTagName(filter.getParam(SearchFilter.TAG_NAME), predicates);
addPredicateForResourceId(filter.getParam(SearchFilter.TAG_RESOURCE_ID), predicates);
- addPredicateForResourceExternalId(filter.getParam(SearchFilter.TAG_RESOURCE_EXTERNAL_ID), predicates);
+ addPredicateForResourceGuid(filter.getParam(SearchFilter.TAG_RESOURCE_GUID), predicates);
addPredicateForServiceResourceServiceName(filter.getParam(SearchFilter.TAG_RESOURCE_SERVICE_NAME), predicates);
addPredicateForResourceSignature(filter.getParam(SearchFilter.TAG_RESOURCE_SIGNATURE), predicates);
addPredicateForTagResourceMapId(filter.getParam(SearchFilter.TAG_MAP_ID), predicates);
- addPredicateForTagResourceMapResourceId(filter.getParam(SearchFilter.TAG_MAP_RESOURCE_ID), predicates);
- addPredicateForTagResourceMapTagId(filter.getParam(SearchFilter.TAG_MAP_TAG_ID), predicates);
}
private Predicate addPredicateForTagDefId(final String id, List<Predicate> predicates) {
@@ -87,8 +85,8 @@ public class TagPredicateUtil extends AbstractPredicateUtil {
return ret;
}
- private Predicate addPredicateForTagDefExternalId(final String externalId, List<Predicate> predicates) {
- if (externalId == null || StringUtils.isEmpty(externalId)) {
+ private Predicate addPredicateForTagDefGuid(final String guid, List<Predicate> predicates) {
+ if (StringUtils.isEmpty(guid)) {
return null;
}
@@ -105,7 +103,7 @@ public class TagPredicateUtil extends AbstractPredicateUtil {
if (object instanceof RangerTagDef) {
RangerTagDef tagDef = (RangerTagDef) object;
- ret = StringUtils.equals(externalId, tagDef.getGuid());
+ ret = StringUtils.equals(guid, tagDef.getGuid());
}
return ret;
@@ -170,6 +168,9 @@ public class TagPredicateUtil extends AbstractPredicateUtil {
RangerTag tag = (RangerTag) object;
ret = StringUtils.equals(id, tag.getId().toString());
+ } else if (object instanceof RangerTagResourceMap) {
+ RangerTagResourceMap tagResourceMap = (RangerTagResourceMap) object;
+ ret = StringUtils.equals(id, tagResourceMap.getTagId().toString());
}
return ret;
@@ -183,8 +184,8 @@ public class TagPredicateUtil extends AbstractPredicateUtil {
return ret;
}
- private Predicate addPredicateForTagExternalId(final String externalId, List<Predicate> predicates) {
- if (StringUtils.isEmpty(externalId)) {
+ private Predicate addPredicateForTagGuid(final String guid, List<Predicate> predicates) {
+ if (StringUtils.isEmpty(guid)) {
return null;
}
@@ -201,7 +202,7 @@ public class TagPredicateUtil extends AbstractPredicateUtil {
if (object instanceof RangerTag) {
RangerTag tag = (RangerTag) object;
- ret = StringUtils.equals(externalId, tag.getGuid());
+ ret = StringUtils.equals(guid, tag.getGuid());
}
return ret;
@@ -266,6 +267,10 @@ public class TagPredicateUtil extends AbstractPredicateUtil {
RangerServiceResource resource = (RangerServiceResource) object;
ret = StringUtils.equals(id, resource.getId().toString());
+ } else if(object instanceof RangerTagResourceMap) {
+ RangerTagResourceMap tagResourceMap = (RangerTagResourceMap)object;
+
+ ret = StringUtils.equals(id, tagResourceMap.getId().toString());
}
return ret;
@@ -279,7 +284,7 @@ public class TagPredicateUtil extends AbstractPredicateUtil {
return ret;
}
- private Predicate addPredicateForResourceExternalId(final String id, List<Predicate> predicates) {
+ private Predicate addPredicateForResourceGuid(final String id, List<Predicate> predicates) {
if (StringUtils.isEmpty(id)) {
return null;
}
@@ -404,66 +409,4 @@ public class TagPredicateUtil extends AbstractPredicateUtil {
return ret;
}
-
- private Predicate addPredicateForTagResourceMapResourceId(final String resourceId, List<Predicate> predicates) {
- if (StringUtils.isEmpty(resourceId)) {
- return null;
- }
-
- Predicate ret = new Predicate() {
- @Override
- public boolean evaluate(Object object) {
-
- boolean ret = false;
-
- if (object == null) {
- return ret;
- }
-
- if (object instanceof RangerTagResourceMap) {
- RangerTagResourceMap tagResourceMap = (RangerTagResourceMap) object;
- ret = StringUtils.equals(resourceId, tagResourceMap.getResourceId().toString());
- }
-
- return ret;
- }
- };
-
- if (predicates != null) {
- predicates.add(ret);
- }
-
- return ret;
- }
-
- private Predicate addPredicateForTagResourceMapTagId(final String tagId, List<Predicate> predicates) {
- if (StringUtils.isEmpty(tagId)) {
- return null;
- }
-
- Predicate ret = new Predicate() {
- @Override
- public boolean evaluate(Object object) {
-
- boolean ret = false;
-
- if (object == null) {
- return ret;
- }
-
- if (object instanceof RangerTagResourceMap) {
- RangerTagResourceMap tagResourceMap = (RangerTagResourceMap) object;
- ret = StringUtils.equals(tagId, tagResourceMap.getTagId().toString());
- }
-
- return ret;
- }
- };
-
- if (predicates != null) {
- predicates.add(ret);
- }
-
- return ret;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java
index aaa70c6..f9d1086 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java
@@ -35,6 +35,7 @@ public interface TagStore {
void setServiceStore(ServiceStore svcStore);
+
RangerTagDef createTagDef(RangerTagDef tagDef) throws Exception;
RangerTagDef updateTagDef(RangerTagDef TagDef) throws Exception;
@@ -43,14 +44,17 @@ public interface TagStore {
void deleteTagDefById(Long id) throws Exception;
- List<RangerTagDef> getTagDef(String name) throws Exception;
-
RangerTagDef getTagDefById(Long id) throws Exception;
+ RangerTagDef getTagDefByGuid(String guid) throws Exception;
+
+ List<RangerTagDef> getTagDefsByName(String name) throws Exception;
+
List<RangerTagDef> getTagDefs(SearchFilter filter) throws Exception;
PList<RangerTagDef> getPaginatedTagDefs(SearchFilter filter) throws Exception;
+
RangerTag createTag(RangerTag tag) throws Exception;
RangerTag updateTag(RangerTag tag) throws Exception;
@@ -59,52 +63,62 @@ public interface TagStore {
RangerTag getTagById(Long id) throws Exception;
+ RangerTag getTagByGuid(String guid) throws Exception;
+
List<RangerTag> getTagsByName(String name) throws Exception;
- List<RangerTag> getTagsByExternalId(String externalId) throws Exception;
+ List<RangerTag> getTagsForResourceId(Long resourceId) throws Exception;
+
+ List<RangerTag> getTagsForResourceGuid(String resourceGuid) throws Exception;
List<RangerTag> getTags(SearchFilter filter) throws Exception;
+ PList<RangerTag> getPaginatedTags(SearchFilter filter) throws Exception;
+
+
RangerServiceResource createServiceResource(RangerServiceResource resource) throws Exception;
RangerServiceResource updateServiceResource(RangerServiceResource resource) throws Exception;
void deleteServiceResourceById(Long id) throws Exception;
- List<RangerServiceResource> getServiceResourcesByExternalId(String externalId) throws Exception;
-
RangerServiceResource getServiceResourceById(Long id) throws Exception;
+ RangerServiceResource getServiceResourceByGuid(String guid) throws Exception;
+
List<RangerServiceResource> getServiceResourcesByServiceAndResourceSpec(String serviceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) throws Exception;
List<RangerServiceResource> getServiceResources(SearchFilter filter) throws Exception;
+ PList<RangerServiceResource> getPaginatedServiceResources(SearchFilter filter) throws Exception;
+
+
RangerTagResourceMap createTagResourceMap(RangerTagResourceMap tagResourceMap) throws Exception;
void deleteTagResourceMapById(Long id) throws Exception;
- List<RangerTagResourceMap> getTagResourceMap(String externalResourceId, String externalTagId) throws Exception;
-
RangerTagResourceMap getTagResourceMapById(Long id) throws Exception;
- List<RangerTagResourceMap> getTagResourceMapsByTagId(Long tagId) throws Exception;
+ List<RangerTagResourceMap> getTagResourceMapsForTagId(Long tagId) throws Exception;
- List<RangerTagResourceMap> getTagResourceMapsByResourceId(Long resourceId) throws Exception;
+ List<RangerTagResourceMap> getTagResourceMapsForTagGuid(String tagGuid) throws Exception;
- List<RangerTagResourceMap> getTagResourceMaps(SearchFilter filter) throws Exception;
+ List<RangerTagResourceMap> getTagResourceMapsForResourceId(Long resourceId) throws Exception;
- ServiceTags getServiceTagsIfUpdated(String serviceName, Long lastKnownVersion) throws Exception;
+ List<RangerTagResourceMap> getTagResourceMapsForResourceGuid(String resourceGuid) throws Exception;
- PList<RangerTagResourceMap> getPaginatedTagResourceMaps(SearchFilter filter) throws Exception;
+ RangerTagResourceMap getTagResourceMapForTagAndResourceId(Long tagId, Long resourceId) throws Exception;
- List<String> getTags(String serviceName) throws Exception;
+ RangerTagResourceMap getTagResourceMapForTagAndResourceGuid(String tagGuid, String resourceGuid) throws Exception;
- List<String> lookupTags(String serviceName, String tagNamePattern) throws Exception;
+ List<RangerTagResourceMap> getTagResourceMaps(SearchFilter filter) throws Exception;
+
+ PList<RangerTagResourceMap> getPaginatedTagResourceMaps(SearchFilter filter) throws Exception;
- List<RangerTag> getTagsForServiceResource(Long resourceId) throws Exception;
- List<RangerTag> getTagsForServiceResourceByExtId(String resourceExtId) throws Exception;
+ ServiceTags getServiceTagsIfUpdated(String serviceName, Long lastKnownVersion) throws Exception;
- List<RangerTagDef> getTagDefsByExternalId(String extId) throws Exception;
+ List<String> getTags(String serviceName) throws Exception;
+ List<String> lookupTags(String serviceName, String tagNamePattern) throws Exception;
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/store/TagValidator.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagValidator.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagValidator.java
index ada5dd2..8c2b230 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagValidator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagValidator.java
@@ -57,21 +57,18 @@ public class TagValidator {
tag.setId(exist.getId());
}
- public void preUpdateTagByExternalId(String externalId, final RangerTag tag) throws Exception {
+ public void preUpdateTagByGuid(String guid, final RangerTag tag) throws Exception {
if (StringUtils.isBlank(tag.getName())) {
throw new Exception("Tag has no name");
}
- List<RangerTag> exist = tagStore.getTagsByExternalId(externalId);
- if (CollectionUtils.isEmpty(exist) || CollectionUtils.size(exist) != 1) {
- throw new Exception("Attempt to update nonexistent or multiple tags, externalId=" + externalId);
+ RangerTag existing = tagStore.getTagByGuid(guid);
+ if (existing == null) {
+ throw new Exception("Attempt to update nonexistent tag, guid=" + guid);
}
- RangerTag onlyTag = exist.get(0);
-
- tag.setId(onlyTag.getId());
- tag.setGuid(externalId);
-
+ tag.setId(existing.getId());
+ tag.setGuid(existing.getGuid());
}
public void preUpdateTagByName(String name, final RangerTag tag) throws Exception {
@@ -98,26 +95,24 @@ public class TagValidator {
throw new Exception("Attempt to delete nonexistent tag, id=" + id);
}
- List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsByTagId(exist.getId());
+ List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsForTagId(exist.getId());
if (CollectionUtils.isNotEmpty(associations)) {
throw new Exception("Attempt to delete tag which is associated with a service-resource, id=" + id);
}
return exist;
}
- public RangerTag preDeleteTagByExternalId(String externalId) throws Exception {
- List<RangerTag> exist;
- exist = tagStore.getTagsByExternalId(externalId);
- if (CollectionUtils.isEmpty(exist) || CollectionUtils.size(exist) != 1) {
- throw new Exception("Attempt to delete nonexistent or multiple tags, externalId=" + externalId);
+ public RangerTag preDeleteTagByGuid(String guid) throws Exception {
+ RangerTag exiting = tagStore.getTagByGuid(guid);
+ if (exiting == null) {
+ throw new Exception("Attempt to delete nonexistent tag, guid=" + guid);
}
- RangerTag ret = exist.get(0);
- List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsByTagId(ret.getId());
+ List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsForTagId(exiting.getId());
if (CollectionUtils.isNotEmpty(associations)) {
- throw new Exception("Attempt to delete tag which is associated with a service-resource, externalId=" + externalId);
+ throw new Exception("Attempt to delete tag which is associated with a service-resource, guid=" + guid);
}
- return ret;
+ return exiting;
}
public RangerTag preDeleteTagByName(String name) throws Exception {
@@ -127,7 +122,7 @@ public class TagValidator {
throw new Exception("Attempt to delete nonexistent or multiple tags, name=" + name);
}
RangerTag ret = exist.get(0);
- List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsByTagId(ret.getId());
+ List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsForTagId(ret.getId());
if (CollectionUtils.isNotEmpty(associations)) {
throw new Exception("Attempt to delete tag which is associated with a service-resource, name=" + name);
}
@@ -173,23 +168,20 @@ public class TagValidator {
}
- public void preUpdateServiceResourceByExternalId(String externalId, RangerServiceResource resource) throws Exception {
+ public void preUpdateServiceResourceByGuid(String guid, RangerServiceResource resource) throws Exception {
if (StringUtils.isBlank(resource.getServiceName())
|| resource.getResourceSpec() == null
|| CollectionUtils.size(resource.getResourceSpec()) == 0) {
throw new Exception("No serviceName or resourceSpec in RangerServiceResource");
}
- List<RangerServiceResource> exist;
- exist = tagStore.getServiceResourcesByExternalId(externalId);
- if (CollectionUtils.isEmpty(exist) || CollectionUtils.size(exist) != 1) {
- throw new Exception("Attempt to update nonexistent or multiple resources, externalId=" + externalId);
+ RangerServiceResource existing = tagStore.getServiceResourceByGuid(guid);
+ if (existing == null) {
+ throw new Exception("Attempt to update nonexistent resource, guid=" + guid);
}
- RangerServiceResource onlyResource = exist.get(0);
-
- resource.setId(onlyResource.getId());
- resource.setGuid(externalId);
+ resource.setId(existing.getId());
+ resource.setGuid(guid);
RangerServiceResourceSignature serializer = new RangerServiceResourceSignature(resource);
resource.setResourceSignature(serializer.getSignature());
@@ -201,60 +193,60 @@ public class TagValidator {
if (exist == null) {
throw new Exception("Attempt to delete nonexistent resource, id=" + id);
}
- List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsByResourceId(exist.getId());
+ List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsForResourceId(exist.getId());
if (CollectionUtils.isNotEmpty(associations)) {
throw new Exception("Attempt to delete serviceResource which is associated with a tag, id=" + id);
}
return exist;
}
- public RangerServiceResource preDeleteServiceResourceByExternalId(String externalId) throws Exception {
- List<RangerServiceResource> exist;
- exist = tagStore.getServiceResourcesByExternalId(externalId);
- if (CollectionUtils.isEmpty(exist) || CollectionUtils.size(exist) != 1) {
- throw new Exception("Attempt to delete nonexistent or multiple resources, externalId=" + externalId);
+ public RangerServiceResource preDeleteServiceResourceByGuid(String guid) throws Exception {
+ RangerServiceResource existing = tagStore.getServiceResourceByGuid(guid);
+ if (existing == null) {
+ throw new Exception("Attempt to delete nonexistent resource, guid=" + guid);
}
- RangerServiceResource ret = exist.get(0);
- List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsByResourceId(ret.getId());
+ List<RangerTagResourceMap> associations = tagStore.getTagResourceMapsForResourceId(existing.getId());
if (CollectionUtils.isNotEmpty(associations)) {
- throw new Exception("Attempt to delete serviceResource which is associated with a tag, externalId=" + externalId);
+ throw new Exception("Attempt to delete serviceResource which is associated with a tag, guid=" + guid);
}
- return ret;
+ return existing;
}
- public RangerTagResourceMap preCreateTagResourceMap(String externalResourceId, String externalTagId) throws Exception {
- if (StringUtils.isBlank(externalResourceId) || StringUtils.isBlank(externalTagId)) {
- throw new Exception("Both externalResourceId and internalResourceId need to be non-empty");
+ public RangerTagResourceMap preCreateTagResourceMap(String tagGuid, String resourceGuid) throws Exception {
+ if (StringUtils.isBlank(resourceGuid) || StringUtils.isBlank(tagGuid)) {
+ throw new Exception("Both resourceGuid and resourceId need to be non-empty");
}
- List<RangerTagResourceMap> exist;
- exist = tagStore.getTagResourceMap(externalResourceId, externalTagId);
- if (CollectionUtils.isNotEmpty(exist)) {
- throw new Exception("Attempt to create existing association between resourceId=" + externalResourceId + " and tagId=" + externalTagId);
+ RangerTagResourceMap exist = tagStore.getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid);
+ if (exist != null) {
+ throw new Exception("Attempt to create existing association between resourceId=" + resourceGuid + " and tagId=" + tagGuid);
+ }
+
+ RangerServiceResource existingServiceResource = tagStore.getServiceResourceByGuid(resourceGuid);
+
+ if(existingServiceResource == null) {
+ throw new Exception("No resource found for guid=" + resourceGuid);
}
- List<RangerServiceResource> existingServiceResources = tagStore.getServiceResourcesByExternalId(externalResourceId);
- List<RangerTag> existingTags = tagStore.getTagsByExternalId(externalTagId);
-
- if (CollectionUtils.isNotEmpty(existingServiceResources) && CollectionUtils.size(existingServiceResources) == 1) {
- if (CollectionUtils.isNotEmpty(existingTags) && CollectionUtils.size(existingTags) == 1) {
- RangerTagResourceMap newTagResourceMap = new RangerTagResourceMap();
- newTagResourceMap.setResourceId(existingServiceResources.get(0).getId());
- newTagResourceMap.setTagId(existingTags.get(0).getId());
- return newTagResourceMap;
- } else {
- throw new Exception("No unique tag found for externalId=" + externalTagId);
- }
- } else {
- throw new Exception("No unique resource found for externalId=" + externalResourceId);
+
+ RangerTag existingTag = tagStore.getTagByGuid(tagGuid);
+
+ if(existingTag == null) {
+ throw new Exception("No tag found for guid=" + tagGuid);
}
+
+ RangerTagResourceMap newTagResourceMap = new RangerTagResourceMap();
+ newTagResourceMap.setResourceId(existingServiceResource.getId());
+ newTagResourceMap.setTagId(existingTag.getId());
+
+ return newTagResourceMap;
}
- public RangerTagResourceMap preDeleteTagResourceMap(String externalResourceId, String externalTagId) throws Exception {
- List<RangerTagResourceMap> exist;
- exist = tagStore.getTagResourceMap(externalResourceId, externalTagId);
- if (CollectionUtils.isEmpty(exist) || CollectionUtils.size(exist) != 1) {
- throw new Exception("Attempt to create nonexistent association between resourceId=" + externalResourceId + " and tagId=" + externalTagId);
+ public RangerTagResourceMap preDeleteTagResourceMap(String tagGuid, String resourceGuid) throws Exception {
+ RangerTagResourceMap existing = tagStore.getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid);
+ if (existing == null) {
+ throw new Exception("Attempt to delete nonexistent association between resourceId=" + resourceGuid + " and tagId=" + tagGuid);
}
- return exist.get(0);
+
+ return existing;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java
index 8a63f72..6117034 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java
@@ -20,6 +20,7 @@
package org.apache.ranger.plugin.store.file;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
@@ -28,9 +29,12 @@ import org.apache.hadoop.fs.Path;
import org.apache.ranger.authorization.hadoop.config.RangerConfiguration;
import org.apache.ranger.plugin.model.*;
import org.apache.ranger.plugin.store.AbstractTagStore;
+import org.apache.ranger.plugin.store.PList;
+import org.apache.ranger.plugin.store.RangerServiceResourceSignature;
import org.apache.ranger.plugin.store.TagPredicateUtil;
import org.apache.ranger.plugin.store.TagStore;
import org.apache.ranger.plugin.util.SearchFilter;
+import org.apache.ranger.plugin.util.ServiceTags;
import java.util.*;
import java.util.regex.Matcher;
@@ -40,20 +44,20 @@ public class TagFileStore extends AbstractTagStore {
private static final Log LOG = LogFactory.getLog(TagFileStore.class);
public static final String PROPERTY_TAG_FILE_STORE_DIR = "ranger.tag.store.file.dir";
- protected static final String FILE_PREFIX_TAG_DEF = "ranger-tagdef-";
- protected static final String FILE_PREFIX_TAG = "ranger-tag-";
- protected static final String FILE_PREFIX_RESOURCE = "ranger-serviceresource-";
- protected static final String FILE_PREFIX_TAG_RESOURCE_MAP = "ranger-tagresourcemap-";
- private String tagDataDir = null;
- private long nextTagDefId = 0;
- private long nextTagId = 0;
- private long nextServiceResourceId = 0;
- private long nextTagResourceMapId = 0;
+ protected static final String FILE_PREFIX_TAG_DEF = "ranger-tagdef-";
+ protected static final String FILE_PREFIX_TAG = "ranger-tag-";
+ protected static final String FILE_PREFIX_RESOURCE = "ranger-serviceresource-";
+ protected static final String FILE_PREFIX_TAG_RESOURCE_MAP = "ranger-tagresourcemap-";
+ private String tagDataDir = null;
+ private long nextTagDefId = 0;
+ private long nextTagId = 0;
+ private long nextServiceResourceId = 0;
+ private long nextTagResourceMapId = 0;
private TagPredicateUtil predicateUtil = null;
- private FileStoreUtil fileStoreUtil = null;
+ private FileStoreUtil fileStoreUtil = null;
private volatile static TagFileStore instance = null;
@@ -78,9 +82,7 @@ public class TagFileStore extends AbstractTagStore {
fileStoreUtil = new FileStoreUtil();
predicateUtil = new TagPredicateUtil();
- if (LOG.isDebugEnabled())
-
- {
+ if (LOG.isDebugEnabled()) {
LOG.debug("<== TagFileStore.TagFileStore()");
}
}
@@ -103,6 +105,7 @@ public class TagFileStore extends AbstractTagStore {
if (LOG.isDebugEnabled()) {
LOG.debug("==> TagFileStore.initStore()");
}
+
fileStoreUtil.initStore(tagDataDir);
if (LOG.isDebugEnabled()) {
@@ -116,13 +119,13 @@ public class TagFileStore extends AbstractTagStore {
LOG.debug("==> TagFileStore.createTagDef(" + tagDef + ")");
}
- List<RangerTagDef> existing = getTagDef(tagDef.getName());
+ List<RangerTagDef> existing = getTagDefsByName(tagDef.getName());
if (CollectionUtils.isNotEmpty(existing)) {
throw new Exception(tagDef.getName() + ": tag-def already exists (id=" + existing.get(0).getId() + ")");
}
- RangerTagDef ret;
+ RangerTagDef ret = null;
try {
preCreate(tagDef);
@@ -154,11 +157,13 @@ public class TagFileStore extends AbstractTagStore {
RangerTagDef existing = null;
if(tagDef.getId() == null) {
- List<RangerTagDef> existingDefs = getTagDef(tagDef.getName());
+ List<RangerTagDef> existingDefs = getTagDefsByName(tagDef.getName());
if (CollectionUtils.isEmpty(existingDefs)) {
throw new Exception("tag-def does not exist: name=" + tagDef.getName());
}
+
+ existing = existingDefs.get(0);
} else {
existing = this.getTagDefById(tagDef.getId());
@@ -167,8 +172,7 @@ public class TagFileStore extends AbstractTagStore {
}
}
-
- RangerTagDef ret;
+ RangerTagDef ret = null;
try {
preUpdate(existing);
@@ -198,77 +202,106 @@ public class TagFileStore extends AbstractTagStore {
LOG.debug("==> TagFileStore.deleteTagDef(" + name + ")");
}
- List<RangerTagDef> existingDefs = getTagDef(name);
+ List<RangerTagDef> existingDefs = getTagDefsByName(name);
- if (CollectionUtils.isEmpty(existingDefs)) {
- throw new Exception("no tag-def exists with name=" + name);
+ if (CollectionUtils.isNotEmpty(existingDefs)) {
+ try {
+ for(RangerTagDef existing : existingDefs) {
+ deleteTagDef(existing);
+ }
+ } catch (Exception excp) {
+ throw new Exception("failed to delete tag-def with ID=" + name, excp);
+ }
}
- try {
- for(RangerTagDef existing : existingDefs) {
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_DEF, existing.getId()));
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.deleteTagDef(" + name + ")");
+ }
+ }
- preDelete(existing);
+ @Override
+ public void deleteTagDefById(Long id) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.deleteTagDefById(" + id + ")");
+ }
- fileStoreUtil.deleteFile(filePath);
+ RangerTagDef existing = getTagDefById(id);
- postDelete(existing);
- }
- } catch (Exception excp) {
- throw new Exception("failed to delete tag-def with ID=" + name, excp);
+ if(existing != null) {
+ deleteTagDef(existing);
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteTagDef(" + name + ")");
+ LOG.debug("<== TagFileStore.deleteTagDefById(" + id + ")");
+ }
+ }
+
+ @Override
+ public RangerTagDef getTagDefById(Long id) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagDefById(" + id + ")");
+ }
+
+ RangerTagDef ret = null;
+
+ if (id != null) {
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_DEF_ID, id.toString());
+
+ List<RangerTagDef> tagDefs = getTagDefs(filter);
+
+ ret = CollectionUtils.isEmpty(tagDefs) ? null : tagDefs.get(0);
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagDefById(" + id + "): " + ret);
}
+ return ret;
}
@Override
- public List<RangerTagDef> getTagDef(String name) throws Exception {
+ public RangerTagDef getTagDefByGuid(String guid) throws Exception {
if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagDef(" + name + ")");
+ LOG.debug("==> TagFileStore.getTagDefByGuid(" + guid + ")");
}
- List<RangerTagDef> ret;
+ RangerTagDef ret = null;
- if (StringUtils.isNotBlank(name)) {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_DEF_NAME, name);
+ if (StringUtils.isNotBlank(guid)) {
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_DEF_GUID, guid);
List<RangerTagDef> tagDefs = getTagDefs(filter);
- ret = CollectionUtils.isEmpty(tagDefs) ? null : tagDefs;
- } else {
- ret = null;
+ if(CollectionUtils.isNotEmpty(tagDefs)) {
+ ret = tagDefs.get(0);
+ }
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagDef(" + name + "): " + ret);
+ LOG.debug("<== TagFileStore.getTagDefByGuid(" + guid + "): " + ret);
}
return ret;
}
@Override
- public RangerTagDef getTagDefById(Long id) throws Exception {
+ public List<RangerTagDef> getTagDefsByName(String name) throws Exception {
if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagDefById(" + id + ")");
+ LOG.debug("==> TagFileStore.getTagDef(" + name + ")");
}
- RangerTagDef ret;
+ List<RangerTagDef> ret = null;
- if (id != null) {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_DEF_ID, id.toString());
+ if (StringUtils.isNotBlank(name)) {
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_DEF_NAME, name);
List<RangerTagDef> tagDefs = getTagDefs(filter);
- ret = CollectionUtils.isEmpty(tagDefs) ? null : tagDefs.get(0);
- } else {
- ret = null;
+ ret = CollectionUtils.isEmpty(tagDefs) ? null : tagDefs;
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagDefById(" + id + "): " + ret);
+ LOG.debug("<== TagFileStore.getTagDef(" + name + "): " + ret);
}
return ret;
@@ -276,7 +309,6 @@ public class TagFileStore extends AbstractTagStore {
@Override
public List<RangerTagDef> getTagDefs(SearchFilter filter) throws Exception {
-
if (LOG.isDebugEnabled()) {
LOG.debug("==> TagFileStore.getTagDefs()");
}
@@ -285,25 +317,43 @@ public class TagFileStore extends AbstractTagStore {
if (CollectionUtils.isNotEmpty(ret) && filter != null && !filter.isEmpty()) {
CollectionUtils.filter(ret, predicateUtil.getPredicate(filter));
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagDefs(): count=" + (ret == null ? 0 : ret.size()));
+ }
+
+ return ret;
+ }
+
+ @Override
+ public PList<RangerTagDef> getPaginatedTagDefs(SearchFilter filter) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getPaginatedTagDefs()");
+ }
- //Comparator<RangerBaseModelObject> comparator = getSorter(filter);
+ PList<RangerTagDef> ret = null;
- //if(comparator != null) {
- //Collections.sort(ret, comparator);
- //}
+ List<RangerTagDef> list = getTagDefs(filter);
+
+ if(list != null) {
+ ret = new PList<RangerTagDef>(list, 0, list.size(), list.size(), list.size(), filter.getSortType(), filter.getSortBy());
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagDefs(): count=" + (ret == null ? 0 : ret.size()));
+ LOG.debug("<== TagFileStore.getPaginatedTagDefs(): count=" + (ret == null ? 0 : ret.getPageSize()));
}
return ret;
}
@Override
- public RangerTag createTag(RangerTag tag) throws Exception
- {
- RangerTag ret;
+ public RangerTag createTag(RangerTag tag) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.createTag(" + tag + ")");
+ }
+
+ RangerTag ret = null;
try {
preCreate(tag);
@@ -320,16 +370,19 @@ public class TagFileStore extends AbstractTagStore {
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.createTag(" + tag + ")");
+ LOG.debug("<== TagFileStore.createTag(" + tag + "): " + ret);
}
return ret;
}
@Override
- public RangerTag updateTag(RangerTag tag) throws Exception
- {
- RangerTag ret;
+ public RangerTag updateTag(RangerTag tag) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.updateTag(" + tag + ")");
+ }
+
+ RangerTag ret = null;
try {
preUpdate(tag);
@@ -344,7 +397,7 @@ public class TagFileStore extends AbstractTagStore {
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.updateTag(" + tag + ")");
+ LOG.debug("<== TagFileStore.updateTag(" + tag + "): " + ret);
}
return ret;
@@ -353,33 +406,126 @@ public class TagFileStore extends AbstractTagStore {
@Override
public void deleteTagById(Long id) throws Exception {
if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.deleteTag(" + id + ")");
+ LOG.debug("==> TagFileStore.deleteTagById(" + id + ")");
}
try {
RangerTag tag = getTagById(id);
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG, tag.getId()));
+ deleteTag(tag);
+ } catch (Exception excp) {
+ throw new Exception("failed to delete tag with ID=" + id, excp);
+ }
- preDelete(tag);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.deleteTagById(" + id + ")");
+ }
+ }
- fileStoreUtil.deleteFile(filePath);
+ @Override
+ public RangerTag getTagById(Long id) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagById(" + id + ")");
+ }
- postDelete(tag);
+ RangerTag ret = null;
- } catch (Exception excp) {
- throw new Exception("failed to delete tag with ID=" + id, excp);
+ if (id != null) {
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_ID, id.toString());
+
+ List<RangerTag> tags = getTags(filter);
+
+ if (CollectionUtils.isNotEmpty(tags) && CollectionUtils.size(tags) == 1) {
+ ret = tags.get(0);
+ }
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteTag(" + id + ")");
+ LOG.debug("<== TagFileStore.getTagDefById(" + id + "): " + ret);
}
+
+ return ret;
}
@Override
- public List<RangerTag> getTags(SearchFilter filter) throws Exception {
+ public RangerTag getTagByGuid(String guid) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagByGuid(" + guid + ")");
+ }
+
+ RangerTag ret = null;
+
+ if (guid != null) {
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_GUID, guid);
+
+ List<RangerTag> tags = getTags(filter);
+
+ if (CollectionUtils.isNotEmpty(tags) && CollectionUtils.size(tags) == 1) {
+ ret = tags.get(0);
+ }
+ }
if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagByGuid(" + guid + "): " + ret);
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<RangerTag> getTagsByName(String name) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagsByName(" + name + ")");
+ }
+
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_NAME, name);
+
+ List<RangerTag> ret = getTags(filter);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagsByName(" + name + "): count=" + (ret == null ? 0 : ret.size()));
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<RangerTag> getTagsForResourceId(Long resourceId) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagsForResourceId(" + resourceId + ")");
+ }
+
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_ID, resourceId.toString());
+
+ List<RangerTag> ret = getTags(filter);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagsForResourceId(" + resourceId + "): count=" + (ret == null ? 0 : ret.size()));
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<RangerTag> getTagsForResourceGuid(String resourceGuid) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagsForResourceGuid(" + resourceGuid + ")");
+ }
+
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_GUID, resourceGuid);
+
+ List<RangerTag> ret = getTags(filter);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagsForResourceGuid(" + resourceGuid + "): count=" + (ret == null ? 0 : ret.size()));
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<RangerTag> getTags(SearchFilter filter) throws Exception {
+ if (LOG.isDebugEnabled()) {
LOG.debug("==> TagFileStore.getTags()");
}
@@ -396,10 +542,35 @@ public class TagFileStore extends AbstractTagStore {
return ret;
}
+ @Override
+ public PList<RangerTag> getPaginatedTags(SearchFilter filter) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getPaginatedTags()");
+ }
+
+ PList<RangerTag> ret = null;
+
+ List<RangerTag> list = getTags(filter);
+
+ if(list != null) {
+ ret = new PList<RangerTag>(list, 0, list.size(), list.size(), list.size(), filter.getSortType(), filter.getSortBy());
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getPaginatedTags(): count=" + (ret == null ? 0 : ret.getPageSize()));
+ }
+
+ return ret;
+ }
+
@Override
public RangerServiceResource createServiceResource(RangerServiceResource resource) throws Exception {
- RangerServiceResource ret;
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.createServiceResource(" + resource + ")");
+ }
+
+ RangerServiceResource ret = null;
try {
preCreate(resource);
@@ -416,7 +587,7 @@ public class TagFileStore extends AbstractTagStore {
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.createServiceResource(" + resource + ")");
+ LOG.debug("<== TagFileStore.createServiceResource(" + resource + "): " + ret);
}
return ret;
@@ -427,7 +598,8 @@ public class TagFileStore extends AbstractTagStore {
if (LOG.isDebugEnabled()) {
LOG.debug("==> TagFileStore.updateServiceResource(" + resource + ")");
}
- RangerServiceResource ret;
+
+ RangerServiceResource ret = null;
try {
preUpdate(resource);
@@ -442,7 +614,7 @@ public class TagFileStore extends AbstractTagStore {
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.updateServiceResource(" + resource + ")");
+ LOG.debug("<== TagFileStore.updateServiceResource(" + resource + "): " + ret);
}
return ret;
@@ -452,27 +624,87 @@ public class TagFileStore extends AbstractTagStore {
@Override
public void deleteServiceResourceById(Long id) throws Exception {
if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.deleteServiceResource(" + id + ")");
+ LOG.debug("==> TagFileStore.deleteServiceResourceById(" + id + ")");
}
try {
RangerServiceResource resource = getServiceResourceById(id);
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_RESOURCE, resource.getId()));
+ deleteServiceResource(resource);
+ } catch (Exception excp) {
+ throw new Exception("failed to delete service-resource with ID=" + id, excp);
+ }
- preDelete(resource);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.deleteServiceResourceById(" + id + ")");
+ }
+ }
- fileStoreUtil.deleteFile(filePath);
+ @Override
+ public RangerServiceResource getServiceResourceById(Long id) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getServiceResourceById(" + id + ")");
+ }
- postDelete(resource);
+ RangerServiceResource ret = null;
- } catch (Exception excp) {
- throw new Exception("failed to delete service-resource with ID=" + id, excp);
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_ID, id.toString());
+
+ List<RangerServiceResource> resources = getServiceResources(filter);
+
+ if (CollectionUtils.isNotEmpty(resources)) {
+ ret = resources.get(0);
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteServiceResource(" + id + ")");
+ LOG.debug("<== TagFileStore.getServiceResourceById(" + id + "): " + ret);
}
+
+ return ret;
+ }
+
+ @Override
+ public RangerServiceResource getServiceResourceByGuid(String guid) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getServiceResourcesByGuid(" + guid + ")");
+ }
+
+ RangerServiceResource ret = null;
+
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_GUID, guid);
+
+ List<RangerServiceResource> resources = getServiceResources(filter);
+
+ if (CollectionUtils.isNotEmpty(resources)) {
+ ret = resources.get(0);
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getServiceResourcesByGuid(" + guid + "): " + ret);
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<RangerServiceResource> getServiceResourcesByServiceAndResourceSpec(String serviceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getServiceResourcesByServiceAndResourceSpec(" + serviceName + ", " + resourceSpec + ")");
+ }
+
+ List<RangerServiceResource> ret = null;
+
+ if (MapUtils.isNotEmpty(resourceSpec)) {
+ RangerServiceResource resource = new RangerServiceResource(serviceName, resourceSpec);
+
+ ret = getServiceResources(resource);
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getServiceResourcesByServiceAndResourceSpec(" + serviceName + ", " + resourceSpec + "): count=" + (ret == null ? 0 : ret.size()));
+ }
+
+ return ret;
}
@Override
@@ -495,18 +727,45 @@ public class TagFileStore extends AbstractTagStore {
}
@Override
- public RangerTagResourceMap createTagResourceMap(RangerTagResourceMap tagResourceMap) throws Exception {
+ public PList<RangerServiceResource> getPaginatedServiceResources(SearchFilter filter) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getPaginatedServiceResources()");
+ }
+
+ PList<RangerServiceResource> ret = null;
- RangerTagResourceMap ret;
+ List<RangerServiceResource> list = getServiceResources(filter);
+
+ if(list != null) {
+ ret = new PList<RangerServiceResource>(list, 0, list.size(), list.size(), list.size(), filter.getSortType(), filter.getSortBy());
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getPaginatedServiceResources(): count=" + (ret == null ? 0 : ret.getPageSize()));
+ }
+
+ return ret;
+ }
+
+
+ @Override
+ public RangerTagResourceMap createTagResourceMap(RangerTagResourceMap tagResourceMap) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.createTagResourceMap(" + tagResourceMap + ")");
+ }
preCreate(tagResourceMap);
tagResourceMap.setId(nextTagResourceMapId);
- ret = fileStoreUtil.saveToFile(tagResourceMap, new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_RESOURCE_MAP, nextTagResourceMapId++)), false);
+ RangerTagResourceMap ret = fileStoreUtil.saveToFile(tagResourceMap, new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_RESOURCE_MAP, nextTagResourceMapId++)), false);
postCreate(ret);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.createTagResourceMap(" + tagResourceMap + "): " + ret);
+ }
+
return ret;
}
@@ -519,21 +778,178 @@ public class TagFileStore extends AbstractTagStore {
try {
RangerTagResourceMap tagResourceMap = getTagResourceMapById(id);
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_RESOURCE_MAP, tagResourceMap.getId()));
+ deleteTagResourceMap(tagResourceMap);
+ } catch (Exception excp) {
+ throw new Exception("failed to delete tagResourceMap with ID=" + id, excp);
+ }
- preDelete(tagResourceMap);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.deleteTagResourceMapById(" + id + ")");
+ }
+ }
- fileStoreUtil.deleteFile(filePath);
+ @Override
+ public RangerTagResourceMap getTagResourceMapById(Long id) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagResourceMapById(" + id + ")");
+ }
- postDelete(tagResourceMap);
+ RangerTagResourceMap ret = null;
- } catch (Exception excp) {
- throw new Exception("failed to delete tagResourceMap with ID=" + id, excp);
+ SearchFilter filter = new SearchFilter();
+
+ filter.setParam(SearchFilter.TAG_MAP_ID, id.toString());
+
+ List<RangerTagResourceMap> list = getTagResourceMaps(filter);
+
+ if (CollectionUtils.isNotEmpty(list)) {
+ ret = list.get(0);
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteTagResourceMapById(" + id + ")");
+ LOG.debug("<== TagFileStore.getTagResourceMapById(" + id + "): " + ret);
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<RangerTagResourceMap> getTagResourceMapsForTagId(Long tagId) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagResourceMapsForTagId(" + tagId + ")");
+ }
+
+ SearchFilter filter = new SearchFilter();
+
+ filter.setParam(SearchFilter.TAG_ID, tagId.toString());
+
+ List<RangerTagResourceMap> ret = getTagResourceMaps(filter);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagResourceMapsForTagId(" + tagId + "): " + ret);
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<RangerTagResourceMap> getTagResourceMapsForTagGuid(String tagGuid) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagResourceMapsForTagGuid(" + tagGuid + ")");
+ }
+
+ List<RangerTagResourceMap> ret = null;
+
+ RangerTag tag = getTagByGuid(tagGuid);
+
+ if(tag != null) {
+ SearchFilter filter = new SearchFilter();
+ filter.setParam(SearchFilter.TAG_ID, tag.getId().toString());
+
+ ret = getTagResourceMaps(filter);
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagResourceMapsForTagGuid(" + tagGuid + "): " + ret);
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<RangerTagResourceMap> getTagResourceMapsForResourceId(Long resourceId) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagResourceMapById(" + resourceId + ")");
+ }
+
+ SearchFilter filter = new SearchFilter();
+
+ filter.setParam(SearchFilter.TAG_RESOURCE_ID, resourceId.toString());
+
+ List<RangerTagResourceMap> ret = getTagResourceMaps(filter);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagResourceMapById(" + resourceId + "): " + ret);
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<RangerTagResourceMap> getTagResourceMapsForResourceGuid(String resourceGuid) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagResourceMapsForResourceGuid(" + resourceGuid + ")");
+ }
+
+ SearchFilter filter = new SearchFilter();
+
+ RangerServiceResource resource = getServiceResourceByGuid(resourceGuid);
+ filter.setParam(SearchFilter.TAG_RESOURCE_ID, resource.getId().toString());
+
+ List<RangerTagResourceMap> ret = getTagResourceMaps(filter);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagResourceMapsForResourceGuid(" + resourceGuid + "): " + ret);
+ }
+
+ return ret;
+ }
+
+ @Override
+ public RangerTagResourceMap getTagResourceMapForTagAndResourceId(Long tagId, Long resourceId) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagResourceMapForTagAndResourceId(" + tagId + ", " + resourceId + ")");
+ }
+
+ RangerTagResourceMap ret = null;
+
+ SearchFilter filter = new SearchFilter();
+
+ filter.setParam(SearchFilter.TAG_ID, tagId.toString());
+ filter.setParam(SearchFilter.TAG_RESOURCE_ID, resourceId.toString());
+
+ List<RangerTagResourceMap> tagResourceMaps = getTagResourceMaps(filter);
+
+ if(CollectionUtils.isNotEmpty(tagResourceMaps)) {
+ ret = tagResourceMaps.get(0);
}
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagResourceMapForTagAndResourceId(" + tagId + ", " + resourceId + "): " + ret);
+ }
+
+ return ret;
+ }
+
+ @Override
+ public RangerTagResourceMap getTagResourceMapForTagAndResourceGuid(String tagGuid, String resrouceGuid) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTagResourceMapForTagAndResourceGuid(" + tagGuid + ", " + resrouceGuid + ")");
+ }
+
+ RangerTagResourceMap ret = null;
+
+ SearchFilter filter = new SearchFilter();
+
+ RangerTag tag = getTagByGuid(tagGuid);
+ RangerServiceResource resource = getServiceResourceByGuid(resrouceGuid);
+
+ if(tag != null && resource != null) {
+ filter.setParam(SearchFilter.TAG_ID, tag.getId().toString());
+ filter.setParam(SearchFilter.TAG_RESOURCE_ID, resource.getId().toString());
+
+ List<RangerTagResourceMap> tagResourceMaps = getTagResourceMaps(filter);
+
+ if(CollectionUtils.isNotEmpty(tagResourceMaps)) {
+ ret = tagResourceMaps.get(0);
+ }
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTagResourceMapForTagAndResourceGuid(" + tagGuid + ", " + resrouceGuid + "): " + ret);
+ }
+
+ return ret;
}
@Override
@@ -556,6 +972,190 @@ public class TagFileStore extends AbstractTagStore {
}
+ @Override
+ public PList<RangerTagResourceMap> getPaginatedTagResourceMaps(SearchFilter filter) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getPaginatedTagResourceMaps()");
+ }
+
+ PList<RangerTagResourceMap> ret = null;
+
+ List<RangerTagResourceMap> list = getTagResourceMaps(filter);
+
+ if(CollectionUtils.isNotEmpty(list)) {
+ ret = new PList<RangerTagResourceMap>(list, 0, list.size(), list.size(), list.size(), filter.getSortType(), filter.getSortBy());
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getPaginatedTagResourceMaps(): count=" + (ret == null ? 0 : ret.getPageSize()));
+ }
+
+ return ret;
+ }
+
+
+ @Override
+ public ServiceTags getServiceTagsIfUpdated(String serviceName, Long lastKnownVersion) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getServiceTagsIfUpdated(" + serviceName + ", " + lastKnownVersion + ")");
+ }
+
+ ServiceTags ret = new ServiceTags();
+
+ boolean tagsChanged = true;
+
+ RangerService service = null;
+
+ try {
+ service = svcStore.getServiceByName(serviceName);
+ ret.setServiceName(serviceName);
+ } catch (Exception exception) {
+ LOG.error("Cannot find service for serviceName=" + serviceName);
+ tagsChanged = false;
+ }
+
+ if (lastKnownVersion != null
+ && service != null && service.getTagVersion() != null
+ && lastKnownVersion.compareTo(service.getTagVersion()) >= 0 ) {
+ tagsChanged = false;
+ }
+
+ if (tagsChanged) {
+ SearchFilter filter = new SearchFilter();
+
+ filter.setParam(SearchFilter.TAG_RESOURCE_SERVICE_NAME, serviceName);
+
+ List<RangerServiceResource> serviceResources = getServiceResources(filter);
+
+ Map<Long, RangerTag> tagsMap = new HashMap<Long, RangerTag>();
+ Map<Long, List<Long>> resourceToTagIdsMap = new HashMap<Long, List<Long>>();
+
+ for (RangerServiceResource serviceResource : serviceResources) {
+ List<RangerTag> tagList = getTagsForServiceResourceObject(serviceResource);
+
+ if (CollectionUtils.isNotEmpty(tagList)) {
+ List<Long> tagIdList = new ArrayList<Long>();
+ for (RangerTag tag : tagList) {
+ tagsMap.put(tag.getId(), tag);
+ tagIdList.add(tag.getId());
+ }
+ resourceToTagIdsMap.put(serviceResource.getId(), tagIdList);
+ }
+ }
+
+ if (MapUtils.isEmpty(resourceToTagIdsMap)) {
+ serviceResources.clear();
+ }
+
+ ret.setServiceResources(serviceResources);
+ ret.setResourceToTagIds(resourceToTagIdsMap);
+ ret.setTags(tagsMap);
+
+ if (service != null && service.getTagVersion() != null) {
+ ret.setTagVersion(service.getTagVersion());
+ }
+ if (service != null && service.getTagUpdateTime() != null) {
+ ret.setTagUpdateTime(service.getTagUpdateTime());
+ }
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Changes to tagVersion detected, tagVersion in service=" + (service == null ? null : service.getTagVersion())
+ + ", Plugin-provided lastKnownVersion=" + lastKnownVersion);
+ }
+ } else {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("No changes to tagVersion detected, tagVersion in service=" + (service == null ? null : service.getTagVersion())
+ + ", Plugin-provided lastKnownVersion=" + lastKnownVersion);
+ }
+ ret.setTagVersion(lastKnownVersion);
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getServiceTagsIfUpdated(" + serviceName + ", " + lastKnownVersion + "): " + ret);
+ }
+
+ return ret;
+
+ }
+
+ @Override
+ public List<String> getTags(String serviceName) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.getTags(" + serviceName + ")");
+ }
+
+ List<String> ret = new ArrayList<String>();
+
+ // Ignore serviceName
+ List<RangerTag> allTags = getAllTags();
+
+ for (RangerTag tag : allTags) {
+ ret.add(tag.getName());
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.getTags(" + serviceName + "): count=" + ret.size());
+ }
+
+ return ret;
+ }
+
+ @Override
+ public List<String> lookupTags(String serviceName, String tagNamePattern) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> TagFileStore.lookupTags(" + serviceName + ", " + tagNamePattern + ")");
+ }
+
+ List<String> ret = new ArrayList<String>();
+ List<String> tags = getTags(serviceName);
+
+ if (CollectionUtils.isNotEmpty(tags)) {
+ Pattern p = Pattern.compile(tagNamePattern);
+ for (String tagName : tags) {
+ Matcher m = p.matcher(tagName);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("TagFileStore.lookupTags) - Trying to match .... tagNamePattern=" + tagNamePattern + ", tagName=" + tagName);
+ }
+
+ if (m.matches()) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("TagFileStore.lookupTags) - Match found.... tagNamePattern=" + tagNamePattern + ", tagName=" + tagName);
+ }
+
+ ret.add(tagName);
+ }
+ }
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("<== TagFileStore.lookupTags(" + serviceName + ", " + tagNamePattern + "): count=" + ret.size());
+ }
+
+ return ret;
+ }
+
+ private List<RangerTag> getTagsForServiceResourceObject(RangerServiceResource serviceResource) throws Exception {
+
+ List<RangerTag> tagList = new ArrayList<RangerTag>();
+
+ if (serviceResource != null) {
+ SearchFilter mapFilter = new SearchFilter();
+ mapFilter.setParam(SearchFilter.TAG_RESOURCE_ID, serviceResource.getId().toString());
+
+ List<RangerTagResourceMap> associations = getTagResourceMaps(mapFilter);
+ if (CollectionUtils.isNotEmpty(associations)) {
+
+ for (RangerTagResourceMap association : associations) {
+ RangerTag tag = getTagById(association.getTagId());
+ if (tag != null) {
+ tagList.add(tag);
+ }
+ }
+ }
+ }
+ return tagList;
+ }
+
private List<RangerTagDef> getAllTagDefs() throws Exception {
if (LOG.isDebugEnabled()) {
LOG.debug("==> TagFileStore.getAllTagDefs()");
@@ -712,62 +1312,58 @@ public class TagFileStore extends AbstractTagStore {
return ret;
}
- @Override
- public List<String> getTags(String serviceName) throws Exception {
+ private void deleteTagDef(RangerTagDef tagDef) throws Exception {
+ Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_DEF, tagDef.getId()));
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTags(" + serviceName + ")");
- }
+ preDelete(tagDef);
- // Ignore serviceName
- List<RangerTag> allTags = getAllTags();
+ fileStoreUtil.deleteFile(filePath);
- List<String> ret = new ArrayList<String>();
+ postDelete(tagDef);
+ }
- for (RangerTag tag : allTags) {
- ret.add(tag.getName());
- }
+ private void deleteTag(RangerTag tag) throws Exception {
+ Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG, tag.getId()));
- return ret;
+ preDelete(tag);
+
+ fileStoreUtil.deleteFile(filePath);
+
+ postDelete(tag);
}
- @Override
- public List<String> lookupTags(String serviceName, String tagNamePattern) throws Exception {
+ private void deleteServiceResource(RangerServiceResource resource) throws Exception {
+ Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_RESOURCE, resource.getId()));
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.lookupTags(" + serviceName + ", " + tagNamePattern + ")");
- }
+ preDelete(resource);
- List<String> tagNameList = getTags(serviceName);
- List<String> matchedTagList = new ArrayList<String>();
+ fileStoreUtil.deleteFile(filePath);
- if (CollectionUtils.isNotEmpty(tagNameList)) {
- Pattern p = Pattern.compile(tagNamePattern);
- for (String tagName : tagNameList) {
- Matcher m = p.matcher(tagName);
- if (LOG.isDebugEnabled()) {
- LOG.debug("TagFileStore.lookupTags) - Trying to match .... tagNamePattern=" + tagNamePattern + ", tagName=" + tagName);
- }
- if (m.matches()) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("TagFileStore.lookupTags) - Match found.... tagNamePattern=" + tagNamePattern + ", tagName=" + tagName);
- }
- matchedTagList.add(tagName);
- }
- }
- }
+ postDelete(resource);
+ }
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.lookupTags(" + serviceName + ", " + tagNamePattern + ")");
- }
+ private void deleteTagResourceMap(RangerTagResourceMap tagResourceMap) throws Exception {
+ Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_RESOURCE_MAP, tagResourceMap.getId()));
+
+ preDelete(tagResourceMap);
+
+ fileStoreUtil.deleteFile(filePath);
- return matchedTagList;
+ postDelete(tagResourceMap);
}
- @Override
- public void deleteTagDefById(Long id) throws Exception {
- // TODO Auto-generated method stub
+ private List<RangerServiceResource> getServiceResources(RangerServiceResource resource) throws Exception {
+
+ List<RangerServiceResource> ret = null;
+
+ RangerServiceResourceSignature serializer = new RangerServiceResourceSignature(resource);
+ String signature = serializer.getSignature();
+ SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_SIGNATURE, signature);
+
+ ret = getServiceResources(filter);
+
+ return ret;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
----------------------------------------------------------------------
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 9dc4994..743df88 100644
--- 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
@@ -51,23 +51,17 @@ public class SearchFilter {
public static final String RESOURCE_SIGNATURE = "resourceSignature:"; // search
public static final String POLICY_TYPE = "policyType"; // search
- public static final String TAG_DEF_ID = "tagDefId"; // search
- public static final String TAG_DEF_EXTERNAL_ID = "tagDefExtId"; // search
- public static final String TAG_DEF_NAME = "tagDefName"; // search
-
- public static final String TAG_ID = "tagId"; // search
- public static final String TAG_EXTERNAL_ID = "tagExternalId"; // search
- public static final String TAG_NAME = "tagName"; // search
-
- public static final String TAG_RESOURCE_ID = "resourceId"; // search
- public static final String TAG_RESOURCE_EXTERNAL_ID = "externalResourceId"; // search
- public static final String TAG_RESOURCE_SERVICE_NAME = "resourceServiceName"; // search
- public static final String TAG_RESOURCE_SIGNATURE = "resourceSignature"; // search
-
-
- public static final String TAG_MAP_ID = "tagResourceMapId"; // search
- public static final String TAG_MAP_RESOURCE_ID = "tagResourceMapResourceId"; // search
- public static final String TAG_MAP_TAG_ID = "tagResourceMapTagId"; // search
+ public static final String TAG_DEF_ID = "tagDefId"; // search
+ public static final String TAG_DEF_GUID = "tagDefGuid"; // search
+ public static final String TAG_DEF_NAME = "tagDefName"; // search
+ public static final String TAG_ID = "tagId"; // search
+ public static final String TAG_GUID = "tagGuid"; // search
+ public static final String TAG_NAME = "tagName"; // search
+ public static final String TAG_RESOURCE_ID = "resourceId"; // search
+ public static final String TAG_RESOURCE_GUID = "resourceGuid"; // search
+ public static final String TAG_RESOURCE_SERVICE_NAME = "resourceServiceName"; // search
+ public static final String TAG_RESOURCE_SIGNATURE = "resourceSignature"; // search
+ public static final String TAG_MAP_ID = "tagResourceMapId"; // search
private Map<String, String> params = null;
private int startIndex = 0;
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/main/java/org/apache/ranger/plugin/util/ServiceTags.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/ServiceTags.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/ServiceTags.java
index 3159b2b..e56e942 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/util/ServiceTags.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/ServiceTags.java
@@ -44,13 +44,13 @@ import org.codehaus.jackson.map.annotate.JsonSerialize;
public class ServiceTags implements java.io.Serializable {
private static final long serialVersionUID = 1L;
- private String serviceName;
- private Long tagVersion;
- private Date tagUpdateTime;
- Map<Long, RangerTagDef> tagDefinitions;
- Map<Long, RangerTag> tags;
- List<RangerServiceResource> serviceResources;
- Map<Long, List<Long>> resourceToTagIds;
+ private String serviceName;
+ private Long tagVersion;
+ private Date tagUpdateTime;
+ private Map<Long, RangerTagDef> tagDefinitions;
+ private Map<Long, RangerTag> tags;
+ private List<RangerServiceResource> serviceResources;
+ private Map<Long, List<Long>> resourceToTagIds;
/**
* @return the serviceName
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/303f7b70/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java b/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java
index 797b083..e0f4865 100644
--- a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java
+++ b/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java
@@ -35,14 +35,10 @@ import org.apache.hadoop.fs.*;
import org.apache.ranger.authorization.hadoop.config.RangerConfiguration;
import org.apache.ranger.plugin.model.*;
import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
-import org.apache.ranger.plugin.policyengine.RangerAccessRequest;
-import org.apache.ranger.plugin.policyengine.RangerAccessResource;
import org.apache.ranger.plugin.store.file.ServiceFileStore;
import org.apache.ranger.plugin.store.file.TagFileStore;
-import org.apache.ranger.plugin.store.rest.ServiceRESTStore;
import org.apache.ranger.plugin.util.SearchFilter;
import org.apache.ranger.plugin.util.ServiceTags;
-import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -201,8 +197,8 @@ public class TestTagStore {
@Test
public void testTagStore_serviceresource() throws Exception {
- String externalId = "GUID_SERVICERESOURCE_TEST";
- String newExternalId = "NEW_GUID_SERVICERESOURCE_TEST";
+ String guid = "GUID_SERVICERESOURCE_TEST";
+ String newGuid = "NEW_GUID_SERVICERESOURCE_TEST";
Map<String, RangerPolicyResource> resourceResources = new HashMap<String, RangerPolicyResource>();
@@ -217,7 +213,7 @@ public class TestTagStore {
RangerServiceResource serviceResource = new RangerServiceResource();
serviceResource.setServiceName(serviceName);
serviceResource.setResourceSpec(resourceResources);
- serviceResource.setGuid(externalId);
+ serviceResource.setGuid(guid);
validator.preCreateServiceResource(serviceResource);
RangerServiceResource createdServiceResource = tagStore.createServiceResource(serviceResource);
@@ -229,7 +225,7 @@ public class TestTagStore {
assertEquals("createServiceResource() failed", initServiceResourceCount + 1, serviceResources == null ? 0 : serviceResources.size());
- createdServiceResource.setGuid(newExternalId);
+ createdServiceResource.setGuid(newGuid);
validator.preUpdateServiceResourceById(createdServiceResource.getId(), createdServiceResource);
RangerServiceResource updatedServiceResource = tagStore.updateServiceResource(createdServiceResource);
@@ -259,15 +255,15 @@ public class TestTagStore {
String tagName = "ssn";
- String externalResourceId = "GUID_SERVICERESOURCE_TEST";
- String externalTagId = "GUID_TAG_TEST";
+ String resourceGuid = "GUID_SERVICERESOURCE_TEST";
+ String tagGuid = "GUID_TAG_TEST";
List<RangerTag> tags = tagStore.getTags(filter);
int initTagCount = tags == null ? 0 : tags.size();
RangerTag tag = new RangerTag(tagName, new HashMap<String, String>());
- tag.setGuid(externalTagId);
+ tag.setGuid(tagGuid);
validator.preCreateTag(tag);
RangerTag createdTag = tagStore.createTag(tag);
@@ -291,7 +287,7 @@ public class TestTagStore {
serviceResource.setServiceName(serviceName);
serviceResource.setResourceSpec(resourceResources);
- serviceResource.setGuid(externalResourceId);
+ serviceResource.setGuid(resourceGuid);
validator.preCreateServiceResource(serviceResource);
RangerServiceResource createdServiceResource = tagStore.createServiceResource(serviceResource);
@@ -303,7 +299,7 @@ public class TestTagStore {
// Now create map
- RangerTagResourceMap tagResourceMap = validator.preCreateTagResourceMap(externalResourceId, externalTagId);
+ RangerTagResourceMap tagResourceMap = validator.preCreateTagResourceMap(tagGuid, resourceGuid);
RangerTagResourceMap createdTagResourceMap = tagStore.createTagResourceMap(tagResourceMap);
@@ -315,7 +311,7 @@ public class TestTagStore {
assertTrue("No tagged resources found!", CollectionUtils.isNotEmpty(resourceList) && CollectionUtils.size(resourceList) == 1);
// Delete all created entities
- RangerTagResourceMap map = validator.preDeleteTagResourceMap(externalResourceId, externalTagId);
+ RangerTagResourceMap map = validator.preDeleteTagResourceMap(tagGuid, resourceGuid);
tagStore.deleteTagResourceMapById(map.getId());
validator.preDeleteServiceResourceById(createdServiceResource.getId());