<%# Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: AGPL-3.0 %> <% collections = [current_obj.outputs, current_obj.docker_image].flatten.compact.uniq collections_pdhs = collections.select {|x| !CollectionsHelper.match(x).nil?}.uniq.compact collections_uuids = collections - collections_pdhs preload_collections_for_objects collections_uuids if collections_uuids.any? preload_links_for_objects collections_uuids if collections_uuids.any? preload_objects_for_dataclass(Repository, [current_obj.repository], :name) if current_obj.repository # if container_X, preload mounted collections if @object.is_a? Container or @object.is_a? ContainerRequest # get any collections in mounts mounts = current_obj.send(:mounts) if current_obj.respond_to?(:mounts) input_obj = mounts.andand[:"/var/lib/cwl/cwl.input.json"].andand[:content] if input_obj input_obj.to_s.scan(/([0-9a-f]{32}\+\d+)/).each {|cs| collections_pdhs += cs} end command = current_obj.send(:command) if current_obj.respond_to?(:command) if command command.to_s.scan(/([0-9a-f]{32}\+\d+)/).each {|cs| collections_pdhs += cs} end end collections_pdhs.compact.uniq preload_for_pdhs collections_pdhs if collections_pdhs.any? preload_links_for_objects collections_pdhs if collections_pdhs.any? %>
<% if current_obj.uuid.nil? %> No <%= current_obj.title %> has been submitted yet. <% else %> <% keys = [:uuid, :modified_by_user_uuid, :created_at, :started_at, :finished_at, :container_uuid] %> <% keys << :log_collection if @object.uuid != current_obj.uuid %> <% keys << :outputs %> <% keys.each do |k| %> <% val = current_obj.send(k) if current_obj.respond_to?(k) if k == :outputs has_val = val.andand.any? elsif k == :log_collection and current_obj.state_label == "Running" has_val = true else has_val = val end %> <% if has_val %> <% end %> <% end %>
<%= k.to_s %>: <% if k == :uuid %> <%= link_to_arvados_object_if_readable(val, val, link_text: val) %> <% elsif k.to_s.end_with? 'uuid' %> <%= link_to_arvados_object_if_readable(val, val, friendly_name: true) %> <% elsif k.to_s.end_with? '_at' %> <%= render_localized_date(val) %> <% elsif k == :outputs and val.any? %> <% if val.size == 1 %> <%= link_to_arvados_object_if_readable(val[0], 'Output data not available', friendly_name: true) %> <% else %> <%= render partial: 'work_units/show_outputs', locals: {id: current_obj.uuid, outputs: val, align:""} %> <% end %> <% elsif k == :log_collection %> <%= render partial: 'work_units/show_log_link', locals: {wu: current_obj} %> <% else %> <%= val %> <% end %>
<% end %>
<% # link to repo tree/file only if the repo is readable and the commit is a sha1 repo = (/^[0-9a-f]{40}$/ =~ current_obj.script_version and current_obj.repository and object_for_dataclass(Repository, current_obj.repository, :name)) repo = nil unless repo.andand.http_fetch_url %> <% [:script, :repository, :script_version, :supplied_script_version, :nondeterministic, :priority, :runtime_constraints, :requesting_container_uuid].each do |k| %> <% val = current_obj.send(k) if current_obj.respond_to?(k) %> <% if val %> <% end %> <% end %> <% mounts = current_obj.send(:mounts) if current_obj.respond_to?(:mounts) mount_wf = mounts.andand[:"/var/lib/cwl/workflow.json"] mount_wf = mount_wf[5..-1] if mount_wf.andand.is_a?(String) and mount_wf.start_with?('keep:') mount_wf_cls = resource_class_for_uuid(mount_wf) if mount_wf %> <% if mount_wf_cls == Collection %> <% end %> <% if current_obj.runtime_constraints.andand[:docker_image] and current_obj.docker_image %> <% elsif current_obj.docker_image %> <% end %>
<%= k.to_s %>: <% if repo and k == :repository %> <%= link_to val, show_repository_tree_path(id: repo.uuid, commit: current_obj.script_version, path: '/') %> <% elsif repo and k == :script %> <%= link_to val, show_repository_blob_path(id: repo.uuid, commit: current_obj.script_version, path: 'crunch_scripts/'+current_obj.script) %> <% elsif repo and k == :script_version %> <%= link_to val, show_repository_commit_path(id: repo.uuid, commit: current_obj.script_version) %> <% elsif k == :runtime_constraints and val.any? %> <%= render partial: 'work_units/show_table_data', locals: {id: current_obj.uuid, name: k, data_map: val} %> <% elsif k.to_s.end_with? 'uuid' %> <%= link_to_arvados_object_if_readable(val, val, friendly_name: true) %> <% else %> <%= val %> <% end %>
workflow.json: <%= link_to_if_arvados_object mount_wf, friendly_name: true %>
docker_image: <%= current_obj.runtime_constraints[:docker_image] %>
docker_image_locator: <%= link_to_arvados_object_if_readable(current_obj.docker_image, current_obj.docker_image, friendly_name: true) %>
docker_image_locator: <%= link_to_arvados_object_if_readable(current_obj.docker_image, current_obj.docker_image, friendly_name: true) %>
<% [:command].each do |k| %> <% val = current_obj.send(k) if current_obj.respond_to?(k) %> <% if val %> <% end %> <% end %> <% mounts = current_obj.send(:mounts) if current_obj.respond_to?(:mounts) input_obj = mounts.andand[:"/var/lib/cwl/cwl.input.json"].andand[:content] mnt_inputs = JSON.pretty_generate(input_obj) if input_obj %> <% if mnt_inputs %> <% end %>
<%= k.to_s %>: <% if k == :command %> <% val = JSON.pretty_generate(val) %> <%= render partial: 'show_text_with_locators', locals: {data_height: 200, text_data: val} %> <% else %> <%= val %> <% end %>
cwl.input.json: <%= render partial: 'show_text_with_locators', locals: {data_height: 400, text_data: mnt_inputs} %>
<% if current_obj.parameters and !current_obj.parameters.empty? %>

script_parameters:

<%= JSON.pretty_generate(current_obj.parameters) rescue nil %>
<% end %>