You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ab...@apache.org on 2019/10/24 01:06:52 UTC
[ranger] branch master updated: RANGER-2630: Ensure that entity
deletes are handled even when Atlas sets deleted entity's state as not
ACTIVE
This is an automated email from the ASF dual-hosted git repository.
abhay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 79b0c12 RANGER-2630: Ensure that entity deletes are handled even when Atlas sets deleted entity's state as not ACTIVE
79b0c12 is described below
commit 79b0c121a607ba8653f7983ed52ddbe986533fd4
Author: Abhay Kulkarni <ab...@apache.org>
AuthorDate: Wed Oct 23 18:06:40 2019 -0700
RANGER-2630: Ensure that entity deletes are handled even when Atlas sets deleted entity's state as not ACTIVE
---
.../tagsync/source/atlas/AtlasNotificationMapper.java | 17 ++++++++++-------
.../tagsync/source/atlas/EntityNotificationWrapper.java | 4 ++--
2 files changed, 12 insertions(+), 9 deletions(-)
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 a4cab28..ed4ba17 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
@@ -46,8 +46,7 @@ public class AtlasNotificationMapper {
private static void logUnhandledEntityNotification(EntityNotificationWrapper entityNotification) {
- boolean skipLogging = entityNotification.getIsEntityCreateOp() && entityNotification.getIsEmptyClassifications()
- || ! entityNotification.getIsEntityActive();
+ boolean skipLogging = entityNotification.getIsEntityCreateOp() && entityNotification.getIsEmptyClassifications();
if (!skipLogging) {
boolean loggingNeeded = false;
@@ -67,13 +66,15 @@ public class AtlasNotificationMapper {
}
if (loggingNeeded) {
- LOG.warn("Did not process entity notification for [" + entityTypeName + "]");
+ if (!entityNotification.getIsEntityTypeHandled()) {
+ LOG.warn("Tag-sync is not enabled to handle notifications for Entity-type:[" + entityNotification.getEntityTypeName() + "]");
+ }
+ LOG.warn("Dropped process entity notification for Atlas-Entity [" + entityNotification.getRangerAtlasEntity() + "]");
}
}
}
- @SuppressWarnings("unchecked")
public static ServiceTags processEntityNotification(EntityNotificationWrapper entityNotification) {
ServiceTags ret = null;
@@ -117,7 +118,7 @@ public class AtlasNotificationMapper {
if (opType != null) {
switch (opType) {
case ENTITY_CREATE:
- ret = ! entityNotification.getIsEmptyClassifications();
+ ret = entityNotification.getIsEntityActive() && !entityNotification.getIsEmptyClassifications();
if (!ret) {
if (LOG.isDebugEnabled()) {
LOG.debug("ENTITY_CREATE notification is ignored, as there are no traits associated with the entity. Ranger will get necessary information from any subsequent TRAIT_ADDED notification");
@@ -125,7 +126,7 @@ public class AtlasNotificationMapper {
}
break;
case ENTITY_UPDATE:
- ret = ! entityNotification.getIsEmptyClassifications();
+ ret = entityNotification.getIsEntityActive() && !entityNotification.getIsEmptyClassifications();
if (!ret) {
if (LOG.isDebugEnabled()) {
LOG.debug("ENTITY_UPDATE notification is ignored, as there are no traits associated with the entity.");
@@ -133,10 +134,12 @@ public class AtlasNotificationMapper {
}
break;
case ENTITY_DELETE:
+ ret = true;
+ break;
case CLASSIFICATION_ADD:
case CLASSIFICATION_UPDATE:
case CLASSIFICATION_DELETE: {
- ret = true;
+ ret = entityNotification.getIsEntityActive();
break;
}
default:
diff --git a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/EntityNotificationWrapper.java b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/EntityNotificationWrapper.java
index 9781aa6..c2445fb 100644
--- a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/EntityNotificationWrapper.java
+++ b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/EntityNotificationWrapper.java
@@ -90,7 +90,7 @@ public class EntityNotificationWrapper {
rangerAtlasEntity = new RangerAtlasEntity(typeName, guid, atlasEntity.getAttributes());
entityTypeName = atlasEntity.getTypeName();
isEntityActive = atlasEntity.getStatus() == AtlasEntity.Status.ACTIVE;
- isEntityTypeHandled = isEntityActive && AtlasResourceMapperUtil.isEntityTypeHandled(entityTypeName);
+ isEntityTypeHandled = AtlasResourceMapperUtil.isEntityTypeHandled(entityTypeName);
isEntityDeleteOp = EntityNotificationV2.OperationType.ENTITY_DELETE == v2Notification.getOperationType();
isEntityCreateOp = EntityNotificationV2.OperationType.ENTITY_CREATE == v2Notification.getOperationType();
isEmptyClassifications = CollectionUtils.isEmpty(atlasEntity.getClassifications());
@@ -163,7 +163,7 @@ public class EntityNotificationWrapper {
rangerAtlasEntity = new RangerAtlasEntity(typeName, guid, atlasEntity.getValues());
entityTypeName = atlasEntity.getTypeName();
isEntityActive = atlasEntity.getId().getState() == Id.EntityState.ACTIVE;
- isEntityTypeHandled = isEntityActive && AtlasResourceMapperUtil.isEntityTypeHandled(entityTypeName);
+ isEntityTypeHandled = AtlasResourceMapperUtil.isEntityTypeHandled(entityTypeName);
isEntityDeleteOp = EntityNotificationV1.OperationType.ENTITY_DELETE == v1Notification.getOperationType();
isEntityCreateOp = EntityNotificationV1.OperationType.ENTITY_CREATE == v1Notification.getOperationType();
isEmptyClassifications = CollectionUtils.isEmpty(v1Notification.getAllTraits());