X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/91dc5f1d7f5ad9eb2640f6089e2d0476cbf87c8e..4e32a5d047ab832e7399dedd7b5dd5f8fc364367:/apps/workbench/app/models/proxy_work_unit.rb diff --git a/apps/workbench/app/models/proxy_work_unit.rb b/apps/workbench/app/models/proxy_work_unit.rb index 44905be061..b7cc6a0f19 100644 --- a/apps/workbench/app/models/proxy_work_unit.rb +++ b/apps/workbench/app/models/proxy_work_unit.rb @@ -6,9 +6,10 @@ class ProxyWorkUnit < WorkUnit attr_accessor :my_children attr_accessor :unreadable_children - def initialize proxied, label + def initialize proxied, label, parent @lbl = label @proxied = proxied + @parent = parent end def label @@ -19,6 +20,10 @@ class ProxyWorkUnit < WorkUnit get(:uuid) end + def parent + @parent + end + def modified_by_user_uuid get(:modified_by_user_uuid) end @@ -182,9 +187,15 @@ class ProxyWorkUnit < WorkUnit end def cputime - if state_label != "Queued" + if children.any? + children.map { |c| + c.cputime + }.reduce(:+) || 0 + else if started_at - (runtime_constraints.andand[:min_nodes] || 1) * ((finished_at || Time.now()) - started_at) + (runtime_constraints.andand[:min_nodes] || 1).to_i * ((finished_at || Time.now()) - started_at) + else + 0 end end end @@ -267,20 +278,7 @@ class ProxyWorkUnit < WorkUnit end resp << " for " - 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 - end + cpu_time = cputime resp << ApplicationController.helpers.render_time(runningtime, false) if (walltime - runningtime) > 0 @@ -311,6 +309,7 @@ class ProxyWorkUnit < WorkUnit Log.where(object_uuid: log_object_uuids). order("created_at DESC"). limit(limit). + with_count('none'). select { |log| log.properties[:text].is_a? String }. reverse. flat_map { |log| log.properties[:text].split("\n") } @@ -322,7 +321,7 @@ class ProxyWorkUnit < WorkUnit if obj.respond_to? key obj.send(key) elsif obj.is_a?(Hash) - obj[key] + obj[key] || obj[key.to_s] end end end