- for k,v in self.arvrunner.get_uploaded().iteritems():
- self._pathmap[k] = MapperEnt(v.resolved, self.collection_pattern % v.resolved[5:], "File")
+ collection = None
+ if self.single_collection:
+ collection = arvados.collection.Collection(api_client=self.arvrunner.api,
+ keep_client=self.arvrunner.keep_client,
+ num_retries=self.arvrunner.num_retries)
+
+ already_uploaded = self.arvrunner.get_uploaded()
+ copied_files = set()
+ for k in referenced_files:
+ loc = k["location"]
+ if loc in already_uploaded:
+ v = already_uploaded[loc]
+ self._pathmap[loc] = MapperEnt(v.resolved, self.collection_pattern % urllib.unquote(v.resolved[5:]), v.type, True)
+ if self.single_collection:
+ basename = k["basename"]
+ if basename not in collection:
+ self.addentry({"location": loc, "class": v.type, "basename": basename}, collection, ".", [])
+ copied_files.add((loc, basename, v.type))