projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'origin-2035-arv-mount-tags-folders'
[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 211b91a0e352d37fbeadd2e8ca6e5171971a6f53..ca4b69c62a3c58f71a79ff6858c112fcc23e70ab 100644
(file)
--- a/
services/api/app/models/pipeline_instance.rb
+++ b/
services/api/app/models/pipeline_instance.rb
@@
-40,17
+40,16
@@
class PipelineInstance < ArvadosModel
end
# if all components have input, the pipeline is Ready
end
# if all components have input, the pipeline is Ready
- def
self.is_ready components
- if !
components || components.empty? # is this correct
?
- return
tru
e
+ def
components_look_ready?
+ if !
self.components || self.components.empty
?
+ return
fals
e
end
all_components_have_input = true
end
all_components_have_input = true
- components.each do |name, component|
- component['script_parameters'].each do |parametername, parameter|
+
self.
components.each do |name, component|
+ component['script_parameters'].
andand.
each do |parametername, parameter|
parameter = { 'value' => parameter } unless parameter.is_a? Hash
parameter = { 'value' => parameter } unless parameter.is_a? Hash
- if parameter['value'].nil? and
- ![false,'false',0,'0'].index parameter['required']
+ if parameter['value'].nil? and parameter['required']
if parameter['output_of']
next
end
if parameter['output_of']
next
end
@@
-144,7
+143,7
@@
class PipelineInstance < ArvadosModel
if self.active
self.state = RunningOnServer
else
if self.active
self.state = RunningOnServer
else
- if
PipelineInstance.is_ready self.components
+ if
self.components_look_ready?
self.state = Ready
else
self.state = New
self.state = Ready
else
self.state = New
@@
-160,7
+159,7
@@
class PipelineInstance < ArvadosModel
end
elsif state_changed?
case self.state
end
elsif state_changed?
case self.state
- when New, Ready
+ when New, Ready
, Paused
self.active = false
self.success = nil
when RunningOnServer
self.active = false
self.success = nil
when RunningOnServer
@@
-172,13
+171,16
@@
class PipelineInstance < ArvadosModel
when Failed
self.active = false
self.success = false
when Failed
self.active = false
self.success = false
+ self.state = Failed # before_validation will fail if false is returned in the previous line
when Complete
self.active = false
self.success = true
when Complete
self.active = false
self.success = true
+ else
+ return false
end
end
- elsif components_changed?
+ elsif components_changed?
if !self.state || self.state == New || !self.active
if !self.state || self.state == New || !self.active
- if
PipelineInstance.is_ready self.components
+ if
self.components_look_ready?
self.state = Ready
else
self.state = New
self.state = Ready
else
self.state = New
@@
-191,7
+193,7
@@
class PipelineInstance < ArvadosModel
if !self.state || self.state == New
if self.active
self.state = RunningOnServer
if !self.state || self.state == New
if self.active
self.state = RunningOnServer
- elsif
PipelineInstance.is_ready self.components
+ elsif
self.components_look_ready?
self.state = Ready
else
self.state = New
self.state = Ready
else
self.state = New