Technical Forum
Ask questions. Discover Answers.
cancel
Showing results for 
Search instead for 
Did you mean: 

Partial Updates to Metadata for GTM and LTM

syncretism
Nimbostratus
Nimbostratus

I'd like to add metadata to WIPs without overwriting any existing data (or, if the same metadata exists, to update that).

 

I connect to iControl REST with HTTP "PATCH" method and a JSON payload, and that works well enough, but the payload totally overwrites whatever already existed. Looking in the LTM audit log, I see:

 

Jul 24 13:12:55 <snip/> notice icrd_child[17595]: 01420002:5: AUDIT - pid=17595 user=myUser folder=/Common module=(tmos)# status=[Command OK] cmd_data=modify ltm virtual /Common/myPool-443 { metadata replace-all-with { dummyMetadata { persist false value IgnoreMe } } }

 

Is there an alternative to replace-all-with? If so, is there a different method or request I should use?

1 ACCEPTED SOLUTION

Satoshi_Toyosa1
F5 Employee
F5 Employee

I presume you have a number of meta-data names and associated values inside the metadata property as shown in an example below and you want to replace/delete/modify just one of them. Unfortunately, you can perform only replace-all-with. If you need to partially replace, you need to first get the array (as shown in the square bracket), manipulate it, and send it back.

"metadata": [ { "name": "satMeta", "persist": "true", "value": "Sat" }, { "name": "toyoMeta", "persist": "false", "value": "Toyo" } ],

This limitation is also discussed in ltm internal datagroup (can't modify a subset of records and need to replace-all).

View solution in original post

2 REPLIES 2

Satoshi_Toyosa1
F5 Employee
F5 Employee

I presume you have a number of meta-data names and associated values inside the metadata property as shown in an example below and you want to replace/delete/modify just one of them. Unfortunately, you can perform only replace-all-with. If you need to partially replace, you need to first get the array (as shown in the square bracket), manipulate it, and send it back.

"metadata": [ { "name": "satMeta", "persist": "true", "value": "Sat" }, { "name": "toyoMeta", "persist": "false", "value": "Toyo" } ],

This limitation is also discussed in ltm internal datagroup (can't modify a subset of records and need to replace-all).

This is too bad, but we'll make it work; at least I know what to do. Thank you for this, and the information you have given me in the past!