X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/682dd5b6cc23a455766a7651e3e841257660b31c..35035ce1c0e71990a30f6b1cc2aad961d06774cd:/apps/workbench/app/models/pipeline_instance.rb diff --git a/apps/workbench/app/models/pipeline_instance.rb b/apps/workbench/app/models/pipeline_instance.rb index 03d70b2897..dd2cc0ab77 100644 --- a/apps/workbench/app/models/pipeline_instance.rb +++ b/apps/workbench/app/models/pipeline_instance.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require "arvados/keep" class PipelineInstance < ArvadosBase @@ -13,7 +17,7 @@ class PipelineInstance < ArvadosBase template = if lookup and lookup[self.pipeline_template_uuid] lookup[self.pipeline_template_uuid] else - PipelineTemplate.where(uuid: self.pipeline_template_uuid).first + PipelineTemplate.find?(self.pipeline_template_uuid) if self.pipeline_template_uuid end if template template.name @@ -92,6 +96,10 @@ class PipelineInstance < ArvadosBase components_map { |cspec| cspec[:job][:log] rescue nil } end + def job_ids + components_map { |cspec| cspec[:job][:uuid] rescue nil } + end + def stderr_log_object_uuids result = job_uuids.values.compact result << uuid @@ -99,9 +107,10 @@ class PipelineInstance < ArvadosBase def stderr_log_query(limit=nil) query = Log. - where(event_type: "stderr", - object_uuid: stderr_log_object_uuids). - order("id DESC") + with_count('none'). + where(event_type: "stderr", + object_uuid: stderr_log_object_uuids). + order("created_at DESC") unless limit.nil? query = query.limit(limit) end @@ -128,6 +137,14 @@ class PipelineInstance < ArvadosBase end end + def work_unit(label=nil) + PipelineInstanceWorkUnit.new(self, label || self.name, self.uuid) + end + + def cancel + arvados_api_client.api "pipeline_instances/#{self.uuid}/", "cancel", {"cascade" => true} + end + private def components_map