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/10/03 19:44:50 UTC
incubator-ranger git commit: RANGER-660: updated TagSync with an
option to delete tags on removal of tag-resource map
Repository: incubator-ranger
Updated Branches:
refs/heads/tag-policy 9aa396b50 -> 819426928
RANGER-660: updated TagSync with an option to delete tags on removal of tag-resource map
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/81942692
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/81942692
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/81942692
Branch: refs/heads/tag-policy
Commit: 819426928a7615a4de538e37c6d226def8fb21ad
Parents: 9aa396b
Author: Abhay Kulkarni <ak...@hortonworks.com>
Authored: Fri Oct 2 16:39:43 2015 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Sat Oct 3 10:37:52 2015 -0700
----------------------------------------------------------------------
.../ranger/plugin/store/file/TagFileStore.java | 1 +
.../apache/ranger/plugin/util/ServiceTags.java | 30 ++++++++++++++++++--
.../java/org/apache/ranger/biz/TagDBStore.java | 1 +
.../ranger/rest/ServiceTagsProcessor.java | 30 ++++++++++++++------
tagsync/samples/tags.json | 1 +
.../source/atlas/AtlasNotificationMapper.java | 1 +
.../main/resources/etc/ranger/data/tags.json | 3 +-
7 files changed, 54 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/81942692/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 8f94164..6a94f04 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
@@ -1075,6 +1075,7 @@ public class TagFileStore extends AbstractTagStore {
ServiceTags ret = new ServiceTags();
ret.setOp(ServiceTags.OP_ADD_OR_UPDATE);
+ ret.setTagModel(ServiceTags.TAGMODEL_SHARED);
boolean tagsChanged = true;
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/81942692/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 146c3f9..d03e7bc 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
@@ -47,7 +47,12 @@ public class ServiceTags implements java.io.Serializable {
public static final String OP_ADD_OR_UPDATE = "add_or_update";
public static final String OP_DELETE = "delete";
- private String op;
+ public static final String TAGMODEL_SHARED = "shared";
+ public static final String TAGMODEL_RESOURCE_PRIVATE = "resource_private";
+
+
+ private String op = OP_ADD_OR_UPDATE;
+ private String tagModel = TAGMODEL_SHARED;
private String serviceName;
private Long tagVersion;
private Date tagUpdateTime;
@@ -64,6 +69,13 @@ public class ServiceTags implements java.io.Serializable {
}
/**
+ * @return the tagModel
+ */
+ public String getTagModel() {
+ return tagModel;
+ }
+
+ /**
* @return the serviceName
*/
public String getServiceName() {
@@ -77,6 +89,14 @@ public class ServiceTags implements java.io.Serializable {
this.op = op;
}
+
+ /**
+ * @param tagModel the tagModel to set
+ */
+ public void setTagModel(String tagModel) {
+ this.tagModel = tagModel;
+ }
+
/**
* @param serviceName the serviceName to set
*/
@@ -154,8 +174,12 @@ public class ServiceTags implements java.io.Serializable {
}
public StringBuilder toString(StringBuilder sb) {
- sb.append("ServiceTags={").append("tagVersion=").append(tagVersion).append(", ")
- .append("tagUpdateTime={").append(tagUpdateTime).append("} ")
+ sb.append("ServiceTags={")
+ .append("op=").append(op).append(", ")
+ .append("tagModel=").append(tagModel).append(", ")
+ .append("serviceName=").append(serviceName).append(", ")
+ .append("tagVersion=").append(tagVersion).append(", ")
+ .append("tagUpdateTime={").append(tagUpdateTime).append("}")
.append("}");
return sb;
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/81942692/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
index 98a6e87..300ba8d 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
@@ -891,6 +891,7 @@ public class TagDBStore extends AbstractTagStore {
ret = new ServiceTags();
ret.setOp(ServiceTags.OP_ADD_OR_UPDATE);
+ ret.setTagModel(ServiceTags.TAGMODEL_SHARED);
ret.setServiceName(xxService.getName());
ret.setTagVersion(xxService.getTagVersion());
ret.setTagUpdateTime(xxService.getTagUpdateTime());
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/81942692/security-admin/src/main/java/org/apache/ranger/rest/ServiceTagsProcessor.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/ServiceTagsProcessor.java b/security-admin/src/main/java/org/apache/ranger/rest/ServiceTagsProcessor.java
index b34313f..586f6b7 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceTagsProcessor.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceTagsProcessor.java
@@ -51,6 +51,10 @@ public class ServiceTagsProcessor {
}
if (tagStore != null && serviceTags != null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("serviceTags: op=" + serviceTags.getOp());
+ LOG.debug("serviceTags: tagModel=" + serviceTags.getTagModel());
+ }
String op = serviceTags.getOp();
if (StringUtils.equalsIgnoreCase(op, ServiceTags.OP_ADD_OR_UPDATE)) {
@@ -237,9 +241,9 @@ public class ServiceTagsProcessor {
}
// Get all tags associated with this resourceId
- List<Long> tagMapsToDelete = null;
+ List<Long> tagsToDelete = null;
try {
- tagMapsToDelete = tagStore.getTagIdsForResourceId(resourceInStore.getId());
+ tagsToDelete = tagStore.getTagIdsForResourceId(resourceInStore.getId());
} catch (Exception exception) {
LOG.error("RangerTags cannot be retrieved for resource with guid=" + resourceInStore.getGuid());
throw exception;
@@ -270,8 +274,8 @@ public class ServiceTagsProcessor {
tagResourceMap = tagStore.createTagResourceMap(tagResourceMap);
}
- if(tagMapsToDelete != null) {
- tagMapsToDelete.remove((Long)tagInStore.getId());
+ if(tagsToDelete != null) {
+ tagsToDelete.remove((Long)tagInStore.getId());
}
}
} catch (Exception exception) {
@@ -279,12 +283,12 @@ public class ServiceTagsProcessor {
throw exception;
}
- if (CollectionUtils.isNotEmpty(tagMapsToDelete)) {
+ if (CollectionUtils.isNotEmpty(tagsToDelete)) {
Long tagId = null;
try {
- for(int i = 0; i < tagMapsToDelete.size(); i++) {
- tagId = tagMapsToDelete.get(i);
+ for(int i = 0; i < tagsToDelete.size(); i++) {
+ tagId = tagsToDelete.get(i);
RangerTagResourceMap tagResourceMap = tagStore.getTagResourceMapForTagAndResourceId(tagId, resourceInStore.getId());
@@ -293,11 +297,19 @@ public class ServiceTagsProcessor {
}
if (LOG.isDebugEnabled()) {
- LOG.debug("Deleted tagResourceMap(tagId=" + tagId + ", resourceId=" + resourceId);
+ LOG.debug("Deleted tagResourceMap(tagId=" + tagId + ", resourceId=" + resourceInStore.getId());
+ }
+
+ if (StringUtils.equals(serviceTags.getTagModel(), ServiceTags.TAGMODEL_RESOURCE_PRIVATE)) {
+ tagStore.deleteTag(tagId);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Deleted tag(tagId=" + tagId + ") as tagModel=" + ServiceTags.TAGMODEL_RESOURCE_PRIVATE);
+ }
}
}
} catch(Exception exception) {
- LOG.error("deleteTagResourceMap failed, tagId=" + tagId + ", resourceId=" + resourceId);
+ LOG.error("deleteTagResourceMap failed, tagId=" + tagId + ", resourceId=" + resourceInStore.getId());
throw exception;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/81942692/tagsync/samples/tags.json
----------------------------------------------------------------------
diff --git a/tagsync/samples/tags.json b/tagsync/samples/tags.json
index 1b24fc8..3028f9d 100644
--- a/tagsync/samples/tags.json
+++ b/tagsync/samples/tags.json
@@ -1,5 +1,6 @@
{
"op": "add_or_update",
+ "tagModel": "resource_private",
"serviceName": "cl1_hive",
"tagVersion": 1,
"tagUpdateTime": "20150924-22:26:33.000-+0000",
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/81942692/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasNotificationMapper.java
----------------------------------------------------------------------
diff --git a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasNotificationMapper.java b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasNotificationMapper.java
index 44c4973..2c843af 100644
--- a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasNotificationMapper.java
+++ b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasNotificationMapper.java
@@ -152,6 +152,7 @@ class AtlasNotificationMapper {
ret = new ServiceTags();
ret.setOp(ServiceTags.OP_ADD_OR_UPDATE);
+ ret.setTagModel(ServiceTags.TAGMODEL_RESOURCE_PRIVATE);
ret.setServiceName(serviceResource.getServiceName());
ret.setServiceResources(serviceResources);
ret.setTagDefinitions(tagDefs);
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/81942692/tagsync/src/main/resources/etc/ranger/data/tags.json
----------------------------------------------------------------------
diff --git a/tagsync/src/main/resources/etc/ranger/data/tags.json b/tagsync/src/main/resources/etc/ranger/data/tags.json
index 28e7922..274cf69 100644
--- a/tagsync/src/main/resources/etc/ranger/data/tags.json
+++ b/tagsync/src/main/resources/etc/ranger/data/tags.json
@@ -1,5 +1,6 @@
{
- "op":"create_or_update",
+ "op":"add_or_update",
+ "tagModel":"shared",
"serviceName": "cl1_hive",
"tagVersion": 24,
"tagUpdateTime": "20150901-20:03:17.000-+0000",