X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9122f814b4c22828f64d82c48409dd4cc6cacc3f..c1ac820b37938e3b9a533d93b55eb12a0808cf0d:/apps/workbench/app/models/job_work_unit.rb?ds=sidebyside diff --git a/apps/workbench/app/models/job_work_unit.rb b/apps/workbench/app/models/job_work_unit.rb index 7f1c73f694..a3f13f388c 100644 --- a/apps/workbench/app/models/job_work_unit.rb +++ b/apps/workbench/app/models/job_work_unit.rb @@ -1,15 +1,9 @@ class JobWorkUnit < ProxyWorkUnit def children - uuid = get(:uuid) - items = [] - - # Job tasks - for now do not include job tasks - # tasks = JobTask.filter([['job_uuid', '=', uuid]]).results - # tasks.each do |t| - # items << t.work_unit("task #{items.size}") - # end + return @my_children if @my_children # Jobs components + items = [] components = get(:components) uuids = components.andand.collect {|_, v| v} return items if (!uuids or uuids.empty?) @@ -25,28 +19,38 @@ class JobWorkUnit < ProxyWorkUnit items << obj.work_unit(components.key(obj.uuid)) end end - items - end - def progress - state = get(:state) - if state == 'Complete' - return 1.0 - end + @my_children = items + end - tasks_summary = get(:tasks_summary) - failed = tasks_summary[:failed] || 0 rescue 0 - done = tasks_summary[:done] || 0 rescue 0 - running = tasks_summary[:running] || 0 rescue 0 - todo = tasks_summary[:todo] || 0 rescue 0 - if done + running + failed + todo > 0 - total_tasks = done + running + failed + todo - (done+failed).to_f / total_tasks + def child_summary + if children.any? + super else - 0.0 + get(:tasks_summary) end end + def parameters + get(:script_parameters) + end + + def repository + get(:repository) + end + + def script + get(:script) + end + + def script_version + get(:script_version) + end + + def supplied_script_version + get(:supplied_script_version) + end + def docker_image get(:docker_image_locator) end @@ -55,6 +59,10 @@ class JobWorkUnit < ProxyWorkUnit get(:nondeterministic) end + def runtime_constraints + get(:runtime_constraints) + end + def priority get(:priority) end @@ -63,12 +71,14 @@ class JobWorkUnit < ProxyWorkUnit get(:log) end - def output - get(:output) + def outputs + items = [] + items << get(:output) if get(:output) + items end def can_cancel? - true + state_label.in? ["Queued", "Running"] end def uri @@ -76,10 +86,6 @@ class JobWorkUnit < ProxyWorkUnit "/jobs/#{uuid}" end - def child_summary - get(:tasks_summary) - end - def title "job" end