From 4fb6c7b4b1df3bdcd5c40cf65241bf2e42a07d22 Mon Sep 17 00:00:00 2001 From: Madhan Neethiraj <madhan@apache.org> Date: Mon, 14 Dec 2020 21:47:01 -0800 Subject: [PATCH] ATLAS-4077: updated Python client to fix errors found while running sample - #2 --- atlas-examples/sample-app/src/main/python/request_json/typedef_create.json | 27 ++++++++++++++++++++------- atlas-examples/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): -- libgit2 0.27.1