rbbt-util 5.20.14 → 5.20.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7b5585c1845795e5a7c874e332091305114e4ee7
4
- data.tar.gz: 9b66bcf3e909d67e240419b4492ebfb5a418185a
3
+ metadata.gz: 8acdb68bc077ef40aa93cc0bd822e2a03e634d7f
4
+ data.tar.gz: 5aeb1004ef167478f65659794dbc2c93d294cd10
5
5
  SHA512:
6
- metadata.gz: a4b43d8d9cf4506820dfbb6171527a98dd2cdfde10da40291f63c0ebb6c30c7359b1464ec35199d1d370da8175263986c957ccd72d684bed0f53be0e378f6202
7
- data.tar.gz: 8439f337004a4b65353b63535343e42fa1f37075a2f71dfccf90c130615e4a9c46eefb93e7c60b2b23ab7e11d3a4b991a6680faff6593914719344e611258250
6
+ metadata.gz: c5bb2dc2c484251bc7d41b88d3869eeea5d179724bf4ff46403fdd7e3c84be1c28bb31c8bd5d4412f51027221e3fd41139acd1b444fbb1829adcd8baa49560e6
7
+ data.tar.gz: 1c82abfa22a27807250e030c22f03a586327d10cee8baea5bc70644275e71ad7f69cff72c4327df9ff4f6f0f05b8e788a5c1ff28b949bdae1ab9d5791f519672
data/lib/rbbt/resource.rb CHANGED
@@ -160,6 +160,8 @@ module Resource
160
160
  Misc.sensiblewrite(final_path, data * "\n")
161
161
  when TSV
162
162
  Misc.sensiblewrite(final_path, data.dumper_stream)
163
+ when TSV::Dumper
164
+ Misc.sensiblewrite(final_path, data.stream)
163
165
  when nil
164
166
  else
165
167
  raise "Unkown object produced: #{Misc.fingerprint data}"
@@ -34,8 +34,19 @@ class WorkflowRESTClient
34
34
  inputs.each do |k,v|
35
35
  stream = stream_input.to_s == k.to_s
36
36
  if Step === v
37
- v.run(true) and v.grace unless v.done? or v.streaming?
38
- new_inputs[k] = stream ? TSV.get_stream(v) : v.load
37
+ unless (v.done? or v.streaming? or RestClient::Step === v)
38
+ v.run(true) and v.grace
39
+ end
40
+
41
+ begin
42
+ if stream
43
+ new_inputs[k] = TSV.get_stream(v)
44
+ else
45
+ new_inputs[k] = v.load
46
+ end
47
+ rescue Exception
48
+ raise $!
49
+ end
39
50
  else
40
51
  new_inputs[k] = v
41
52
  end
@@ -352,6 +352,8 @@ module TSV
352
352
 
353
353
  def self.traverse_cpus(num, obj, options, &block)
354
354
  begin
355
+ error = false
356
+
355
357
  callback, cleanup, join, respawn, bar = Misc.process_options options, :callback, :cleanup, :join, :respawn, :bar
356
358
  respawn = true if ENV["RBBT_RESPAWN"] and ENV["RBBT_RESPAWN"] == "true"
357
359
 
@@ -369,6 +371,7 @@ module TSV
369
371
  q.join
370
372
 
371
373
  rescue Interrupt, Aborted
374
+ error = true
372
375
  q.abort
373
376
  Log.medium{"Aborted traversal in CPUs for #{stream_name(obj) || Misc.fingerprint(obj)}: #{$!.backtrace*","}"}
374
377
  stream = obj_stream(obj)
@@ -377,6 +380,7 @@ module TSV
377
380
  stream.abort if stream.respond_to? :abort
378
381
  raise "Traversal aborted"
379
382
  rescue Exception
383
+ error = true
380
384
  q.abort
381
385
  Log.medium "Exception during traversal in CPUs for #{stream_name(obj) || Misc.fingerprint(obj)}: #{$!.message}"
382
386
  stream = obj_stream(obj)
@@ -386,7 +390,7 @@ module TSV
386
390
  raise $!
387
391
  ensure
388
392
  q.clean
389
- Log::ProgressBar.remove_bar(bar) if bar
393
+ Log::ProgressBar.remove_bar(bar, error) if bar
390
394
  end
391
395
  end
392
396
 
@@ -147,5 +147,21 @@ module Log
147
147
  print(io, up_lines(@depth) << done_msg << down_lines(@depth))
148
148
  Open.rm @file if @file and Open.exists? @file
149
149
  end
150
+
151
+ def error(io = STDERR)
152
+ done_msg = Log.color(:magenta, desc) << " " << Log.color(:red, "error")
153
+ if @start
154
+ ellapsed = (Time.now - @start).to_i
155
+ else
156
+ ellapsed = 0
157
+ end
158
+ ellapsed = [ellapsed/3600, ellapsed/60 % 60, ellapsed % 60].map{|t| "%02i" % t }.join(':')
159
+ done_msg << " " << Log.color(:blue, (@ticks).to_s) << " in " << Log.color(:green, ellapsed)
160
+ @last_count = 0
161
+ @last_time = @start
162
+ done_msg << " (" << thr_msg << ")"
163
+ print(io, up_lines(@depth) << done_msg << down_lines(@depth))
164
+ Open.rm @file if @file and Open.exists? @file
165
+ end
150
166
  end
151
167
  end
@@ -57,8 +57,12 @@ module Log
57
57
  end
58
58
  end
59
59
 
60
- def self.remove_bar(bar)
61
- bar.done if bar.respond_to? :done
60
+ def self.remove_bar(bar, error = false)
61
+ if error
62
+ bar.error if bar.respond_to? :error
63
+ else
64
+ bar.done if bar.respond_to? :done
65
+ end
62
66
  BAR_MUTEX.synchronize do
63
67
  REMOVE << bar
64
68
  end
@@ -22,7 +22,7 @@ class Step
22
22
  threads = jobs.collect do |j|
23
23
  Thread.new do
24
24
  begin
25
- j.join
25
+ j.join unless j.done?
26
26
  rescue Exception
27
27
  Log.error "Exception waiting for job: #{Log.color :blue, j.path}"
28
28
  raise $!
@@ -184,7 +184,14 @@ class Step
184
184
  case type
185
185
  when :produce, :no_dup
186
186
  list.each do |step|
187
- step.produce
187
+ Misc.insist do
188
+ begin
189
+ step.produce
190
+ rescue
191
+ step.abort
192
+ raise $!
193
+ end
194
+ end
188
195
  nil
189
196
  end
190
197
  when :bootstrap
@@ -193,7 +200,14 @@ class Step
193
200
  cpus = list.length / 2 if cpus > list.length / 2
194
201
 
195
202
  Misc.bootstrap(list, cpus, :bar => "Bootstrapping dependencies for #{path}", :respawn => :always) do |dep|
196
- dep.produce
203
+ Misc.insist do
204
+ begin
205
+ dep.produce
206
+ rescue
207
+ dep.abort
208
+ raise $!
209
+ end
210
+ end
197
211
  nil
198
212
  end
199
213
  else
@@ -46,7 +46,7 @@ end
46
46
 
47
47
  def report_msg(status, name, path)
48
48
 
49
- parts = path.sub(/#{Regexp.quote(name)}$/,'').split "/"
49
+ parts = path.sub(/\{.*/,'').sub(/#{Regexp.quote(name)}$/,'').split "/"
50
50
 
51
51
  task = Log.color(:yellow, parts.pop)
52
52
  workflow = Log.color(:magenta, parts.pop)
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.20.14
4
+ version: 5.20.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-18 00:00:00.000000000 Z
11
+ date: 2016-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake