X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3f18ac306f64ef81a9173c6ae452a428ac816309..055b9792b7692d6c42f4e13d38dc6cd008396a6f:/sdk/python/arvados/commands/arv_copy.py?ds=sidebyside diff --git a/sdk/python/arvados/commands/arv_copy.py b/sdk/python/arvados/commands/arv_copy.py index 93fd6b598a..79dabd38b2 100755 --- a/sdk/python/arvados/commands/arv_copy.py +++ b/sdk/python/arvados/commands/arv_copy.py @@ -102,6 +102,9 @@ def main(): copy_opts.add_argument( '--project-uuid', dest='project_uuid', help='The UUID of the project at the destination to which the collection or workflow should be copied.') + copy_opts.add_argument( + '--storage-classes', dest='storage_classes', + help='Comma separated list of storage classes to be used when saving data to the destinaton Arvados instance.') copy_opts.add_argument( 'object_uuid', @@ -114,6 +117,9 @@ def main(): parents=[copy_opts, arv_cmd.retry_opt]) args = parser.parse_args() + if args.storage_classes: + args.storage_classes = [x for x in args.storage_classes.strip().replace(' ', '').split(',') if x] + if args.verbose: logger.setLevel(logging.DEBUG) else: @@ -410,6 +416,9 @@ def create_collection_from(c, src, dst, args): if not body["name"]: body['name'] = "copied from " + collection_uuid + if args.storage_classes: + body['storage_classes_desired'] = args.storage_classes + body['owner_uuid'] = args.project_uuid dst_collection = dst.collections().create(body=body, ensure_unique_name=True).execute(num_retries=args.retries) @@ -563,7 +572,7 @@ def copy_collection(obj_uuid, src, dst, args): if progress_writer: progress_writer.report(obj_uuid, bytes_written, bytes_expected) data = src_keep.get(word) - dst_locator = dst_keep.put(data) + dst_locator = dst_keep.put(data, classes=(args.storage_classes or [])) dst_locators[blockhash] = dst_locator bytes_written += loc.size dst_manifest.write(' ')