Merge branch '10701-refactor-dispatch'
[arvados.git] / apps / workbench / app / models / work_unit.rb
index 00f1435de58ad2df3c40bc83b3937ae0e0641d6c..e10f8b7f5f005c7e6e2730cf040e16f4bb2efcce 100644 (file)
@@ -1,6 +1,5 @@
 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 +9,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 +21,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 +45,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
 
@@ -60,8 +75,8 @@ class WorkUnit
     # returns script for this work unit, if any
   end
 
-  def script_repository
-    # returns this work unit's script_repository, if any
+  def repository
+    # returns this work unit's script repository, if any
   end
 
   def script_version
@@ -88,7 +103,104 @@ 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 true if this work unit can be canceled
+  end
+
+  def confirm_cancellation
+    # returns true if this work unit wants to use a confirmation for cancellation
+  end
+
+  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 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