X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3280e2dc5fd16dca63c389b931658d4420faabaf..42c20b25e1325124b88e3b9b285544dc41122b56:/apps/workbench/app/views/pipeline_instances/_running_component.html.erb diff --git a/apps/workbench/app/views/pipeline_instances/_running_component.html.erb b/apps/workbench/app/views/pipeline_instances/_running_component.html.erb index 1a9cb3562a..6e8785aa83 100644 --- a/apps/workbench/app/views/pipeline_instances/_running_component.html.erb +++ b/apps/workbench/app/views/pipeline_instances/_running_component.html.erb @@ -1,10 +1,14 @@ +<%# Copyright (C) The Arvados Authors. All rights reserved. + +SPDX-License-Identifier: AGPL-3.0 %> + <% current_job = pj[:job] if pj[:job] != {} and pj[:job][:uuid] %>
<%# column offset 0 %> -
+ - <%# column offset 3 %> + <%# column offset 2 %>
<%= pj[:progress_bar] %>
- <% if current_job %> + <%# column offset 4 %> + <% if not current_job %> +
+ <% else %> +
+ <% if (pipeline_display rescue nil) %> + <% if current_job[:state].in? ["Complete", "Failed", "Cancelled"] %> + <% if current_job[:log] %> + <% logCollection = Collection.find? current_job[:log] %> + <% if logCollection %> + <%= link_to "Log", job_path(current_job[:uuid], anchor: "Log") %> + <% else %> + Log unavailable + <% end %> + <% end %> + <% elsif current_job[:state] == "Running" %> + <% job = Job.find? current_job[:uuid] %> + <% if job %> + <%= link_to "Log", job_path(current_job[:uuid], anchor: "Log") %> + <% else %> + Log unavailable + <% end %> + <% end %> + <% end %> +
+ <%# column offset 5 %> <% if current_job[:state] != "Queued" %>
<% if current_job[:started_at] %> <% walltime = ((if current_job[:finished_at] then current_job[:finished_at] else Time.now() end) - current_job[:started_at]) %> - <% cputime = tasks.map { |task| - if task.started_at and task.job_uuid == current_job[:uuid] - (if task.finished_at then task.finished_at else Time.now() end) - task.started_at - else - 0 - end - }.reduce(:+) || 0 %> - <%= render_runtime(walltime, false, false) %> - <% if cputime > 0 %> / <%= render_runtime(cputime, false, false) %> (<%= (cputime/walltime).round(1) %>⨯)<% end %> + <% cputime = (current_job[:runtime_constraints].andand[:min_nodes] || 1).to_i * + ((current_job[:finished_at] || Time.now()) - current_job[:started_at]) %> + <%= render_runtime(walltime, false) %> + <% if cputime > 0 %> / <%= render_runtime(cputime, false) %> (<%= (cputime/walltime).round(1) %>⨯)<% end %> <% end %>
<% end %> @@ -40,17 +64,7 @@ <%# column offset 5 %>
<% queuetime = Time.now - Time.parse(current_job[:created_at].to_s) %> - Queued for <%= render_runtime(queuetime, true) %>. - <% begin %> - <% if current_job[:queue_position] == 0 %> - This job is next in the queue to run. - <% elsif current_job[:queue_position] == 1 %> - There is 1 job in the queue ahead of this one. - <% elsif current_job[:queue_position] %> - There are <%= current_job[:queue_position] %> jobs in the queue ahead of this one. - <% end %> - <% rescue %> - <% end %> + Queued for <%= render_runtime(queuetime, false) %>.
<% elsif current_job[:state] == "Running" %> <%# column offset 8 %> @@ -66,9 +80,9 @@ <%# column offset 8 %>
<% if pj[:output_uuid] %> - <%= link_to_arvados_object_if_readable(pj[:output_uuid], 'Output data not available', friendly_name: true) %> + <%= link_to_arvados_object_if_readable(pj[:output_uuid], "#{pj[:output_uuid]} (Unavailable)", friendly_name: true) %> <% elsif current_job[:output] %> - <%= link_to_arvados_object_if_readable(current_job[:output], 'Output data not available', link_text: "Output of #{pj[:name]}") %> + <%= link_to_arvados_object_if_readable(current_job[:output], "#{current_job[:output]} (Unavailable)", link_text: "Output of #{pj[:name]}") %> <% else %> No output. <% end %> @@ -96,6 +110,15 @@
+ <% # link to repo tree/file only if the repo is readable + # and the commit is a sha1... + repo = + (/^[0-9a-f]{40}$/ =~ current_component[:script_version] and + Repository.where(name: current_component[:repository]).first) + + # ...and the api server provides an http:// or https:// url + repo = nil unless repo.andand.http_fetch_url + %> <% [:script, :repository, :script_version, :supplied_script_version, :nondeterministic].each do |k| %>
@@ -104,6 +127,12 @@ <% if current_component[k].nil? %> (none) + <% elsif repo and k == :repository %> + <%= link_to current_component[k], show_repository_tree_path(id: repo.uuid, commit: current_component[:script_version], path: '/') %> + <% elsif repo and k == :script %> + <%= link_to current_component[k], show_repository_blob_path(id: repo.uuid, commit: current_component[:script_version], path: 'crunch_scripts/'+current_component[:script]) %> + <% elsif repo and k == :script_version %> + <%= link_to current_component[k], show_repository_commit_path(id: repo.uuid, commit: current_component[:script_version]) %> <% else %> <%= current_component[k] %> <% end %> @@ -164,7 +193,7 @@
-
+

script_parameters:

<%= JSON.pretty_generate(current_component[:script_parameters]) rescue nil %>