+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
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?)
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
get(:nondeterministic)
end
+ def runtime_constraints
+ get(:runtime_constraints)
+ end
+
def priority
get(:priority)
end
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 confirm_cancellation
+ "All unfinished child jobs and pipelines will also be canceled, even if they are being used in another job or pipeline. Are you sure you want to cancel this job?"
end
def uri
"/jobs/#{uuid}"
end
- def child_summary
- get(:tasks_summary)
- end
-
def title
"job"
end