+ resp << "</p>"
+
+ resp << "<p>"
+ if state_label
+ resp << "It "
+ if state_label == 'Running'
+ resp << "has run"
+ else
+ resp << "ran"
+ 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
+
+ resp << ApplicationController.helpers.render_time(runningtime, false)
+ if (walltime - runningtime) > 0
+ resp << "("
+ resp << ApplicationController.helpers.render_time(walltime - runningtime, false)
+ resp << "queued)"
+ end
+ if cpu_time == 0
+ resp << "."
+ else
+ resp << " and used "
+ resp << ApplicationController.helpers.render_time(cpu_time, false)
+ resp << " of node allocation time ("
+ resp << (cpu_time/runningtime).round(1).to_s
+ resp << "⨯ scaling)."
+ end
+ end
+ resp << "</p>"
+
+ resp
+ end
+
+ def log_object_uuids
+ [uuid]