[ 
https://issues.apache.org/jira/browse/ATLAS-3700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Na Li updated ATLAS-3700:
-------------------------
    Description: 
*Details:*

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".

 
 Added 'isAppendOnPartialUpdate' option in attribute-def, to enable appending 
of values to array/map type attributes during partial-update operation.

Example:
{code:java}
{
    "name":        "metadata",
    "typeName":    "map<string,string>",
    "isIndexable": false,
    "isOptional":  true,
    "isUnique":    false,
    "options": {
      "isAppendOnPartialUpdate": "true"
    }
  }{code}
 

The value specified for this attribute in partial-update API calls will be 
appended to existing value - if present. Full-update API calls will overwrite 
the value of the attribute, as it does currently; there is no change in 
full-update behavior.

  was:
*Details:*

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".

 
Added 'isAppendOnPartialUpdate' option in attribute-def, to enable appending of 
values to array/map type attributes during partial-update operation. Example:

{
    "name":        "metadata",
    "typeName":    "map<string,string>",
    "isIndexable": false,
    "isOptional":  true,
    "isUnique":    false,
    "options": \{
      "isAppendOnPartialUpdate": "true"
    }
  }

The value specified for this attribute in partial-update API calls will be 
appended to existing value - if present. Full-update API calls will overwrite 
the value of the attribute, as it does currently; there is no change in 
full-update behavior.


> Partial update to Atlas overwrite map entry with different keys
> ---------------------------------------------------------------
>
>                 Key: ATLAS-3700
>                 URL: https://issues.apache.org/jira/browse/ATLAS-3700
>             Project: Atlas
>          Issue Type: Bug
>          Components:  atlas-core
>    Affects Versions: 3.0.0
>            Reporter: Na Li
>            Assignee: Madhan Neethiraj
>            Priority: Major
>             Fix For: 2.1.0, 3.0.0
>
>         Attachments: ATLAS-3700.003.patch, ATLAS-3700.004.patch, 
> ATLAS-3700.patch
>
>
> *Details:*
> 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".
>  
>  Added 'isAppendOnPartialUpdate' option in attribute-def, to enable appending 
> of values to array/map type attributes during partial-update operation.
> Example:
> {code:java}
> {
>     "name":        "metadata",
>     "typeName":    "map<string,string>",
>     "isIndexable": false,
>     "isOptional":  true,
>     "isUnique":    false,
>     "options": {
>       "isAppendOnPartialUpdate": "true"
>     }
>   }{code}
>  
> The value specified for this attribute in partial-update API calls will be 
> appended to existing value - if present. Full-update API calls will overwrite 
> the value of the attribute, as it does currently; there is no change in 
> full-update behavior.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to