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



Sid - I suggest to consider the following alternate approach to address this 
issue:

  public class EntityGraphMapper{
    private AtlasEntityHeader constructHeader(AtlasEntity entity, final 
AtlasEntityType type, AtlasVertex vertex) {
        /*
         * replace current implementation with a call to 
entityRetriever.toAtlasEntityHeaderWithClassifications()
         * 
        AtlasEntityHeader header = new AtlasEntityHeader(entity.getTypeName());
 
        header.setGuid(getIdFromVertex(vertex));
        header.setStatus(entity.getStatus());
        header.setIsIncomplete(entity.getIsIncomplete());
 
        for (AtlasAttribute attribute : type.getUniqAttributes().values()) {
            header.setAttribute(attribute.getName(), 
entity.getAttribute(attribute.getName()));
        }
 
        return header;
         *
         */

        return entityRetriever.toAtlasEntityHeaderWithClassifications(vertex);
    }
  }
  
  public class EntityMutationResponse {
    JsonIgnore
    public void addEntity(EntityOperation op, AtlasEntityHeader header) {
        // if an entity is already included in CREATE, update the header, to 
capture propagated classifications
        if (op == EntityOperation.UPDATE || op == 
EntityOperation.PARTIAL_UPDATE) {
            if (entityHeaderExists(getCreatedEntities(), header.getGuid())) {
                // return;
                op = EntityOperaton.CREATE;
            }
        }
        
        ...
    }
  }

- Madhan Neethiraj


On May 22, 2020, 11:05 p.m., Sidharth Mishra wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/72540/
> -----------------------------------------------------------
> 
> (Updated May 22, 2020, 11:05 p.m.)
> 
> 
> Review request for atlas, Ashutosh Mestry, Madhan Neethiraj, and Sarath 
> Subramanian.
> 
> 
> Bugs: ATLAS-3806
>     https://issues.apache.org/jira/browse/ATLAS-3806
> 
> 
> Repository: atlas
> 
> 
> Description
> -------
> 
> Classifications information missing in notification events during entity 
> create/update
> 
> 
> Diffs
> -----
> 
>   
> webapp/src/main/java/org/apache/atlas/notification/EntityNotificationListenerV2.java
>  a677b315c 
> 
> 
> Diff: https://reviews.apache.org/r/72540/diff/1/
> 
> 
> Testing
> -------
> 
> For add new ctas notification looks like (Just shown for ctas entity):
> {
>     "version": {
>         "version": "1.0.0",
>         "versionParts": [
>             1
>         ]
>     },
>     "msgCompressionKind": "NONE",
>     "msgSplitIdx": 1,
>     "msgSplitCount": 1,
>     "msgSourceIP": "172.27.168.128",
>     "msgCreatedBy": "",
>     "msgCreationTime": 1590176023734,
>     "message": {
>         "type": "ENTITY_NOTIFICATION_V2",
>         "entity": {
>             "typeName": "hive_table",
>             "attributes": {
>                 "owner": "anonymous",
>                 "createTime": 1590176022000,
>                 "qualifiedName": "sid_hive_db.sid_hive_table_ctas7@bulk",
>                 "name": "sid_hive_table_ctas7"
>             },
>             "guid": "9a0f46e1-99ad-4b1d-8818-ee60778b5619",
>             "status": "ACTIVE",
>             "displayText": "sid_hive_table_ctas7",
>             "classificationNames": [
>                 "ETL",
>                 "PII"
>             ],
>             "classifications": [
>                 {
>                     "typeName": "ETL",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 },
>                 {
>                     "typeName": "PII",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 }
>             ]
>         },
>         "operationType": "CLASSIFICATION_ADD",
>         "eventTime": 1590176022456
>     }
> }
>    
> 
> Add new tag:
> ---------------
> {
>     "version": {
>         "version": "1.0.0",
>         "versionParts": [
>             1
>         ]
>     },
>     "msgCompressionKind": "NONE",
>     "msgSplitIdx": 1,
>     "msgSplitCount": 1,
>     "msgSourceIP": "172.27.168.128",
>     "msgCreatedBy": "",
>     "msgCreationTime": 1590181680675,
>     "message": {
>         "type": "ENTITY_NOTIFICATION_V2",
>         "entity": {
>             "typeName": "hive_table",
>             "attributes": {
>                 "owner": "anonymous",
>                 "createTime": 1590048670000,
>                 "qualifiedName": "sid_hive_db.sid_hive_table_1@bulk",
>                 "name": "sid_hive_table_1"
>             },
>             "guid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>             "status": "ACTIVE",
>             "displayText": "sid_hive_table_1",
>             "classificationNames": [
>                 "ETL",
>                 "PII",
>                 "Fact"
>             ],
>             "classifications": [
>                 {
>                     "typeName": "ETL",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 },
>                 {
>                     "typeName": "PII",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 },
>                 {
>                     "typeName": "Fact",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 }
>             ]
>         },
>         "operationType": "CLASSIFICATION_ADD",
>         "eventTime": 1590181673717
>     }
> }
>     {
>     "version": {
>         "version": "1.0.0",
>         "versionParts": [
>             1
>         ]
>     },
>     "msgCompressionKind": "NONE",
>     "msgSplitIdx": 1,
>     "msgSplitCount": 1,
>     "msgSourceIP": "172.27.168.128",
>     "msgCreatedBy": "",
>     "msgCreationTime": 1590181680710,
>     "message": {
>         "type": "ENTITY_NOTIFICATION_V2",
>         "entity": {
>             "typeName": "hive_process",
>             "attributes": {
>                 "qualifiedName": 
> "sid_hive_db.sid_hive_table_ctas3@bulk:1590120919000",
>                 "name": "create table sid_hive_table_ctas3 as select * from 
> sid_hive_table_1"
>             },
>             "guid": "36cc1a73-9c55-4a66-9d59-fa1a2f535791",
>             "status": "ACTIVE",
>             "displayText": "create table sid_hive_table_ctas3 as select * 
> from sid_hive_table_1",
>             "classificationNames": [
>                 "ETL",
>                 "PII",
>                 "Fact"
>             ],
>             "classifications": [
>                 {
>                     "typeName": "ETL",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 },
>                 {
>                     "typeName": "PII",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 },
>                 {
>                     "typeName": "Fact",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 }
>             ]
>         },
>         "operationType": "CLASSIFICATION_ADD",
>         "eventTime": 1590181673717
>     }
> }
>    
> {
>     "version": {
>         "version": "1.0.0",
>         "versionParts": [
>             1
>         ]
>     },
>     "msgCompressionKind": "NONE",
>     "msgSplitIdx": 1,
>     "msgSplitCount": 1,
>     "msgSourceIP": "172.27.168.128",
>     "msgCreatedBy": "",
>     "msgCreationTime": 1590181680714,
>     "message": {
>         "type": "ENTITY_NOTIFICATION_V2",
>         "entity": {
>             "typeName": "hive_table",
>             "attributes": {
>                 "owner": "anonymous",
>                 "createTime": 1590120919000,
>                 "qualifiedName": "sid_hive_db.sid_hive_table_ctas3@bulk",
>                 "name": "sid_hive_table_ctas3"
>             },
>             "guid": "ab302745-a843-4164-8166-017f85c7e15e",
>             "status": "ACTIVE",
>             "displayText": "sid_hive_table_ctas3",
>             "classificationNames": [
>                 "ETL",
>                 "PII",
>                 "Fact"
>             ],
>             "classifications": [
>                 {
>                     "typeName": "ETL",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 },
>                 {
>                     "typeName": "PII",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 },
>                 {
>                     "typeName": "Fact",
>                     "entityGuid": "410cb0f3-6df7-4523-ba23-8cd65752a811",
>                     "entityStatus": "ACTIVE",
>                     "propagate": true,
>                     "validityPeriods": [],
>                     "removePropagationsOnEntityDelete": false
>                 }
>             ]
>         },
>         "operationType": "CLASSIFICATION_ADD",
>         "eventTime": 1590181673717
>     }
> }
> 
> 
> Thanks,
> 
> Sidharth Mishra
> 
>

Reply via email to