You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2020/12/15 17:50:33 UTC

[atlas] 01/02: ATLAS-4077: updated Python client to fix errors found while running sample - #2

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

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

commit 4fb6c7b4b1df3bdcd5c40cf65241bf2e42a07d22
Author: Madhan Neethiraj <ma...@apache.org>
AuthorDate: Mon Dec 14 21:47:01 2020 -0800

    ATLAS-4077: updated Python client to fix errors found while running sample - #2
---
 .../main/python/request_json/typedef_create.json   | 27 ++++++++++++++++------
 .../sample-app/src/main/python/sample_client.py    |  4 ++--
 intg/src/main/python/apache_atlas/model/typedef.py | 20 ++++++++++++++--
 3 files changed, 40 insertions(+), 11 deletions(-)

diff --git a/atlas-examples/sample-app/src/main/python/request_json/typedef_create.json b/atlas-examples/sample-app/src/main/python/request_json/typedef_create.json
index 5ebfc83..70018ad 100644
--- a/atlas-examples/sample-app/src/main/python/request_json/typedef_create.json
+++ b/atlas-examples/sample-app/src/main/python/request_json/typedef_create.json
@@ -3,6 +3,7 @@
     {
       "name":        "sample_tableType",
       "description": "sample_tableType",
+      "category":    "ENUM",
       "typeVersion": "1.0",
       "elementDefs": [
         { "value": "MANAGED",  "ordinal": 1 },
@@ -13,6 +14,7 @@
   "structDefs": [
     {
       "name":        "sample_serdeType",
+      "category":    "STRUCT",
       "typeVersion": "1.0",
       "attributeDefs": [
         { "name": "name",  "typeName": "string", "cardinality": "SINGLE", "isOptional": false, "isUnique": false, "isIndexable": true },
@@ -22,15 +24,18 @@
   ],
   "classificationDefs": [
     {
-      "name": "sample_pii",
+      "name":        "sample_pii",
+      "category":    "CLASSIFICATION",
       "typeVersion": "1.0"
     },
     {
-      "name": "sample_finance",
+      "name":        "sample_finance",
+      "category":    "CLASSIFICATION",
       "typeVersion": "1.0"
     },
     {
-      "name": "sample_metric",
+      "name":        "sample_metric",
+      "category":    "CLASSIFICATION",
       "typeVersion": "1.0"
     }
   ],
@@ -38,6 +43,7 @@
     {
       "name":        "sample_db",
       "superTypes":  [ "DataSet" ],
+      "category":    "ENTITY",
       "typeVersion": "1.0",
       "attributeDefs": [
         { "name": "locationUri", "typeName": "string", "cardinality": "SINGLE", "isOptional": false, "isUnique": false, "isIndexable": true },
@@ -46,8 +52,9 @@
     },
     {
       "name":        "sample_table",
-      "typeVersion": "1.0",
       "superTypes":  [ "DataSet" ],
+      "category":    "ENTITY",
+      "typeVersion": "1.0",
       "attributeDefs": [
         { "name": "createTime",     "typeName": "date",                 "cardinality": "SINGLE", "isOptional": true, "isUnique": false, "isIndexable": true },
         { "name": "tableType",      "typeName": "sample_tableType",     "cardinality": "SINGLE", "isOptional": true, "isUnique": false, "isIndexable": true },
@@ -58,8 +65,9 @@
     },
     {
       "name":        "sample_column",
-      "typeVersion": "1.0",
       "superTypes":  [ "DataSet" ],
+      "category":    "ENTITY",
+      "typeVersion": "1.0",
       "attributeDefs": [
         { "name": "dataType", "typeName": "string", "cardinality": "SINGLE", "isOptional": true, "isUnique": false, "isIndexable": true },
         { "name": "comment",  "typeName": "string", "cardinality": "SINGLE", "isOptional": true, "isUnique": false, "isIndexable": true }
@@ -67,8 +75,9 @@
     },
     {
       "name":        "sample_process",
-      "typeVersion": "1.0",
       "superTypes":  [ "Process" ],
+      "category":    "ENTITY",
+      "typeVersion": "1.0",
       "attributeDefs": [
         { "name": "userName",   "typeName": "string", "cardinality": "SINGLE", "isOptional": true,  "isUnique": false, "isIndexable": true },
         { "name": "startTime",  "typeName": "long",   "cardinality": "SINGLE", "isOptional": true,  "isUnique": false, "isIndexable": true },
@@ -82,6 +91,7 @@
     {
       "name":                 "sample_db_tables",
       "description":          "Tables of a db",
+      "category":             "RELATIONSHIP",
       "typeVersion":          "1.0",
       "relationshipCategory": "AGGREGATION",
       "propagateTags":        "NONE",
@@ -91,6 +101,7 @@
     {
       "name":                 "sample_table_columns",
       "description":          "Columns of a table",
+      "category":             "RELATIONSHIP",
       "typeVersion":          "1.0",
       "relationshipCategory": "COMPOSITION",
       "propagateTags":        "NONE",
@@ -102,10 +113,11 @@
     {
       "name":        "sample_bm",
       "description": "Sample business metadata",
+      "category":    "BUSINESS_METADATA",
       "typeVersion": "1.0",
       "attributeDefs": [
         {
-		  "name":        "attr1",
+          "name":        "attr1",
           "typeName":    "boolean",
           "description": "Boolean attribute",
           "cardinality": "SINGLE",
@@ -147,6 +159,7 @@
     {
       "name":        "sample_bm_mv",
       "description": "Sample business metadata with multi-value attributes",
+      "category":    "BUSINESS_METADATA",
       "typeVersion": "1.0",
       "attributeDefs": [
         {
diff --git a/atlas-examples/sample-app/src/main/python/sample_client.py b/atlas-examples/sample-app/src/main/python/sample_client.py
index 732b280..33c430f 100644
--- a/atlas-examples/sample-app/src/main/python/sample_client.py
+++ b/atlas-examples/sample-app/src/main/python/sample_client.py
@@ -48,10 +48,10 @@ class SampleApp:
 
         client = AtlasClient(url, (username, password))
 
-        self.__entity_example(client)
-
         self.__typedef_example(client)
 
+        self.__entity_example(client)
+
         self.__lineage_example(client)
 
         self.__discovery_example(client)
diff --git a/intg/src/main/python/apache_atlas/model/typedef.py b/intg/src/main/python/apache_atlas/model/typedef.py
index 30e2750..f6fdf1a 100644
--- a/intg/src/main/python/apache_atlas/model/typedef.py
+++ b/intg/src/main/python/apache_atlas/model/typedef.py
@@ -102,7 +102,18 @@ class AtlasRelationshipDef(AtlasStructDef):
     def __init__(self, attrs={}):
         AtlasStructDef.__init__(self, attrs)
 
-        self.category = TypeCategory.RELATIONSHIP.name
+        self.category             = TypeCategory.RELATIONSHIP.name
+        self.relationshipCategory = attrs.get('relationshipCategory');
+        self.relationshipLabel    = attrs.get('relationshipLabel');
+        self.propagateTags        = attrs.get('propagateTags');
+        self.endDef1              = attrs.get('endDef1');
+        self.endDef2              = attrs.get('endDef2');
+
+    def type_coerce_attrs(self):
+        super(AtlasRelationshipDef, self).type_coerce_attrs()
+
+        self.endDef1 = type_coerce(self.endDef1, AtlasRelationshipEndDef)
+        self.endDef2 = type_coerce(self.endDef2, AtlasRelationshipEndDef)
 
 
 class AtlasBusinessMetadataDef(AtlasStructDef):
@@ -168,7 +179,12 @@ class AtlasRelationshipEndDef(AtlasBase):
     def __init__(self, attrs={}):
         AtlasBase.__init__(self, attrs)
 
-        self.cardinality = non_null(self.cardinality, Cardinality.SINGLE.name)
+        self.type              = attrs.get('type')
+        self.name              = attrs.get('name')
+        self.isContainer       = attrs.get('isContainer')
+        self.cardinality       = attrs.get('cardinality')
+        self.isLegacyAttribute = attrs.get('isLegacyAttribute')
+        self.description       = attrs.get('description')
 
 
 class AtlasTypesDef(AtlasBase):