X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4ed794e2803ef9812dbc7ae938a8e17b3b9714c1..ee434dea5db0b02fe762ff80b2270cf268e84378:/apps/workbench/app/views/work_units/_component_detail.html.erb diff --git a/apps/workbench/app/views/work_units/_component_detail.html.erb b/apps/workbench/app/views/work_units/_component_detail.html.erb index e15cc443a9..99ac759503 100644 --- a/apps/workbench/app/views/work_units/_component_detail.html.erb +++ b/apps/workbench/app/views/work_units/_component_detail.html.erb @@ -1,3 +1,13 @@ +<% + 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_for_pdhs collections_pdhs if collections_pdhs.any? + + preload_objects_for_dataclass(Repository, [current_obj.repository], :name) if current_obj.repository +%> +
@@ -5,12 +15,20 @@ No <%= current_obj.title %> has been submitted yet. <% else %> - <% keys = [:uuid, :modified_by_user_uuid, :created_at, :started_at, :finished_at, :container_uuid, :priority] %> - <% keys << :outputs if @object.uuid == current_obj.uuid %> + <% 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) %> - <% has_val = val %> - <% has_val = val.andand.any? if k == :outputs %> + <% + 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 %>
@@ -29,6 +47,8 @@ <% 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 %> @@ -41,20 +61,17 @@
- <% # 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 - Repository.where(name: current_obj.repository).first) - - # ...and the api server provides an http:// or https:// url + <% # 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, - :command, :cwd, :environment, :mounts, :output_path].each do |k| %> + <% [:priority, :script, :repository, :script_version, :supplied_script_version, :nondeterministic, + :runtime_constraints, :requesting_container_uuid].each do |k| %> <% val = current_obj.send(k) if current_obj.respond_to?(k) %> <% if val %> - + @@ -65,6 +82,10 @@ <%= 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 %> @@ -72,6 +93,24 @@ <% 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 %>
<%= k.to_s %>:
+ workflow.json: + + <%= link_to_if_arvados_object mount_wf, friendly_name: true %> +
@@ -103,6 +142,59 @@ <% end %>
+ +
+ + + + <% [: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%> +
+ <% else %> + <%= val %> + <% end %> +
+ cwl.input.json: + +
+ <% mnt_inputs.each_line do |l| %> + <% text_part = l %> + <% match = l.match /(.*)(\"keep:.*?\")/ %> + <% if match and match.size == 3 %> + <% text_part = match[1] %> + <% loc_part = match[2][6..-2] %> + <% end %> + <%= text_part %><%= if loc_part then link_to_arvados_object_if_readable(loc_part, loc_part, friendly_name: true) end %> <% if loc_part then %>
<% end %>
+ <% end %> +
+
+
+ <% if current_obj.parameters and !current_obj.parameters.empty? %>