13752: De-duplicate file and stream names in collections.file_names.
authorTom Clegg <tclegg@veritasgenetics.com>
Mon, 17 Sep 2018 21:49:21 +0000 (17:49 -0400)
committerTom Clegg <tclegg@veritasgenetics.com>
Mon, 17 Sep 2018 21:49:21 +0000 (17:49 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

services/api/app/models/collection.rb

index 85b12a377b15d5445fa241375b8d6a422977fbee..7e561712abb732aff7945132fb15bd77a704405e 100644 (file)
@@ -192,11 +192,16 @@ class Collection < ArvadosModel
   def manifest_files
     return '' if !self.manifest_text
 
+    done = {}
     names = ''
     self.manifest_text.scan(/ \d+:\d+:(\S+)/) do |name|
+      next if done[name]
+      done[name] = true
       names << name.first.gsub('\040',' ') + "\n"
     end
     self.manifest_text.scan(/^\.\/(\S+)/m) do |stream_name|
+      next if done[stream_name]
+      done[stream_name] = true
       names << stream_name.first.gsub('\040',' ') + "\n"
     end
     names