3 <div class="pull-right" style="padding-left: 1em">
4 Current state: <span class="badge badge-info" data-pipeline-state="<%= @object.state %>">
5 <% if @object.state == "RunningOnServer" %>
13 <% pipeline_jobs = render_pipeline_jobs %>
14 <% job_uuids = pipeline_jobs.map { |j| j[:job].andand[:uuid] }.compact %>
16 <% if @object.state == 'Paused' %>
18 This pipeline is paused. Jobs that are
19 already running will continue to run, but no new jobs will be submitted.
23 <% tasks = JobTask.filter([['job_uuid', 'in', job_uuids]]).results %>
24 <% runningtime = determine_wallclock_runtime(pipeline_jobs.map {|j| j[:job]}.compact) %>
27 <% if @object.started_at %>
28 This pipeline started at <%= render_localized_date(@object.started_at) %>.
30 <% if @object.state == 'Complete' %>
32 <% elsif @object.state == 'Failed' %>
38 <% walltime = if @object.finished_at then
39 @object.finished_at - @object.started_at
41 Time.now - @object.started_at
44 <%= if walltime > runningtime
45 render_runtime(walltime, true, false)
47 render_runtime(runningtime, true, false)
48 end %><% if @object.finished_at %> at <%= render_localized_date(@object.finished_at) %><% end %>.
50 This pipeline is <%= if @object.state.start_with? 'Running' then 'active' else @object.state.downcase end %>.
54 <% if @object.state == 'Failed' %>
55 Check the Log tab for more detail about why this pipeline failed.
61 <% if @object.state.start_with? 'Running' %>
67 <% cputime = tasks.map { |task|
69 (if task.finished_at then task.finished_at else Time.now() end) - task.started_at
74 <%= render_runtime(runningtime, true, false) %><% if (walltime - runningtime) > 0 %>
75 (<%= render_runtime(walltime - runningtime, true, false) %> queued)<% end %><% if cputime == 0 %>.<% else %>
77 <%= render_runtime(cputime, true, false) %>
78 of CPU time (<%= (cputime/runningtime).round(1) %>⨯ scaling).
85 job_uuids = pipeline_jobs.collect {|j| j[:job][:uuid]}.compact
87 resource_class = resource_class_for_uuid(job_uuids.first, friendly_name: true)
88 preload_objects_for_dataclass resource_class, job_uuids
91 job_collections = pipeline_jobs.collect {|j| j[:job][:output]}.compact
92 job_collections.concat pipeline_jobs.collect {|j| j[:job][:docker_image_locator]}.uniq.compact
93 job_collections_pdhs = job_collections.select {|x| !(m = CollectionsHelper.match(x)).nil?}.uniq.compact
94 job_collections_uuids = job_collections - job_collections_pdhs
95 preload_collections_for_objects job_collections_uuids if job_collections_uuids.any?
96 preload_for_pdhs job_collections_pdhs if job_collections_pdhs.any?
99 <% pipeline_jobs.each_with_index do |pj, i| %>
100 <%= render partial: 'running_component', locals: {tasks: tasks, pj: pj, i: i, expanded: false} %>