get(:modified_by_user_uuid)
end
+ def owner_uuid
+ get(:owner_uuid)
+ end
+
def created_at
t = get(:created_at)
- t = Time.parse(t) if (t.andand.class == String)
+ t = Time.parse(t) if (t.is_a? String)
t
end
def started_at
t = get(:started_at)
- t = Time.parse(t) if (t.andand.class == String)
+ t = Time.parse(t) if (t.is_a? String)
+ t
+ end
+
+ def modified_at
+ t = get(:modified_at)
+ t = Time.parse(t) if (t.is_a? String)
t
end
def finished_at
t = get(:finished_at)
- t = Time.parse(t) if (t.andand.class == String)
+ t = Time.parse(t) if (t.is_a? String)
t
end
state = get(:state)
if ["Running", "RunningOnServer", "RunningOnClient"].include? state
"Running"
+ elsif state == 'New'
+ "Not started"
else
state
end
end
def state_bootstrap_class
- state = get(:state)
+ state = state_label
case state
when 'Complete'
'success'
end
def success?
- state = get(:state)
+ state = state_label
if state == 'Complete'
true
elsif state == 'Failed' or state == 'Cancelled'
end
def progress
- state = get(:state)
+ state = state_label
if state == 'Complete'
return 1.0
elsif state == 'Failed' or state == 'Cancelled'
end
def outputs
- items = []
- children.each do |c|
- items << c.output if c.output
- end
- if !items.any?
- items << get(:output) if get(:output)
- end
- items
+ []
end
def title
end
end
- def show_child_summary
- if state_label == "Running"
- if child_summary
- child_summary_str
- end
- end
- end
-
def is_running?
state_label == 'Running'
end
state_label == 'Failed'
end
- def ran_for_str
- ran_for = nil
- if state_label
- ran_for = "It "
- if state_label == 'Running'
- ran_for << "has run"
- else
- ran_for << "ran"
- end
- ran_for << " for"
- end
- ran_for
- end
-
- def started_and_active_for_str
- active_for = nil
-
- if started_at
- active_for_1 = "This #{title} started at "
- active_for_2 = "It "
- if state_label == 'Complete'
- active_for_2 << "completed in "
- elsif state_label == 'Failed'
- active_for_2 << "failed after "
- else
- active_for_2 << "has been active for "
- end
- [active_for_1, active_for_2]
- end
- end
-
def show_runtime
- runningtime = ApplicationController.helpers.determine_wallclock_runtime(children)
+ runningtime = ApplicationController.helpers.determine_wallclock_runtime(if children.any? then children else [self] end)
walltime = 0
if started_at
end
resp << " for "
- 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
+ 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
- }.reduce(:+) || 0
+ end
resp << ApplicationController.helpers.render_time(runningtime, false)
if (walltime - runningtime) > 0
resp
end
+ def log_object_uuids
+ [uuid]
+ end
+
protected
- def get key
- if @proxied.respond_to? key
- @proxied.send(key)
- elsif @proxied.is_a?(Hash)
- @proxied[key]
+ def get key, obj=@proxied
+ if obj.respond_to? key
+ obj.send(key)
+ elsif obj.is_a?(Hash)
+ obj[key]
end
end
end