> On Nov. 14, 2018, 1:53 p.m., Graham Wallis wrote:
> > I don't think that this change satisfies the original problem, because even 
> > with the change Atlas will only perform either a hard or soft delete of an 
> > entity, subject to configuration of the delete handler.
> > 
> > The requirement in the JIRA is that Atlas should always provide the ability 
> > to hard delete, regardless of configuration.
> > As an optional addition to that, if Atlas is configured for soft delete 
> > then it will be possible perform a soft delete (optionally followed by 
> > either a restore or a hard delete).
> > 
> > The purpose of the JIRA is to provide optional soft delete whilst 
> > continuing to support the mandatory hard delete function.
> > 
> > For the entity store: the way the patch is written, to satisfy the first 
> > part of the requirement (for provision of hard delete), Atlas would always 
> > have to be configured for hard delete. It would therefore never be possible 
> > to soft delete an entity. Technically that meets the requirements, but that 
> > was the case before the change - provided Atlas was configured for hard 
> > delete.
> > 
> > I think the change for the relationship store meets the above requirements 
> > - I think it is possible to call deleteById() and set the forceDelete 
> > parameter to true. Could we have a similar facility for the entity store?
> 
> Madhan Neethiraj wrote:
>     Graham - irrespective of the delete-handler specified in the 
> configuration, a REST API caller can specify the delete-type to use with 
> query parameter 'deleteType'. For example, to hard-delete an entity the API 
> call will be like: DELETE 
> api/atlas/v2/entity/guid/<entity-guid>?deleteType=HARD. Possible values are: 
> SOFT, HARD and DEFAULT. When this parameter is not specified, the 
> delete-handler specified in the configuration will be used.
>     
>     There is no change to store APIs with this patch. Users of store APIs 
> should set the desired delete-type by calling 
> RequestContext.get().setDeleteType(DeleteType) before calling the store APIs.
>     
>     Hope this helps.
> 
> Graham Wallis wrote:
>     OK - thanks Madhan - I am doing this directly from Java so not using the 
> REST APIs. I will try the RequestContext setter approach. Is there a reason 
> why the entity store and relationship store appear to handle this very 
> differently - one having an explicit parameter and the other need the caller 
> to set the RequestContext first?
> 
> Madhan Neethiraj wrote:
>     Graham - both entity-store and relationship-store have the same interface 
> wrt delete-handler. Perhaps you are referring to another patch for this JIRA, 
> https://reviews.apache.org/r/69305/, where delete-type is taken as parameter 
> to store APIs.

I don't agree. It is confusing that there appear to be multiple patches and 
reviews relating to this one JIRA, but ignoring the patches and looking at the 
latest master, the stores have different interfaces:

EntityStore: does not offer the caller a force parameter...

  public EntityMutationResponse deleteById(final String guid) throws 
AtlasBaseException 


RelationshipStore: provides the guid-only deleteById method which delegates to 
the additional method that accepts the boolean forceDelete...

  public void deleteById(String guid) throws AtlasBaseException {  
deleteById(guid, false);  }

  public void deleteById(String guid, boolean forceDelete) throws 
AtlasBaseException 
  
  
It's not clear what we are recommending to a non-REST caller - should it set 
the RequestContext for both stores? Or just for the entity store, and instead 
use the explicit forceDelete parameter when deleting a relationship?


- Graham


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


On Nov. 14, 2018, 10:50 p.m., Madhan Neethiraj wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/69334/
> -----------------------------------------------------------
> 
> (Updated Nov. 14, 2018, 10:50 p.m.)
> 
> 
> Review request for atlas, Ashutosh Mestry, keval bhatt, Kapildeo Nayak, Mehul 
> Parikh, Nikhil Bonte, Nixon Rodrigues, and Sarath Subramanian.
> 
> 
> Bugs: ATLAS-2774
>     https://issues.apache.org/jira/browse/ATLAS-2774
> 
> 
> Repository: atlas
> 
> 
> Description
> -------
> 
> support "deleteType" query-parameter for REST API calls
> 
> 
> Diffs
> -----
> 
>   intg/src/main/java/org/apache/atlas/AtlasConfiguration.java 1b3ce1edf 
>   intg/src/main/java/org/apache/atlas/store/DeleteType.java PRE-CREATION 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerDelegate.java
>  PRE-CREATION 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v1/SoftDeleteHandlerV1.java
>  0bcf0d6cb 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
>  733369692 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipStoreV2.java
>  21617dcc3 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v2/BulkImporterImpl.java
>  a3d31b64d 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphMapper.java
>  e8c8c0c8b 
>   repository/src/test/java/org/apache/atlas/TestModules.java d3d30d5d9 
>   
> repository/src/test/java/org/apache/atlas/repository/impexp/ExportImportTestBase.java
>  4b253ffb7 
>   
> repository/src/test/java/org/apache/atlas/repository/impexp/ExportServiceTest.java
>  936586ba2 
>   
> repository/src/test/java/org/apache/atlas/repository/impexp/ExportSkipLineageTest.java
>  3393b82d8 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v1/SoftReferenceTest.java
>  a86076464 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2Test.java
>  4fd28206c 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityTestBase.java
>  ba0551050 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipStoreHardDeleteV2Test.java
>  8955be721 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipStoreSoftDeleteV2Test.java
>  82b75daa4 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipStoreV2Test.java
>  cd1d72787 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v2/InverseReferenceUpdateHardDeleteV2Test.java
>  5d459081b 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v2/InverseReferenceUpdateSoftDeleteV2Test.java
>  76d6b7d47 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v2/InverseReferenceUpdateV2Test.java
>  ea647ecba 
>   server-api/src/main/java/org/apache/atlas/RequestContext.java 9a9bba6a8 
>   webapp/src/main/java/org/apache/atlas/web/filters/AuditFilter.java 
> adf3cf21d 
>   
> webapp/src/test/java/org/apache/atlas/web/adapters/TestEntityRESTDelete.java 
> PRE-CREATION 
> 
> 
> Diff: https://reviews.apache.org/r/69334/diff/7/
> 
> 
> Testing
> -------
> 
> Pre-commit test run - 
> https://builds.apache.org/view/A/view/Atlas/job/PreCommit-ATLAS-Build-Test/828
> 
> 
> Thanks,
> 
> Madhan Neethiraj
> 
>

Reply via email to