projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '13546-crunch1-timeout' refs #13546
[arvados.git]
/
services
/
api
/
app
/
models
/
pipeline_instance.rb
diff --git
a/services/api/app/models/pipeline_instance.rb
b/services/api/app/models/pipeline_instance.rb
index 651f36d30f16350f2dee5fde0b47bca824184d8f..55efa0ae85b4e79d8a88d2d5d99ead15abb6b5b7 100644
(file)
--- a/
services/api/app/models/pipeline_instance.rb
+++ b/
services/api/app/models/pipeline_instance.rb
@@
-1,3
+1,7
@@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
class PipelineInstance < ArvadosModel
include HasUuid
include KindAndEtag
class PipelineInstance < ArvadosModel
include HasUuid
include KindAndEtag
@@
-38,6
+42,10
@@
class PipelineInstance < ArvadosModel
(Complete = 'Complete'),
]
(Complete = 'Complete'),
]
+ def self.limit_index_columns_read
+ ["components"]
+ end
+
# if all components have input, the pipeline is Ready
def components_look_ready?
if !self.components || self.components.empty?
# if all components have input, the pipeline is Ready
def components_look_ready?
if !self.components || self.components.empty?
@@
-100,7
+108,14
@@
class PipelineInstance < ArvadosModel
self.where("state = 'RunningOnServer'")
end
self.where("state = 'RunningOnServer'")
end
- def cancel cascade=nil
+ def cancel(cascade: false, need_transaction: true)
+ if need_transaction
+ ActiveRecord::Base.transaction do
+ cancel(cascade: cascade, need_transaction: false)
+ end
+ return
+ end
+
if self.state.in?([RunningOnServer, RunningOnClient])
self.state = Paused
self.save!
if self.state.in?([RunningOnServer, RunningOnClient])
self.state = Paused
self.save!
@@
-115,8
+130,8
@@
class PipelineInstance < ArvadosModel
return if children.empty?
return if children.empty?
- Job.where(uuid: children).each do |job|
- job.cancel
cascade if job.state.in?([Job::Queued, Job::Running]
)
+ Job.where(uuid: children
, state: [Job::Queued, Job::Running]
).each do |job|
+ job.cancel
(cascade: cascade, need_transaction: false
)
end
end
end
end