rbbt-util 5.13.20 → 5.13.21

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: 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