Story #3699

Updated by Tim Pierce over 5 years ago

Use case: copy pipeline instance from one Arvados instance to another, so that the target instance can run the pipeline.

$ arv-copy [--recursive=true/false] [pipeline-instance-uuid] [source-arvados] [target-arvados]

By default, arv-copy exports the specified pipeline instance from the _source-arvados_ instance and imports it
# Need to _target-arvados_.

The @--recursive@ option, which defaults
be able to true, also copies the following data:
copy collections (copy blocks and then copy manifest_text)
* # Need to be able to copy docker images (collection copy + docker specific tags)
* # Need to be able to copy pipeline templates (copy name, components)
* ** Provide --recursive option that copies input collections and docker images
** Fetch/push
git repository (clone entire repository; repository, update name of repository to use in components of target pipeline template)

If @--recursive=false@, copy only the pipeline instance, but emit a warning that the user will have to fix the pipeline template UUID by hand.

arv-copy works only on pipeline instances. It returns an error if _pipeline-instance-uuid_ refers to anything other than a pipeline instance.
[--recursive] [pipeline-instance-uuid] [remote instance] [target project]