You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ni...@apache.org on 2019/03/05 14:36:28 UTC
[atlas] 03/07: ATLAS-3029,
ATLAS-3020: Audit APIs for classification updates. Part-2.
This is an automated email from the ASF dual-hosted git repository.
nixon pushed a commit to branch branch-1.0
in repository https://gitbox.apache.org/repos/asf/atlas.git
commit 6f3aa81452000e432a1b9a4b4abbae88cd172f63
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": []
+ }
+ }
+}