From: radhika Date: Tue, 7 Jun 2016 16:55:59 +0000 (-0400) Subject: 8876: when computing cpu and running times, use the work unit's start and finished... X-Git-Tag: 1.1.0~904^2~1 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/8bbc3c48c7211b8bf497edcb0816a4b9bdd94d4c?hp=c400bf1e7a52d5557c2031bdf2c8de9957425577 8876: when computing cpu and running times, use the work unit's start and finished times if there are no children. --- diff --git a/apps/workbench/app/models/proxy_work_unit.rb b/apps/workbench/app/models/proxy_work_unit.rb index 0342a403d8..95c88c0515 100644 --- a/apps/workbench/app/models/proxy_work_unit.rb +++ b/apps/workbench/app/models/proxy_work_unit.rb @@ -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 diff --git a/apps/workbench/app/models/work_unit.rb b/apps/workbench/app/models/work_unit.rb index b83847ea92..f6c1f61d11 100644 --- a/apps/workbench/app/models/work_unit.rb +++ b/apps/workbench/app/models/work_unit.rb @@ -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 diff --git a/apps/workbench/app/views/work_unit/_show_child.html.erb b/apps/workbench/app/views/work_unit/_show_child.html.erb index b9e758fac6..e5aacc7d78 100644 --- a/apps/workbench/app/views/work_unit/_show_child.html.erb +++ b/apps/workbench/app/views/work_unit/_show_child.html.erb @@ -32,7 +32,7 @@ <% queuetime = current_obj.queuedtime %> <% if queuetime %> -
+
Queued for <%= render_runtime(queuetime, false) %>.
<% elsif current_obj.show_child_summary %> @@ -42,7 +42,7 @@
<% elsif current_obj.is_finished? %> -
+
<% 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 %>