X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a4f061a5bf48f0335238da72b8d03ca349fa7553..f1e1a1ae570c8f09130e5de2a9fc15c0a6067542:/apps/workbench/app/models/work_unit.rb diff --git a/apps/workbench/app/models/work_unit.rb b/apps/workbench/app/models/work_unit.rb index 4353352b7f..f0c4230f2a 100644 --- a/apps/workbench/app/models/work_unit.rb +++ b/apps/workbench/app/models/work_unit.rb @@ -1,6 +1,9 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + class WorkUnit - # This is just an abstract class that documents the WorkUnit interface; a - # class can implement the interface without being a subclass of WorkUnit. + # This is an abstract class that documents the WorkUnit interface def label # returns the label that was assigned when creating the work unit @@ -10,6 +13,10 @@ class WorkUnit # returns the arvados UUID of the underlying object end + def parent + # returns the parent uuid of this work unit + end + def children # returns an array of child work units end @@ -18,10 +25,18 @@ class WorkUnit # returns uuid of the user who modified this work unit most recently end + def owner_uuid + # returns uuid of the owner of this work unit + end + def created_at # returns created_at timestamp end + def modified_at + # returns modified_at timestamp + end + def started_at # returns started_at timestamp for this work unit end @@ -34,17 +49,21 @@ class WorkUnit # returns a string representing state of the work unit end + def exit_code + # returns the work unit's execution exit code + end + def state_bootstrap_class # returns a class like "danger", "success", or "warning" that a view can use directly to make a display class end def success? - # returnis true if the work unit finished successfully, + # returns true if the work unit finished successfully, # false if it has a permanent failure, # and nil if the final state is not determined. end - def progress + def progress # returns a number between 0 and 1 end @@ -88,23 +107,108 @@ class WorkUnit # returns if this is nondeterministic end - def output - # returns uuid or pdh of output data, if any + def outputs + # returns array containing uuid or pdh of output data + end + + def child_summary + # summary status of any children of this work unit + end + + def child_summary_str + # textual representation of child summary end def can_cancel? - # returns if this work unit is cancelable + # returns true if this work unit can be canceled end - def uri - # returns the uri for this work unit + def confirm_cancellation + # returns true if this work unit wants to use a confirmation for cancellation end - def child_summary - # summary status of any children of this work unit + def uri + # returns the uri for this work unit end def title # title for the work unit end + + def has_unreadable_children + # accept it if you can't understand your own children + end + + # view helper methods + def walltime + # return walltime for a running or completed work unit + end + + def cputime + # return cputime for a running or completed work unit + end + + def queuedtime + # return queued time if the work unit is queued + end + + def is_running? + # is the work unit in running state? + end + + def is_paused? + # is the work unit in paused state? + end + + def is_finished? + # is the work unit in finished state? + end + + def is_failed? + # is this work unit in failed state? + end + + def command + # command to execute + end + + def cwd + # initial workind directory + end + + def environment + # environment variables + end + + def mounts + # mounts + end + + def output_path + # path to a directory or file to save output + end + + def container_uuid + # container_uuid of a container_request + end + + def requesting_container_uuid + # requesting_container_uuid of a container_request + end + + def log_object_uuids + # object uuids for live log + end + + def live_log_lines(limit) + # fetch log entries from logs table for @proxied + end + + def render_log + # return partial and locals to be rendered + end + + def template_uuid + # return the uuid of this work unit's template, if one exists + end end