----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/71737/ -----------------------------------------------------------
(Updated Nov. 12, 2019, 11:54 p.m.) Review request for atlas, Ashutosh Mestry, Madhan Neethiraj, and Sarath Subramanian. Changes ------- Addressed the review comments Bugs: ATLAS-3477 https://issues.apache.org/jira/browse/ATLAS-3477 Repository: atlas Description ------- As part of this solution users can purge the entities which are already soft deleted. This will be useful as someone may be interested to purge some list of soft deleted entities from Atlas. Due to governance compliances, only admin can perform purge of entities. Purge will also create separate Audit entry at HBase similar to delete entity operation. Diffs (updated) ----- authorization/src/main/java/org/apache/atlas/authorize/AtlasPrivilege.java 59c596d66 client/client-v2/src/main/java/org/apache/atlas/AtlasClientV2.java 199d6bf58 intg/src/main/java/org/apache/atlas/listener/EntityChangeListenerV2.java 444167eae intg/src/main/java/org/apache/atlas/model/audit/EntityAuditEventV2.java e9cc7cd3d intg/src/main/java/org/apache/atlas/model/instance/EntityMutationResponse.java 7ace00dff intg/src/main/java/org/apache/atlas/model/instance/EntityMutations.java daf4ca88c repository/src/main/java/org/apache/atlas/repository/audit/EntityAuditListenerV2.java 43a9b842c repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasEntityStore.java b94590bf1 repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java d2544df4f repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityChangeNotifier.java 3389d2465 repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java 17a96493f repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasGraphUtilsV2.java 4d57d8bc8 server-api/src/main/java/org/apache/atlas/RequestContext.java 3d2a18f0c webapp/src/main/java/org/apache/atlas/notification/EntityNotificationListenerV2.java 48f0cd3c2 webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java 464d46f1e webapp/src/test/java/org/apache/atlas/web/integration/EntityV2JerseyResourceIT.java 5d506bbc2 Diff: https://reviews.apache.org/r/71737/diff/2/ Changes: https://reviews.apache.org/r/71737/diff/1-2/ Testing ------- IT has been added. Validated manually by running below mentioned queries and REST: a) create table thursday_07_11_1 (id int); create table thursday_07_11_1_ctas as select * from thursday_07_11_1; create table thursday_07_11_2 (id int); create table thursday_07_11_2_ctas as select * from thursday_07_11_2; b) The above will create two lineages. Go to Atlas UI and get the vertices for atleast any two. c) Using rest delete those two entities or use below query: drop table thursday_07_11_1; drop table thursday_07_11_1_ctas; drop table thursday_07_11_2; drop table thursday_07_11_2_ctas; REST delete example: DELETE http://localhopst:31000/api/atlas/v2/entity/guid/7dd7fd9c-0185-41a5-aff0-4212fa7eb87c d) Now use the same guids and call purge REST: DELETE http://localhost:31000/api/atlas/admin/purge/?guid=75983487-9e29-41ee-9bae-53f0a0b54c05&guid=98bee463-8810-402a-bcdc-3eb00bf50365 Check the response which will return all the successfully purged entities e) For each guid check if the audit has separate new entry for purge. REST used: GET http://localhost:31000/api/atlas/v2/entity/7b6806c1-8daf-4e0f-8d10-672a192968f1/audit Example Response: [ { "entityId": "7b6806c1-8daf-4e0f-8d10-672a192968f1", "timestamp": 1573161789065, "user": "admin", "action": "ENTITY_PURGE", "details": "Purged entity", "eventKey": "7b6806c1-8daf-4e0f-8d10-672a192968f1:1573161789065:1", "entity": null, "type": null }, { "entityId": "7b6806c1-8daf-4e0f-8d10-672a192968f1", "timestamp": 1573161729972, "user": "impala", "action": "ENTITY_DELETE", "details": "Deleted entity", "eventKey": "7b6806c1-8daf-4e0f-8d10-672a192968f1:1573161729972:1", "entity": null, "type": null }, { "entityId": "7b6806c1-8daf-4e0f-8d10-672a192968f1", "timestamp": 1573161727305, "user": "admin", "action": "ENTITY_UPDATE", "details": "Updated: {\"typeName\":\"hive_column\",\"attributes\":{\"owner\":\"admin\",\"replicatedTo\":null,\"replicatedFrom\":null,\"qualifiedName\":\"default.thursday_07_11_5.id@cm\",\"name\":\"id\",\"description\":null,\"comment\":null,\"position\":0,\"type\":\"int\"},\"guid\":\"7b6806c1-8daf-4e0f-8d10-672a192968f1\",\"isIncomplete\":false,\"status\":\"ACTIVE\",\"createdBy\":\"impala\",\"updatedBy\":\"admin\",\"createTime\":1573161723180,\"updateTime\":1573161727305,\"version\":0,\"labels\":[]}", "eventKey": "7b6806c1-8daf-4e0f-8d10-672a192968f1:1573161727305:0", "entity": null, "type": null }, { "entityId": "7b6806c1-8daf-4e0f-8d10-672a192968f1", "timestamp": 1573161723180, "user": "impala", "action": "ENTITY_CREATE", "details": "Created: {\"typeName\":\"hive_column\",\"attributes\":{\"owner\":\"admin\",\"qualifiedName\":\"default.thursday_07_11_5.id@cm\",\"name\":\"id\",\"comment\":null,\"position\":0,\"type\":\"int\"},\"guid\":\"7b6806c1-8daf-4e0f-8d10-672a192968f1\",\"isIncomplete\":false,\"provenanceType\":0,\"version\":0,\"relationshipAttributes\":{\"table\":{\"guid\":\"c5ae4503-b498-493c-86b5-d8d909c6b16a\",\"typeName\":\"hive_table\",\"uniqueAttributes\":{\"qualifiedName\":\"default.thursday_07_11_5@cm\"},\"relationshipType\":\"hive_table_columns\"}},\"proxy\":false}", "eventKey": "7b6806c1-8daf-4e0f-8d10-672a192968f1:1573161723180:2", "entity": null, "type": null } ] Thanks, Sidharth Mishra