rbbt-util 5.25.5 → 5.25.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/persist.rb +7 -4
- data/lib/rbbt/rest/client/step.rb +12 -2
- data/lib/rbbt/workflow/definition.rb +1 -0
- data/share/rbbt_commands/workflow/server +1 -1
- data/share/rbbt_commands/workflow/task +1 -0
- data/share/workflow_config.ru +3 -0
- 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: 6c41dd2cc666f027f12f3f06c3f4bd7752f79622
|
4
|
+
data.tar.gz: a58c81c37d6ac31ecdac5b1a4d43979ef6ac6d5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ca7a1b01d8b1d446eda5835d5fd9a1b1a4566385f0f47b50609d3cad1eec934a2faf834aa1da47ff861d4986dd441952f3ab32dcb33614d17eaa66165377f78
|
7
|
+
data.tar.gz: f0fb32fb43d1e59e5e6152cde6831c3b63379317f6d82ad48851d82e7c34e561835766efc0794efff0b4d92135ceec1f661f73f09d037da59d090e8378c43247
|
data/lib/rbbt/persist.rb
CHANGED
@@ -351,16 +351,17 @@ module Persist
|
|
351
351
|
|
352
352
|
persist_options ||= {}
|
353
353
|
if type == :memory and persist_options[:file] and persist_options[:persist]
|
354
|
+
repo = persist_options[:repo] || Persist::MEMORY
|
354
355
|
if persist_options[:persist] == :update || persist_options[:update]
|
355
|
-
|
356
|
+
repo.delete persist_options[:file]
|
356
357
|
end
|
357
|
-
return
|
358
|
+
return repo[persist_options[:file]] ||= yield
|
358
359
|
end
|
359
360
|
|
360
361
|
if FalseClass === persist_options[:persist]
|
361
362
|
yield
|
362
363
|
else
|
363
|
-
persist_options[:update]
|
364
|
+
persist_options[:update] = true if persist_options[:persist].to_s == "update"
|
364
365
|
other_options = Misc.process_options persist_options, :other
|
365
366
|
path = persistence_path(name, persist_options, other_options || {})
|
366
367
|
|
@@ -375,6 +376,7 @@ module Persist
|
|
375
376
|
when type.to_sym == :memory
|
376
377
|
repo = persist_options[:repo] || Persist::MEMORY
|
377
378
|
path = path.find if Path === path
|
379
|
+
repo.delete path if persist_options[:update]
|
378
380
|
repo[path] ||= yield
|
379
381
|
|
380
382
|
when (type.to_sym == :annotations and persist_options.include? :annotation_repo)
|
@@ -475,8 +477,9 @@ module Persist
|
|
475
477
|
options = options.dup
|
476
478
|
file = name
|
477
479
|
repo = options.delete :repo if options and options.any?
|
480
|
+
update = options.delete :update if options and options.any?
|
478
481
|
file << "_" << (options[:key] ? options[:key] : Misc.hash2md5(options)) if options and options.any?
|
479
|
-
persist name, :memory, {:repo => repo, :persist => true, :file => file}.merge(options), &block
|
482
|
+
persist name, :memory, {:repo => repo, :update => update, :persist => true, :file => file}.merge(options), &block
|
480
483
|
end
|
481
484
|
end
|
482
485
|
end
|
@@ -128,7 +128,15 @@ class WorkflowRESTClient
|
|
128
128
|
|
129
129
|
def info(check_lock=false)
|
130
130
|
@done = @info && @info[:status] && @info[:status].to_sym == :done
|
131
|
-
|
131
|
+
|
132
|
+
if !@done && (@last_info_time.nil? || (Time.now - @last_info_time) > 0.5)
|
133
|
+
update = true
|
134
|
+
else
|
135
|
+
update = false
|
136
|
+
end
|
137
|
+
|
138
|
+
@info = Persist.memory("RemoteSteps Info", :url => @url, :persist => true, :update => update) do
|
139
|
+
@last_info_time = Time.now
|
132
140
|
init_job unless @url
|
133
141
|
info = WorkflowRESTClient.get_json(File.join(@url, 'info'))
|
134
142
|
info = WorkflowRESTClient.fix_hash(info)
|
@@ -140,7 +148,7 @@ class WorkflowRESTClient
|
|
140
148
|
def status
|
141
149
|
return :done if @done
|
142
150
|
return nil unless url or started?
|
143
|
-
return :streaming if @streaming
|
151
|
+
#return :streaming if @streaming
|
144
152
|
begin
|
145
153
|
status = info[:status]
|
146
154
|
@done = true if status and status.to_sym == :done
|
@@ -195,6 +203,8 @@ class WorkflowRESTClient
|
|
195
203
|
def init_job(cache_type = nil, other_params = {})
|
196
204
|
cache_type = :asynchronous if cache_type.nil? and not @is_exec
|
197
205
|
cache_type = :exec if cache_type.nil?
|
206
|
+
@last_info_time = nil
|
207
|
+
@done = false
|
198
208
|
get_streams
|
199
209
|
@name ||= Persist.memory("RemoteSteps", :workflow => self, :task => task, :jobname => @name, :inputs => inputs, :cache_type => cache_type) do
|
200
210
|
WorkflowRESTClient.post_jobname(File.join(base_url, task.to_s), inputs.merge(other_params).merge(:jobname => @name||@base_name, :_cache_type => cache_type))
|
@@ -162,6 +162,7 @@ module Workflow
|
|
162
162
|
end
|
163
163
|
|
164
164
|
tasks.each do |task|
|
165
|
+
Log.high "Task #{task} from #{source.to_s} is already present in #{self.to_s} and will be cloacked" if self.tasks.include? task.to_sym
|
165
166
|
self.tasks[task.to_sym] = source.tasks[task.to_sym] if source.tasks.include? task.to_sym
|
166
167
|
self.task_dependencies[task.to_sym] = source.task_dependencies[task.to_sym] if source.tasks.include? task.to_sym
|
167
168
|
self.task_description[task.to_sym] = source.task_description[task.to_sym] if source.tasks.include? task.to_sym
|
@@ -94,7 +94,7 @@ TmpFile.with_file do |app_dir|
|
|
94
94
|
ENV["RBBT_WORKFLOW_TASK_STREAM"] = 'true'
|
95
95
|
end
|
96
96
|
|
97
|
-
config_ru_file = File.exist?('./workflow_config.ru') ? './
|
97
|
+
config_ru_file = File.exist?('./workflow_config.ru') ? './workflow_config.ru' : Rbbt.share['workflow_config.ru'].find
|
98
98
|
|
99
99
|
|
100
100
|
if options[:options]
|
@@ -486,6 +486,7 @@ when (defined?(WorkflowRESTClient) and WorkflowRESTClient::RemoteStep)
|
|
486
486
|
res.join if res.respond_to? :join
|
487
487
|
elsif res.nil?
|
488
488
|
job.join
|
489
|
+
raise job.get_exception if job.error? || job.aborted?
|
489
490
|
puts Open.read(job.path, :nocache => true, :nofail => true)
|
490
491
|
else
|
491
492
|
if Array === res
|
data/share/workflow_config.ru
CHANGED
@@ -80,6 +80,9 @@ load_file etc_dir['app.d/post.rb'].find_all
|
|
80
80
|
#{{{ PRELOAD
|
81
81
|
load_file etc_dir['app.d/preload.rb'].find_all
|
82
82
|
|
83
|
+
#{{{ PRELOAD
|
84
|
+
load_file Rbbt.etc['app.d/semaphores.rb'].find_all
|
85
|
+
|
83
86
|
if etc_dir['target_workflow_exports'].exists?
|
84
87
|
exports = etc_dir['target_workflow_exports'].read.split("\n")
|
85
88
|
exports.each do |task|
|
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.25.
|
4
|
+
version: 5.25.6
|
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-12-
|
11
|
+
date: 2018-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|