attr_accessor :my_children
attr_accessor :unreadable_children
- def initialize proxied, label
+ def initialize proxied, label, parent
@lbl = label
@proxied = proxied
+ @parent = parent
end
def label
get(:uuid)
end
+ def parent
+ @parent
+ end
+
def modified_by_user_uuid
get(:modified_by_user_uuid)
end
@unreadable_children
end
- def readable?
- resource_class = ArvadosBase::resource_class_for_uuid(uuid)
- resource_class.where(uuid: [uuid]).first rescue nil
- end
-
- def link_to_log
- if state_label.in? ["Complete", "Failed", "Cancelled"]
- lc = log_collection
- if lc
- logCollection = Collection.find? lc
- if logCollection
- ApplicationController.helpers.link_to("Log", "#{uri}#Log")
- else
- "Log unavailable"
- end
- end
- elsif state_label == "Running"
- if readable?
- ApplicationController.helpers.link_to("Log", "#{uri}#Log")
- else
- "Log unavailable"
- end
- end
- end
-
def walltime
if state_label != "Queued"
if started_at
end
def cputime
- if state_label != "Queued"
+ if children.any?
+ children.map { |c|
+ c.cputime
+ }.reduce(:+) || 0
+ else
if started_at
- (runtime_constraints.andand[:min_nodes] || 1) * ((finished_at || Time.now()) - started_at)
+ (runtime_constraints.andand[:min_nodes] || 1).to_i * ((finished_at || Time.now()) - started_at)
+ else
+ 0
end
end
end
end
resp << " for "
- 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
- end
+ cpu_time = cputime
resp << ApplicationController.helpers.render_time(runningtime, false)
if (walltime - runningtime) > 0
Log.where(object_uuid: log_object_uuids).
order("created_at DESC").
limit(limit).
+ with_count('none').
select { |log| log.properties[:text].is_a? String }.
reverse.
flat_map { |log| log.properties[:text].split("\n") }
if obj.respond_to? key
obj.send(key)
elsif obj.is_a?(Hash)
- obj[key]
+ obj[key] || obj[key.to_s]
end
end
end