rbbt-util 5.13.20 → 5.13.21

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66e0264c3104ab53b278845aaab51e2ae75b5d40
4
- data.tar.gz: 7abc522ee044b2527b0a6a40acff4a8fde3c7c90
3
+ metadata.gz: abdf8f28beb9196592b55ba4bce0a36931c8f880
4
+ data.tar.gz: eaacc6b9157a3edafe34c6b3b2db9435c9d9dd08
5
5
  SHA512:
6
- metadata.gz: 925b812e86aed64d95cb08b6f56491518640953f8284168bbefd21e5500989b9a6a8755df667d552115f908a5e4913b4d9c5fac3b9fba2214c66e0162c492c1e
7
- data.tar.gz: 0af9ab272db85087c7c2244d894a0af2c68867c93117d6d1e594bb676b59978bdb1fa5790e915204be8a2423187713b344b02d56af19abcd9ac19d146bc61b6c
6
+ metadata.gz: c832c458e7434da05bdd203097e787815e35b444c12faf1d6e6de423b2d282528c2a9ed4c379be8580c65b6d71fa01d8595ebf313e59de0dddc1ef3ba2e4ce5a
7
+ data.tar.gz: f37553cde0d158988bde704bb73f014d4e8e2d311447d37f87ee61bae7bd314d8e54263438dfce9d22aabf3258b862b87d3fbf910ec4d2f61eb066e75f41d30d
@@ -29,11 +29,12 @@ class RbbtProcessQueue
29
29
  end
30
30
  rescue Aborted
31
31
  Log.warn "Callback thread aborted"
32
- @process_monitor.raise Aborted.new
32
+ @process_monitor.raise $!
33
33
  raise $!
34
34
  rescue ClosedStream
35
35
  rescue Exception
36
36
  Log.warn "Callback thread exception: #{$!.message}"
37
+ Log.exception $!
37
38
  @process_monitor.raise $!
38
39
  raise $!
39
40
  ensure
@@ -1,4 +1,6 @@
1
- Lockfile.refresh = false #if ENV["RBBT_NO_LOCKFILE_REFRESH"] == "true"
1
+ Lockfile.refresh = 5 * 60 #if ENV["RBBT_NO_LOCKFILE_REFRESH"] == "true"
2
+ Lockfile.max_age = 60 * 60 * 5
3
+ Lockfile.refresh=false
2
4
 
3
5
  module Misc
4
6
 
@@ -5,6 +5,18 @@ class Step
5
5
 
6
6
  INFO_SERIALIAZER = Marshal
7
7
 
8
+ def self.wait_for_jobs(jobs)
9
+ begin
10
+ threads = []
11
+ jobs.each do |j| threads << Thread.new{j.grace.join} end
12
+ threads.each{|t| t.join }
13
+ rescue Exception
14
+ threads.each{|t| t.exit }
15
+ jobs.each do |j| j.abort end
16
+ raise $!
17
+ end
18
+ end
19
+
8
20
  def self.files_dir(path)
9
21
  path.nil? ? nil : path + '.files'
10
22
  end
@@ -246,8 +246,6 @@ class Step
246
246
  log :aborted, "#{Log.color :red, "Aborted"} #{Log.color :yellow, task.name.to_s || ""}" if status == :streaming
247
247
  rescue
248
248
  Log.exception $!
249
- ensure
250
- join
251
249
  end
252
250
  end
253
251
  else
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rbbt/workflow'
4
+
5
+ require 'rbbt-util'
6
+ require 'rbbt-util'
7
+ require 'rbbt/util/simpleopt'
8
+
9
+ $0 = "rbbt #{$previous_commands*""} #{ File.basename(__FILE__) }" if $previous_commands
10
+
11
+ options = SOPT.setup <<EOF
12
+ Examine the info of a job result
13
+
14
+ $ rbbt workflow info <job-result>
15
+
16
+ -h--help Help
17
+ EOF
18
+
19
+ SOPT.usage if options[:help]
20
+
21
+ file = ARGV.shift
22
+
23
+ def get_step(file)
24
+ file = file.sub(/\.(info|files)/,'')
25
+ Step.new file
26
+ end
27
+
28
+ def status_msg(status)
29
+ color = case status
30
+ when :error, :aborted, :missing
31
+ :red
32
+ when :streaming
33
+ :yellow
34
+ when :done
35
+ :green
36
+ else
37
+ nil
38
+ end
39
+ Log.color(color, status)
40
+ end
41
+
42
+ step = get_step file
43
+
44
+ info = step.info
45
+ dependencies = info[:dependencies]
46
+ inputs = info[:inputs]
47
+ status = info[:status]
48
+ time = info[:time_elapsed]
49
+ messages = info[:messages]
50
+
51
+ puts Log.color(:magenta, "File") << ": " << step.path
52
+ puts Log.color(:magenta, "Status") << ": " << status_msg(status)
53
+ puts Log.color(:magenta, "Time") << ": " << time.to_i.to_s << " sec." if time
54
+ if inputs and inputs.any?
55
+ puts Log.color(:magenta, "Inputs")
56
+ inputs.each do |input,value|
57
+ case value
58
+ when Array
59
+ puts " " << Misc.format_definition_list_item(input, value[0..5]*"\n", 80, 20, :blue)
60
+ when TrueClass, FalseClass
61
+ puts " " << Misc.format_definition_list_item(input, value.to_s, 80, 20, :blue)
62
+ else
63
+ text = value.split("\n")[0..5].compact * "\n\n"
64
+ puts " " << Misc.format_definition_list_item(input, text, 80, 20, :blue)
65
+ end
66
+ end
67
+ end
68
+
69
+ if dependencies and dependencies.any?
70
+ puts Log.color(:magenta, "Dependencies") << ": "
71
+ dependencies.each do |name,task,file|
72
+ puts " " << file
73
+ end
74
+ end
75
+
76
+ if messages and messages.any?
77
+ puts Log.color(:magenta, "Messages") << ": "
78
+ messages.each do |msg|
79
+ puts " " << msg
80
+ end
81
+ end
@@ -8,6 +8,21 @@ require 'rbbt/util/simpleopt'
8
8
  require 'rbbt/workflow/step'
9
9
  require 'rbbt/util/misc'
10
10
 
11
+ require 'rbbt-util'
12
+ require 'rbbt/util/simpleopt'
13
+
14
+ $0 = "rbbt #{$previous_commands*""} #{ File.basename(__FILE__) }" if $previous_commands
15
+
16
+ options = SOPT.setup <<EOF
17
+ Examine the provenance of a job result
18
+
19
+ $ rbbt workflow prov <job-result>
20
+
21
+ -h--help Help
22
+ EOF
23
+
24
+ SOPT.usage if options[:help]
25
+
11
26
  file = ARGV.shift
12
27
 
13
28
  $seen = []
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.13.20
4
+ version: 5.13.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-26 00:00:00.000000000 Z
11
+ date: 2014-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -258,6 +258,7 @@ files:
258
258
  - share/rbbt_commands/tsv/values
259
259
  - share/rbbt_commands/workflow/cmd
260
260
  - share/rbbt_commands/workflow/example
261
+ - share/rbbt_commands/workflow/info
261
262
  - share/rbbt_commands/workflow/install
262
263
  - share/rbbt_commands/workflow/jobs
263
264
  - share/rbbt_commands/workflow/list