<%# Summary %>
Current state: <% if @object.state == "RunningOnServer" %> Active <% else %> <%= @object.state %> <% end %>  
<% pipeline_jobs = render_pipeline_jobs %> <% job_uuids = pipeline_jobs.map { |j| j[:job].andand[:uuid] }.compact %> <% if @object.state == 'Paused' %>

This pipeline is paused. Jobs that are already running will continue to run, but no new jobs will be submitted.

<% end %> <% runningtime = determine_wallclock_runtime(pipeline_jobs.map {|j| j[:job]}.compact) %>

<% if @object.started_at %> This pipeline started at <%= render_localized_date(@object.started_at) %>. It <% if @object.state == 'Complete' %> completed in <% elsif @object.state == 'Failed' %> failed after <% else %> has been active for <% end %> <% walltime = if @object.finished_at then @object.finished_at - @object.started_at else Time.now - @object.started_at end %> <%= if walltime > runningtime render_runtime(walltime, false) else render_runtime(runningtime, false) end %><% if @object.finished_at %> at <%= render_localized_date(@object.finished_at) %><% end %>. <% else %> This pipeline is <%= if @object.state.start_with? 'Running' then 'active' else @object.state.downcase end %>. <% walltime = 0%> <% end %> <% if @object.state == 'Failed' %> Check the Log tab for more detail about why this pipeline failed. <% end %>

This pipeline <% if @object.state.start_with? 'Running' %> has run <% else %> ran <% end %> for <% cputime = pipeline_jobs.map { |j| if j[:job][:started_at] (j[:job][:runtime_constraints].andand[:min_nodes] || 1) * ((j[:job][:finished_at] || Time.now()) - j[:job][:started_at]) else 0 end }.reduce(:+) || 0 %> <%= render_runtime(runningtime, false) %><% if (walltime - runningtime) > 0 %> (<%= render_runtime(walltime - runningtime, false) %> queued)<% end %><% if cputime == 0 %>.<% else %> and used <%= render_runtime(cputime, false) %> of node allocation time (<%= (cputime/runningtime).round(1) %>⨯ scaling). <% end %>

<%# Components %> <% job_uuids = pipeline_jobs.collect {|j| j[:job][:uuid]}.compact if job_uuids.any? resource_class = resource_class_for_uuid(job_uuids.first, friendly_name: true) preload_objects_for_dataclass resource_class, job_uuids end job_collections = pipeline_jobs.collect {|j| j[:job][:output]}.compact job_collections.concat pipeline_jobs.collect {|j| j[:job][:docker_image_locator]}.uniq.compact job_collections_pdhs = job_collections.select {|x| !(m = CollectionsHelper.match(x)).nil?}.uniq.compact job_collections_uuids = job_collections - job_collections_pdhs preload_collections_for_objects job_collections_uuids if job_collections_uuids.any? preload_for_pdhs job_collections_pdhs if job_collections_pdhs.any? %> <% pipeline_jobs.each_with_index do |pj, i| %> <%= render partial: 'running_component', locals: {pj: pj, i: i, expanded: false, pipeline_display: true} %> <% end %>