-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72046/
-----------------------------------------------------------

(Updated Feb. 5, 2020, 10:26 a.m.)


Review request for atlas, Ashutosh Mestry, Madhan Neethiraj, Nixon Rodrigues, 
and Sarath Subramanian.


Changes
-------

Addressed review comments and code refactoring.


Bugs: ATLAS-3534
    https://issues.apache.org/jira/browse/ATLAS-3534


Repository: atlas


Description
-------

Created separate endpoints to associate Namespace attributes to entity


Diffs (updated)
-----

  common/src/main/java/org/apache/atlas/repository/Constants.java 0b28243 
  intg/src/main/java/org/apache/atlas/AtlasErrorCode.java 2054513 
  intg/src/main/java/org/apache/atlas/model/instance/AtlasEntity.java 1b033b9 
  intg/src/main/java/org/apache/atlas/type/AtlasNamespaceType.java a141d4a 
  intg/src/main/java/org/apache/atlas/type/AtlasTypeRegistry.java 97e27d0 
  
repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasEntityStore.java
 928c70d 
  
repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
 25284e9 
  
repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphMapper.java
 3d42d1f 
  
repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphRetriever.java
 dc4c399 
  webapp/src/main/java/org/apache/atlas/web/rest/EntityREST.java 6845121 


Diff: https://reviews.apache.org/r/72046/diff/11/

Changes: https://reviews.apache.org/r/72046/diff/10-11/


Testing
-------

Basic testing is done.

Create NamespaceDef sports:

curl --location --request POST 
'http://localhost:21000/api/atlas/v2/types/typedefs' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data-raw '{
    "namespaceDefs": [
        {
            "name": "sports",
            "description": "Sample sports",
            "serviceType": "NAMESPACES",
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "sports_name",
                    "typeName": "string",
                    "options": {
                        "applicableEntityTypes": "[\"hdfs_path\", 
\"hive_table\"]",
                        "maxStrLength": "50"
                    },
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "includeInNotification": true,
                    "isUnique": false
                },
                {
                    "name": "no_of_players",
                    "typeName": "int",
                    "options": {
                        "applicableEntityTypes": "[\"hdfs_path\", 
\"hive_column\"]"
                    },
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "includeInNotification": true,
                    "isUnique": false
                }
            ]
        }
    ]
}'


Create NamespaceDef vehicle:

curl --location --request POST 
'http://localhost:21000/api/atlas/v2/types/typedefs' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data-raw '{
    "namespaceDefs": [
        {
            "name": "vehicle",
            "description": "Sample vehicle",
            "serviceType": "NAMESPACES",
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "vehicle_name",
                    "typeName": "string",
                    "options": {
                        "applicableEntityTypes": "[\"hdfs_path\", 
\"hive_table\"]",
                        "maxStrLength": "50"
                    },
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "includeInNotification": true,
                    "isUnique": false
                },
                {
                    "name": "no_of_wheels",
                    "typeName": "int",
                    "options": {
                        "applicableEntityTypes": "[\"hdfs_path\", 
\"hive_column\"]"
                    },
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "includeInNotification": true,
                    "isUnique": false
                }
            ]
        }
    ]
}'


Create hdfs_path entity:

curl --location --request POST 'http://localhost:21000/api/atlas/v2/entity' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data-raw '{
    "entity": {
        "guid": "-1",
        "typeName": "hdfs_path",
        "attributes": {
            "clusterName": "cm",
            "description": "desc",
            "location": "localhost",
            "name": "hdfs_path_entity1",
            "owner": "admin",
            "ownerType": "USER",
            "qualifiedName": "hdfs_path_entity1@cm",
            "path": "local_path"
        }
    }
}'


Associate namespace attributes with the created entity


curl --location --request POST 
'http://localhost:21000/api/atlas/v2/entity/guid/ea633224-ccfe-4573-9060-43190cd9531a/namespaces'
 \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data-raw '{
"sports":{
        "sports_name":"cricket",
        "no_of_players":11
},
"vehicle":{
        "vehicle_name": "Car"
}
}'


Add one more namespace attribute in the entity

curl --location --request POST 
'http://localhost:21000/api/atlas/v2/entity/guid/ea633224-ccfe-4573-9060-43190cd9531a/namespaces'
 \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data-raw '{
"vehicle":{
        "no_of_wheels": 4
}
}'


Update sports_name attribute with new value as Hockey

curl --location --request PUT 
'http://localhost:21000/api/atlas/v2/entity/guid/ea633224-ccfe-4573-9060-43190cd9531a/namespaces'
 \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data-raw '{
"sports":{
        "sports_name": "Hockey"
}
}'


Delete vehicle.vehicle_name namespace attribute

curl --location --request DELETE 
'http://localhost:21000/api/atlas/v2/entity/guid/ea633224-ccfe-4573-9060-43190cd9531a/namespaces'
 \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data-raw '{
"vehicle":{
        "vehicle_name": "Car"
}
}'


Thanks,

Mandar Ambawane

Reply via email to