rbbt-util 5.23.4 → 5.23.5

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: 6ad99d5ceecb80bf0d0280c62353eea5d2ab6b17
4
- data.tar.gz: e54fdc997aae385c142661ac32c18338f49dcc67
3
+ metadata.gz: 8fb980bbf88e61f1087f0fd28c27cb3057bd891c
4
+ data.tar.gz: ac0c6c3e802ebdf902301b8289b866252eaa1f35
5
5
  SHA512:
6
- metadata.gz: 9b6d2a578955ef4afde442ef337ae11638ddb17d42057e994dce571ad30da776dc4027a0f2976dac4abe7e61ff6c8ffb12fb3c2994932f4446e32e3dac9028c1
7
- data.tar.gz: c01cb24b5437c370ded0438723ee3a0d5a2c72777aa6b974355670f26e1688119da3fd54627353603841747bb61e5ba08a8384bbcf24cd5d245bbbac4d53c045
6
+ metadata.gz: 6742777bd0aefb41ede80c70d76b1dab223fb443e12a7e492e99a02472e8dcafd9e37c012bda15c260ccd77b6b7c19990b28d2afd9edb4acf23d68bcf9b9197c
7
+ data.tar.gz: 7463782b74d10ec37222a8f9771a8cdf8a094987c96b803a8e8e122365da7bcd17f5cd3d0cca5bccc545b448eb83fa234f4172a5bf3e6fe63d560ec11bdfc0be
data/lib/rbbt/workflow.rb CHANGED
@@ -423,11 +423,31 @@ module Workflow
423
423
  end
424
424
  end
425
425
 
426
+ def self.relocate(listed, real, other)
427
+ sl = listed.split("/", -1)
428
+ so = other.split("/", -1)
429
+ sr = real.split("/", -1)
430
+ prefix = []
431
+ while true
432
+ break if sl[0] != so[0]
433
+ cl = sl.shift
434
+ co = so.shift
435
+ prefix << cl
436
+ end
437
+ File.join(sr - sl + so)
438
+ end
439
+
426
440
  def self.load_step(path)
427
441
  step = Step.new path
428
442
  step.dependencies = (step.info[:dependencies] || []).collect do |task,name,dep_path|
429
- Workflow.load_step dep_path
443
+ if File.exists?(dep_path)
444
+ Workflow.load_step dep_path
445
+ else
446
+ new_path = relocate(step.info[:path], path, dep_path)
447
+ Workflow.load_step new_path
448
+ end
430
449
  end
450
+
431
451
  step
432
452
  end
433
453
 
@@ -153,7 +153,7 @@ class Step
153
153
  def init_info
154
154
  return nil if @exec or info_file.nil? or Open.exists?(info_file)
155
155
  Open.lock(info_file, :lock => info_lock) do
156
- i = {:status => :waiting, :pid => Process.pid}
156
+ i = {:status => :waiting, :pid => Process.pid, :path => path}
157
157
  i[:dependencies] = dependencies.collect{|dep| [dep.task_name, dep.name, dep.path]} if dependencies
158
158
  @info_cache = i
159
159
  Misc.sensiblewrite(info_file, INFO_SERIALIAZER.dump(i), :force => true, :lock => false)
@@ -169,7 +169,6 @@ class Step
169
169
  i[key] = value
170
170
  @info_cache = i
171
171
  Misc.sensiblewrite(info_file, INFO_SERIALIAZER.dump(i), :force => true, :lock => false)
172
- #Misc.insist(([0.01,0.1,1] * 3).sort) do
173
172
  Misc.insist do
174
173
  Open.open(info_file) do |file|
175
174
  INFO_SERIALIAZER.load(file)
@@ -111,15 +111,15 @@ def report(step, offset = 0, task = nil)
111
111
  status = :unsync if status == :done and not File.exist? path
112
112
  str = " " * offset
113
113
  str << report_msg(status, name, path, info)
114
- info[:dependencies].each do |task,name,path|
114
+ step.dependencies.each do |dep|
115
+ path = dep.path
115
116
  new = ! $seen.include?(path)
116
- dep = get_step path
117
117
  if new
118
118
  str << report(dep, offset + 1, task)
119
119
  else
120
120
  str << Log.color(:blue, Log.uncolor(report(dep, offset+1, task)))
121
121
  end
122
- end if info[:dependencies]
122
+ end if step.dependencies
123
123
  str
124
124
  end
125
125
 
@@ -271,4 +271,13 @@ class TestWorkflow < Test::Unit::TestCase
271
271
  assert_equal "CB", TestWF.job(:t3).run
272
272
  end
273
273
 
274
+ def test_relocate
275
+ listed = '/home/user/.rbbt/var/jobs/TestWF/task1/Default'
276
+ real = '/usr/local/var/rbbt/jobs/TestWF/task1/Default'
277
+ other = '/home/user/.rbbt/var/jobs/TestWF/task2/Default'
278
+ real_other = '/usr/local/var/rbbt/jobs/TestWF/task2/Default'
279
+
280
+ assert_equal real_other, Workflow.relocate(listed, real, other)
281
+ end
282
+
274
283
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.23.4
4
+ version: 5.23.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez