3036: Fix arv-put to write name/owner of collections object directly when
[arvados.git] / sdk / python / arvados / commands / put.py
index d3efa63a9bf4f71b0f60f35e3fac457b8b418fbf..71e31b24184079a00ccfc69ecccdd75b83e97350 100644 (file)
@@ -447,7 +447,6 @@ def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr):
         # Register the resulting collection in Arvados.
         collection = arvados.api().collections().create(
             body={
-                'uuid': writer.finish(),
                 'manifest_text': writer.manifest_text(),
                 },
             ).execute()
@@ -456,7 +455,12 @@ def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr):
         output = collection['uuid']
         if project_link is not None:
             try:
-                create_project_link(output, project_link)
+                if 'name' in collection:
+                    arvados.api().collections().update(uuid=output,
+                                                       body={"owner_uuid": project_link["tail_uuid"],
+                                                             "name": project_link["name"]}).execute()
+                else:
+                    create_project_link(output, project_link)
             except apiclient.errors.Error as error:
                 print >>stderr, (
                     "arv-put: Error adding Collection to project: {}.".format(