You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by am...@apache.org on 2019/01/22 06:31:26 UTC

[atlas] branch master updated (cd51cef -> de7fe47)

This is an automated email from the ASF dual-hosted git repository.

amestry pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git.


    from cd51cef  Merge branch 'master' of https://gitbox.apache.org/repos/asf/atlas
     new fa7d167  ATLAS-3029: Audit APIs for classification updates.
     new de7fe47  ATLAS-3029, ATLAS-3020: Audit APIs for classification updates. Part-2.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../store/graph/v2/ClassificationAssociator.java       | 18 ++++++++++--------
 .../store/graph/v2/ClassificationAssociatorTest.java   |  5 +++++
 ...prop-Tn.json => col-entity-T1-prop-Tn-No-Guid.json} |  3 ---
 ...-Tx-prop-T1.json => header-Tx-prop-T1-No-Guid.json} |  3 ---
 4 files changed, 15 insertions(+), 14 deletions(-)
 copy repository/src/test/resources/json/classification-association/{col-entity-T1-prop-Tn.json => col-entity-T1-prop-Tn-No-Guid.json} (79%)
 copy repository/src/test/resources/json/classification-association/{header-Tx-prop-T1.json => header-Tx-prop-T1-No-Guid.json} (83%)


[atlas] 02/02: ATLAS-3029, ATLAS-3020: Audit APIs for classification updates. Part-2.

Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

amestry pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git

commit de7fe47a2b714a023c5aa3d4f3b5648306ae7af1
Author: Ashutosh Mestry <am...@hortonworks.com>
AuthorDate: Mon Jan 21 22:31:13 2019 -0800

    ATLAS-3029, ATLAS-3020: Audit APIs for classification updates. Part-2.
---
 .../store/graph/v2/ClassificationAssociator.java   |  4 ++-
 .../graph/v2/ClassificationAssociatorTest.java     |  5 +++
 .../col-entity-T1-prop-Tn-No-Guid.json             | 31 +++++++++++++++++
 .../header-Tx-prop-T1-No-Guid.json                 | 39 ++++++++++++++++++++++
 4 files changed, 78 insertions(+), 1 deletion(-)

diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociator.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociator.java
index 057598c..628c1cc 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociator.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociator.java
@@ -310,7 +310,9 @@ public class ClassificationAssociator {
                 return list;
             }
 
-            return list.stream().filter(x -> x.getEntityGuid().equals(guid)).collect(Collectors.toList());
+            return list.stream().filter(x -> x != null &&
+                                    (StringUtils.isEmpty(guid) || StringUtils.isEmpty(x.getEntityGuid()))
+                                    || x.getEntityGuid().equals(guid)).collect(Collectors.toList());
         }
     }
 }
diff --git a/repository/src/test/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociatorTest.java b/repository/src/test/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociatorTest.java
index ab5bb2b..16074b6 100644
--- a/repository/src/test/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociatorTest.java
+++ b/repository/src/test/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociatorTest.java
@@ -163,6 +163,7 @@ public class ClassificationAssociatorTest {
 
     @Test
     public void updaterTests() throws IOException {
+        updaterAssert("header-None", "col-entity-None");
         updaterAssert("header-PII", "col-entity-None", PROCESS_ADD + ":PII");
         updaterAssert("header-PII", "col-entity-PII", new String[]{PROCESS_UPDATE + ":PII"});
         updaterAssert("header-None", "col-entity-PII", new String[]{PROCESS_DELETE + ":PII"});
@@ -181,6 +182,10 @@ public class ClassificationAssociatorTest {
         updaterAssert("header-Tx-prop-T1", "col-entity-T1-prop-Tn",
                 PROCESS_DELETE + ":T1",
                             PROCESS_ADD + ":Tx");
+        updaterAssert("header-Tx-prop-T1-No-Guid", "col-entity-T1-prop-Tn-No-Guid",
+                PROCESS_DELETE + ":Tn",
+                             PROCESS_UPDATE + ":T1",
+                             PROCESS_ADD + ":Tx");
     }
 
 
diff --git a/repository/src/test/resources/json/classification-association/col-entity-T1-prop-Tn-No-Guid.json b/repository/src/test/resources/json/classification-association/col-entity-T1-prop-Tn-No-Guid.json
new file mode 100644
index 0000000..4a6fa80
--- /dev/null
+++ b/repository/src/test/resources/json/classification-association/col-entity-T1-prop-Tn-No-Guid.json
@@ -0,0 +1,31 @@
+{
+  "typeName": "hive_column",
+  "attributes": {
+    "owner": "hive",
+    "createTime": 1547071410000,
+    "qualifiedName": "stocks.daily@cl1",
+    "name": "daily"
+  },
+  "status": "ACTIVE",
+  "displayText": "daily",
+  "classifications": [
+    {
+      "typeName": "T1",
+      "attributes": {},
+      "entityStatus": "ACTIVE",
+      "propagate": false,
+      "validityPeriods": [],
+      "removePropagationsOnEntityDelete": false
+    },
+    {
+      "typeName": "Tn",
+      "attributes": {},
+      "entityStatus": "ACTIVE",
+      "propagate": false,
+      "validityPeriods": [],
+      "removePropagationsOnEntityDelete": false
+    }
+  ],
+  "meaningNames": [],
+  "meanings": []
+}
diff --git a/repository/src/test/resources/json/classification-association/header-Tx-prop-T1-No-Guid.json b/repository/src/test/resources/json/classification-association/header-Tx-prop-T1-No-Guid.json
new file mode 100644
index 0000000..0771851
--- /dev/null
+++ b/repository/src/test/resources/json/classification-association/header-Tx-prop-T1-No-Guid.json
@@ -0,0 +1,39 @@
+{
+  "guidHeaderMap": {
+    "0ce68113-77fe-4ed1-9585-69371202bd74": {
+      "typeName": "hive_column",
+      "attributes": {
+        "owner": "hive",
+        "qualifiedName": "hortoniabank.us_customers.nationalid@cl1",
+        "name": "nationalid"
+      },
+      "status": "ACTIVE",
+      "displayText": "nationalid",
+      "classificationNames": [
+        "T1", "Tx"
+      ],
+      "classifications": [
+        {
+          "typeName": "Tx",
+          "attributes": {
+            "type": "ssn"
+          },
+          "entityStatus": "ACTIVE",
+          "propagate": true,
+          "removePropagationsOnEntityDelete": false
+        },
+        {
+          "typeName": "T1",
+          "attributes": {
+            "type": "ssn"
+          },
+          "entityStatus": "ACTIVE",
+          "propagate": true,
+          "removePropagationsOnEntityDelete": false
+        }
+      ],
+      "meaningNames": [],
+      "meanings": []
+    }
+  }
+}


[atlas] 01/02: ATLAS-3029: Audit APIs for classification updates.

Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

amestry pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git

commit fa7d167537dfcdc48401e810519615723a4c664e
Author: Ashutosh Mestry <am...@hortonworks.com>
AuthorDate: Mon Jan 21 21:32:42 2019 -0800

    ATLAS-3029: Audit APIs for classification updates.
---
 .../store/graph/v2/ClassificationAssociator.java           | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociator.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociator.java
index 11d008f..057598c 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociator.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/ClassificationAssociator.java
@@ -171,7 +171,7 @@ public class ClassificationAssociator {
             operationListMap.put(op, results);
         }
 
-        private void addClassifications(String entityToBeChangedGuid, String typeName, String qualifiedName, List<AtlasClassification> list) {
+        private void addClassifications(String entityGuid, String typeName, String qualifiedName, List<AtlasClassification> list) {
             if (CollectionUtils.isEmpty(list)) {
                 return;
             }
@@ -179,16 +179,16 @@ public class ClassificationAssociator {
             String status = STATUS_DONE;
             String classificationNames = getClassificationNames(list);
             try {
-                entitiesStore.addClassifications(entityToBeChangedGuid, list);
+                entitiesStore.addClassifications(entityGuid, list);
             } catch (AtlasBaseException e) {
                 status = STATUS_PARTIAL;
                 LOG.warn("{}:{}:{} -> {}: {}.", PROCESS_UPDATE, typeName, qualifiedName, classificationNames, status);
             }
 
-            summarize(PROCESS_ADD, entityToBeChangedGuid, typeName, qualifiedName, classificationNames, status);
+            summarize(PROCESS_ADD, entityGuid, typeName, qualifiedName, classificationNames, status);
         }
 
-        private void updateClassifications(String entityToBeChangedGuid, String typeName, String qualifiedName, List<AtlasClassification> list) {
+        private void updateClassifications(String entityGuid, String typeName, String qualifiedName, List<AtlasClassification> list) {
             if (CollectionUtils.isEmpty(list)) {
                 return;
             }
@@ -197,16 +197,16 @@ public class ClassificationAssociator {
             String classificationNames = getClassificationNames(list);
 
             try {
-                entitiesStore.updateClassifications(entityToBeChangedGuid, list);
+                entitiesStore.updateClassifications(entityGuid, list);
             } catch (AtlasBaseException e) {
                 status = STATUS_PARTIAL;
                 LOG.warn("{}:{}:{} -> {}: {}.", PROCESS_UPDATE, typeName, qualifiedName, classificationNames, status);
             }
 
-            summarize(PROCESS_UPDATE, entityToBeChangedGuid, typeName, qualifiedName, classificationNames, status);
+            summarize(PROCESS_UPDATE, entityGuid, typeName, qualifiedName, classificationNames, status);
         }
 
-        private void deleteClassifications(String typeName, String entityGuid, String qualifiedName, List<AtlasClassification> list) {
+        private void deleteClassifications(String entityGuid, String typeName, String qualifiedName, List<AtlasClassification> list) {
             if (CollectionUtils.isEmpty(list)) {
                 return;
             }