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();
+        }
+    }
 }

Reply via email to