5737: Merge branch 'master' into 5737-ruby231
[arvados.git] / apps / workbench / app / models / pipeline_instance_work_unit.rb
index 8285424a2982c0f0630f01abc509619e6b556918..293a77c099d829ae58e58d07784932ba1e9c5fdf 100644 (file)
@@ -1,11 +1,11 @@
 class PipelineInstanceWorkUnit < ProxyWorkUnit
   def children
-    return self.my_children if self.my_children
+    return @my_children if @my_children
 
     items = []
 
     jobs = {}
-    results = Job.where(uuid: self.proxied.job_ids.values).results
+    results = Job.where(uuid: @proxied.job_ids.values).results
     results.each do |j|
       jobs[j.uuid] = j
     end
@@ -18,18 +18,29 @@ class PipelineInstanceWorkUnit < ProxyWorkUnit
           if job[:uuid] and jobs[job[:uuid]]
             items << jobs[job[:uuid]].work_unit(name)
           else
-            items << JobWorkUnit.new(job, name)
+            items << JobWorkUnit.new(job, name, uuid)
           end
         else
-          items << ProxyWorkUnit.new(c, name)
+          items << JobWorkUnit.new(c, name, uuid)
         end
       else
-        self.unreadable_children = true
+        @unreadable_children = true
         break
       end
     end
 
-    self.my_children = items
+    @my_children = items
+  end
+
+  def outputs
+    items = []
+    components = get(:components)
+    components.each do |name, c|
+      if c.is_a?(Hash)
+        items << c[:output_uuid] if c[:output_uuid]
+      end
+    end
+    items
   end
 
   def uri
@@ -40,4 +51,8 @@ class PipelineInstanceWorkUnit < ProxyWorkUnit
   def title
     "pipeline"
   end
+
+  def template_uuid
+    get(:pipeline_template_uuid)
+  end
 end