+def create_collection_from(c, src, dst, args):
+ """Create a new collection record on dst, and copy Docker metadata if
+ available."""
+
+ collection_uuid = c['uuid']
+
+ del c['uuid']
+
+ if 'properties' in c:
+ del c['properties']
+
+ c['owner_uuid'] = args.project_uuid
+
+ dst_collection = dst.collections().create(body=c, ensure_unique_name=True).execute(num_retries=args.retries)
+
+ # Create docker_image_repo+tag and docker_image_hash links
+ # at the destination.
+ for link_class in ("docker_image_repo+tag", "docker_image_hash"):
+ docker_links = src.links().list(filters=[["head_uuid", "=", collection_uuid], ["link_class", "=", link_class]]).execute(num_retries=args.retries)['items']
+
+ for d in docker_links:
+ body={
+ 'head_uuid': dst_collection['uuid'],
+ 'link_class': link_class,
+ 'name': d['name'],
+ }
+ body['owner_uuid'] = args.project_uuid
+
+ lk = dst.links().create(body=body).execute(num_retries=args.retries)
+ logger.debug('created dst link {}'.format(lk))
+
+ return dst_collection
+