rbbt-util 5.23.19 → 5.23.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rbbt/util/log/progress/report.rb +2 -0
- data/lib/rbbt/util/open.rb +1 -0
- data/lib/rbbt/workflow.rb +4 -1
- data/lib/rbbt/workflow/accessor.rb +2 -1
- data/lib/rbbt/workflow/step/dependencies.rb +8 -4
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d092d9923d01da9560a5e01b1da4d1d997acb866
|
|
4
|
+
data.tar.gz: 7d6ab5b9b06cfb2eb4ac7cdee01f6e40a3103e51
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 26aae362cb13a519b16c78fa497655b45b9d5de49119607c677d65e8ecc0e25cfe7f09ca4fb008b35d7894b372cd97ee1cab26fbc1614debf79b5204d171b0c3
|
|
7
|
+
data.tar.gz: 9e78df0466cb39d1329e44a26d4d0559c557ab3967b70b1c6565c9b45d17ccbab1ca740e44e42c18241ce3c293e8b1b075c87b68d92dbd197294fa6da39f1e62
|
data/lib/rbbt/util/open.rb
CHANGED
data/lib/rbbt/workflow.rb
CHANGED
|
@@ -470,7 +470,10 @@ module Workflow
|
|
|
470
470
|
def self.relocate(real, other)
|
|
471
471
|
preal = real.split(/\/+/)
|
|
472
472
|
pother = other.split(/\/+/)
|
|
473
|
-
|
|
473
|
+
end_part = pother[-3..-1] * "/"
|
|
474
|
+
new_path = preal[0..-4] * "/" << end_part
|
|
475
|
+
return new_path if File.exists? new_path
|
|
476
|
+
Rbbt.var.jobs[end_part].find
|
|
474
477
|
end
|
|
475
478
|
|
|
476
479
|
def self.load_step(path)
|
|
@@ -1038,7 +1038,8 @@ module Workflow
|
|
|
1038
1038
|
when :hash
|
|
1039
1039
|
clean_inputs = Annotated.purge(inputs)
|
|
1040
1040
|
clean_inputs = clean_inputs.collect{|i| Symbol === i ? i.to_s : i }
|
|
1041
|
-
|
|
1041
|
+
deps_str = dependencies.collect{|d| Step === d ? d.short_path : d }
|
|
1042
|
+
key_obj = {:inputs => clean_inputs, :dependencies => deps_str }
|
|
1042
1043
|
key_str = Misc.obj2str(key_obj)
|
|
1043
1044
|
hash_str = Misc.digest(key_str)
|
|
1044
1045
|
#Log.debug "Hash for '#{[taskname, jobname] * "/"}' #{hash_str} for #{key_str}"
|
|
@@ -85,6 +85,7 @@ class Step
|
|
|
85
85
|
status = job.status.to_s
|
|
86
86
|
|
|
87
87
|
if (status == 'error' && (job.recoverable_error? || job.dirty?)) ||
|
|
88
|
+
(job.noinfo? && Open.exists?(job.pid_file)) ||
|
|
88
89
|
job.aborted? ||
|
|
89
90
|
(job.done? && ! job.updated?) || (job.error? && ! job.updated?) ||
|
|
90
91
|
(job.done? && job.dirty?) || (job.error? && job.dirty?) ||
|
|
@@ -118,6 +119,8 @@ class Step
|
|
|
118
119
|
|
|
119
120
|
def execute_dependency(dependency, log = true)
|
|
120
121
|
task_name = self.task_name
|
|
122
|
+
canfail_paths = self.canfail_paths
|
|
123
|
+
already_failed = []
|
|
121
124
|
begin
|
|
122
125
|
|
|
123
126
|
dependency.resolve_input_steps
|
|
@@ -132,17 +135,18 @@ class Step
|
|
|
132
135
|
end
|
|
133
136
|
|
|
134
137
|
dependency.status_lock.synchronize do
|
|
135
|
-
if dependency.aborted?
|
|
138
|
+
if dependency.aborted? || (dependency.error? && dependency.recoverable_error? && ! canfail_paths.include?(dependency.path) && ! already_failed << dependency.path) || (!Open.remote?(dependency.path) && dependency.missing?)
|
|
136
139
|
Log.warn "Cleaning dep. on exec #{Log.color :blue, dependency.path} (missing: #{dependency.missing?}; error #{dependency.error?})"
|
|
137
140
|
dependency.clean
|
|
141
|
+
already_failed << dependency.path
|
|
138
142
|
raise TryAgain
|
|
139
143
|
end
|
|
140
144
|
end
|
|
141
145
|
|
|
142
|
-
if ! dependency.started?
|
|
146
|
+
if ! (dependency.started? || dependency.error?)
|
|
143
147
|
log_dependency_exec(dependency, :starting)
|
|
144
148
|
dependency.run(true)
|
|
145
|
-
|
|
149
|
+
raise TryAgain
|
|
146
150
|
end
|
|
147
151
|
|
|
148
152
|
dependency.grace
|
|
@@ -302,7 +306,7 @@ class Step
|
|
|
302
306
|
Set.new(info[:canfail_paths])
|
|
303
307
|
else
|
|
304
308
|
canfail_paths = Set.new
|
|
305
|
-
all_deps =
|
|
309
|
+
all_deps = dependencies
|
|
306
310
|
all_deps.each do |dep|
|
|
307
311
|
next if canfail_paths.include? dep.path
|
|
308
312
|
next unless ComputeDependency === dep && dep.canfail?
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rbbt-util
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.23.
|
|
4
|
+
version: 5.23.20
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Miguel Vazquez
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-08-
|
|
11
|
+
date: 2018-08-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|