8876: when computing cpu and running times, use the work unit's start and finished...
authorradhika <radhika@curoverse.com>
Tue, 7 Jun 2016 16:55:59 +0000 (12:55 -0400)
committerradhika <radhika@curoverse.com>
Tue, 7 Jun 2016 16:55:59 +0000 (12:55 -0400)
apps/workbench/app/models/proxy_work_unit.rb
apps/workbench/app/models/work_unit.rb
apps/workbench/app/views/work_unit/_show_child.html.erb

index 0342a403d82c3af63316a32bf1e024566a867450..95c88c05155de705d37eaca836a4e6443983e607 100644 (file)
@@ -228,39 +228,8 @@ class ProxyWorkUnit < WorkUnit
     state_label == 'Failed'
   end
 
-  def ran_for_str
-    ran_for = nil
-    if state_label
-      ran_for = "It "
-      if state_label == 'Running'
-        ran_for << "has run"
-      else
-        ran_for << "ran"
-      end
-      ran_for << " for"
-    end
-    ran_for
-  end
-
-  def started_and_active_for_str
-    active_for = nil
-
-    if started_at
-      active_for_1 = "This #{title} started at "
-      active_for_2 = "It "
-      if state_label == 'Complete'
-        active_for_2 << "completed in "
-      elsif state_label == 'Failed'
-        active_for_2 << "failed after "
-      else
-        active_for_2 << "has been active for "
-      end
-      [active_for_1, active_for_2]
-    end
-  end
-
   def show_runtime
-    runningtime = ApplicationController.helpers.determine_wallclock_runtime(children)
+    runningtime = ApplicationController.helpers.determine_wallclock_runtime(if children.any? then children else [@proxied] end)
 
     walltime = 0
     if started_at
@@ -315,13 +284,20 @@ class ProxyWorkUnit < WorkUnit
       end
       resp << " for "
 
-      cpu_time = children.map { |c|
-        if c.started_at
-           (c.runtime_constraints.andand[:min_nodes] || 1) * ((c.finished_at || Time.now()) - c.started_at)
-        else
-          0
+      cpu_time = 0
+      if children.any?
+        cpu_time = children.map { |c|
+          if c.started_at
+             (c.runtime_constraints.andand[:min_nodes] || 1) * ((c.finished_at || Time.now()) - c.started_at)
+          else
+            0
+          end
+        }.reduce(:+) || 0
+      else
+        if started_at
+          cpu_time = (runtime_constraints.andand[:min_nodes] || 1) * ((finished_at || Time.now()) - started_at)
         end
-      }.reduce(:+) || 0
+      end
 
       resp << ApplicationController.helpers.render_time(runningtime, false)
       if (walltime - runningtime) > 0
index b83847ea928c0864ae6ca0d8ac8a6fc842f082c4..f6c1f61d111f3ae249f43f475691503bbedb79c3 100644 (file)
@@ -155,12 +155,4 @@ class WorkUnit
   def is_failed?
     # is this work unit in failed state?
   end
-
-  def ran_for_str
-    # display string for how long it has run
-  end
-
-  def started_and_active_for_str
-    # display string for how long it has been active
-  end
 end
index b9e758fac6f9af647e92b7a0f4bfd93fa9894dcf..e5aacc7d78abc13794c171d1b1573c21619da56a 100644 (file)
@@ -32,7 +32,7 @@
 
           <% queuetime = current_obj.queuedtime %>
           <% if queuetime %>
-            <div class="col-md-6">
+            <div class="col-md-3">
               Queued for <%= render_runtime(queuetime, false) %>.
             </div>
           <% elsif current_obj.show_child_summary %>
@@ -42,7 +42,7 @@
               </span>
             </div>
           <% elsif current_obj.is_finished? %>
-            <div class="col-md-4 text-overflow-ellipsis">
+            <div class="col-md-3 text-overflow-ellipsis">
               <% if current_obj.output %>
                 <%= link_to_arvados_object_if_readable(current_obj.output, 'Output data not available', link_text: "Output of #{current_obj.label}") %>
               <% else %>