TACC-Cloud / tapis-cli

Next-generation Tapis CLI
BSD 3-Clause "New" or "Revised" License
14 stars 5 forks source link

Support incremental update #166

Open mwvaughn opened 5 years ago

mwvaughn commented 5 years ago

A very good suggestion came in from our testing pool, which was to let the apps|systems-update commands process not just complete JSON documents, but also JSON fragments.

This should be doable as follows:

  1. Accept the uploaded JSON as document
  2. Fetch the full app or system definition from the service and filter out extraneous fields as record
  3. Recursively search record for a structure matching document
  4. Merge or replace the matching section of record with document
  5. Update the app or system
mwvaughn commented 5 years ago

A note: For individual keys in record we might be able to accept arguments like key1=value1 in *-update command.

For example: tapis apps update foobar-0.1 executionSystem=hpc-tacc-frontera to replace an app's execution system.