> On March 30, 2020, 4:46 p.m., Karthik Manamcheri wrote: > > You mention that the desired behavior is that the Map item should be > > appended (instead of overwritten). What do we do for the use-cases where > > the desired behavior is to over-write and not append? Does this change > > allow the flexibility to specify that? > > Na Li wrote: > The behavior is controled by the message type: > EntityPartialUpdateRequestV2. If the message type is EntityUpdateRequestV2, > overwriting will happen. > > Madhan Neethiraj wrote: > This change will cause existing use of EntityPartialUpdateRequestV2 to > break - as this will append to Map type attributes, instead of overwrite. To > avoid this issue, I suggest the following: > - add a flag EntityPartialUpdateRequestV2.isAppendCollectionAttributes. > The default value should be false, which would retain the current behavior > - add a flag in RequestContext.isAppendCollectionAttributes, and set this > value in NotificationHookConsumer where ENTITY_PARTIAL_UPDATE_V2 is handled > - update EntityGraphMapper.mapMapValue() and > EntityGraphMapper.mapArrayValue() to perform append/overwrite depending on > value of RequestContext.isAppendCollectionAttributes
I have done the following - add a flag EntityPartialUpdateRequestV2.isAppendCollectionAttributes. The default value should be false, which would retain the current behavior - add a flag in RequestContext.isAppendCollectionAttributes, and set this value in NotificationHookConsumer where ENTITY_PARTIAL_UPDATE_V2 is handled - update EntityGraphMapper.mapMapValue() to perform append/overwrite depending on value of RequestContext.isAppendCollectionAttributes I did not update EntityGraphMapper.mapArrayValue() as it is not clear to me what's the reasonable behavior to append. In map, we have key in [key, value] to indicate what to append or replace. - Na ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/72278/#review220113 ----------------------------------------------------------- On March 30, 2020, 3:58 p.m., Na Li wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/72278/ > ----------------------------------------------------------- > > (Updated March 30, 2020, 3:58 p.m.) > > > Review request for atlas, Ashutosh Mestry, Karthik Manamcheri, Sridhar K, and > Sarath Subramanian. > > > Bugs: atlas-3700 > https://issues.apache.org/jira/browse/atlas-3700 > > > Repository: atlas > > > Description > ------- > > 1) The model definition is in > "https://github.com/apache/atlas/blob/master/addons/models/4000-MachineLearning/4010-ml_model.json#L90" > > 2) I created a request of type EntityCreateRequestV2. It contains an entity > of type ml_model_build with an attribute "metadata", which is a map, and > contains key-value entries for "engineImageTag" and "engineImageName". > > 3) Then I created a request of type EntityPartialUpdateRequestV2. It contains > an entity of type ml_model_build with an attribute "metadata", which is a > map, and contains key-value entry for "updated_at". > > 4) In the properties of the entity ml_model_build, the * attribute > "*metadata" only contains key-value entry for "updated_at". > > Desired behavior: > > The attribute "metadata" should contains key-value entries for > "engineImageTag", "engineImageName" and "updated_at". > > Current behavior: > > the attribute "metadata" only contains key-value entry for "updated_at". > > > Diffs > ----- > > > intg/src/main/java/org/apache/atlas/model/instance/EntityMutationResponse.java > 1434a24590c4f4172378f98d83ca8d9e9ec9c4d8 > > repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphMapper.java > 75b016cca04801c4c1512c1527453fd59a11a6c4 > > repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2Test.java > 225b72cbef20b2329b36f550da60c1bbe1f95efa > > > Diff: https://reviews.apache.org/r/72278/diff/2/ > > > Testing > ------- > > add new test case for map attribute for partial update > > > Thanks, > > Na Li > >