Repository: atlas Updated Branches: refs/heads/master 37d7b8b8f -> dc71d3d42
ATLAS-2542: import-Hbase doesn't update entity already present in Atlas Signed-off-by: Madhan Neethiraj <mad...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/dc71d3d4 Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/dc71d3d4 Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/dc71d3d4 Branch: refs/heads/master Commit: dc71d3d42fec60c5bd763054591a6c25a1d01862 Parents: 37d7b8b Author: rmani <rm...@hortonworks.com> Authored: Sun Apr 8 20:16:54 2018 -0700 Committer: Madhan Neethiraj <mad...@apache.org> Committed: Sun Apr 8 23:44:07 2018 -0700 ---------------------------------------------------------------------- .../apache/atlas/hbase/bridge/HBaseBridge.java | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/dc71d3d4/addons/hbase-bridge/src/main/java/org/apache/atlas/hbase/bridge/HBaseBridge.java ---------------------------------------------------------------------- diff --git a/addons/hbase-bridge/src/main/java/org/apache/atlas/hbase/bridge/HBaseBridge.java b/addons/hbase-bridge/src/main/java/org/apache/atlas/hbase/bridge/HBaseBridge.java index a546ff7..af67e78 100644 --- a/addons/hbase-bridge/src/main/java/org/apache/atlas/hbase/bridge/HBaseBridge.java +++ b/addons/hbase-bridge/src/main/java/org/apache/atlas/hbase/bridge/HBaseBridge.java @@ -52,6 +52,7 @@ import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -449,6 +450,7 @@ public class HBaseBridge { try { ret = findEntityInAtlas(HBaseDataTypes.HBASE_NAMESPACE.getName(), nsQualifiedName); + clearRelationshipAttributes(ret); } catch (Exception e) { ret = null; // entity doesn't exist in Atlas } @@ -461,6 +463,7 @@ public class HBaseBridge { try { ret = findEntityInAtlas(HBaseDataTypes.HBASE_TABLE.getName(), tableQualifiedName); + clearRelationshipAttributes(ret); } catch (Exception e) { ret = null; // entity doesn't exist in Atlas } @@ -473,6 +476,7 @@ public class HBaseBridge { try { ret = findEntityInAtlas(HBaseDataTypes.HBASE_COLUMN_FAMILY.getName(), columnFamilyQualifiedName); + clearRelationshipAttributes(ret); } catch (Exception e) { ret = null; // entity doesn't exist in Atlas } @@ -658,4 +662,28 @@ public class HBaseBridge { System.out.println(" namespace1:tbl2"); System.out.println(" namespace2:tbl1"); } + + private void clearRelationshipAttributes(AtlasEntityWithExtInfo entity) { + if (entity != null) { + clearRelationshipAttributes(entity.getEntity()); + + if (entity.getReferredEntities() != null) { + clearRelationshipAttributes(entity.getReferredEntities().values()); + } + } + } + + private void clearRelationshipAttributes(Collection<AtlasEntity> entities) { + if (entities != null) { + for (AtlasEntity entity : entities) { + clearRelationshipAttributes(entity); + } + } + } + + private void clearRelationshipAttributes(AtlasEntity entity) { + if (entity != null && entity.getRelationshipAttributes() != null) { + entity.getRelationshipAttributes().clear(); + } + } }