rbbt-rest 1.3.9 → 1.3.10
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 +4 -4
- data/lib/rbbt/rest/client/step.rb +21 -8
- data/lib/rbbt/rest/main.rb +31 -2
- data/lib/rbbt/rest/workflow.rb +1 -0
- data/lib/rbbt/rest/workflow/jobs.rb +20 -5
- 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: f37a8c9910018bf272558a676de7eec240f0af66
|
4
|
+
data.tar.gz: 5b0b9d2405a59d8c0f134de26368d73d2c0a677c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ba5ce4ffd9f48cba52301a48d5510455711b481709bbff517b58f4418ef2fe5ecf01ce6487c0a3acc49227b1e8cbc5284ee6fb213034e55f0a1695c726878d1
|
7
|
+
data.tar.gz: b9a3df738c931583e0fe7cf06e08c65d9915ddad0ca6649eef7d0f37616e53ae3ea7fe333bce8571086a67c5148fa5b08642add26979f0d2204d0cc5f59f2123
|
@@ -13,6 +13,7 @@ class WorkflowRESTClient
|
|
13
13
|
end
|
14
14
|
def initialize(base_url, task = nil, base_name = nil, inputs = nil, result_type = nil, result_description = nil, is_exec = false)
|
15
15
|
@base_url, @task, @base_name, @inputs, @result_type, @result_description, @is_exec = base_url, task, base_name, inputs, result_type, result_description, is_exec
|
16
|
+
@mutex = Mutex.new
|
16
17
|
RemoteStep.get_streams @inputs
|
17
18
|
end
|
18
19
|
|
@@ -86,10 +87,13 @@ class WorkflowRESTClient
|
|
86
87
|
def get
|
87
88
|
params ||= {}
|
88
89
|
params = params.merge(:_format => [:string, :boolean, :tsv, :annotations,:array].include?(result_type.to_sym) ? :raw : :json )
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
90
|
+
Misc.insist 3, rand(2) + 1 do
|
91
|
+
begin
|
92
|
+
WorkflowRESTClient.get_raw(url, params)
|
93
|
+
rescue
|
94
|
+
Log.exception $!
|
95
|
+
raise $!
|
96
|
+
end
|
93
97
|
end
|
94
98
|
end
|
95
99
|
|
@@ -118,10 +122,18 @@ class WorkflowRESTClient
|
|
118
122
|
end
|
119
123
|
|
120
124
|
def run(noload = false)
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
+
@mutex.synchronize do
|
126
|
+
@result ||= begin
|
127
|
+
if @is_exec
|
128
|
+
exec_job
|
129
|
+
else
|
130
|
+
init_job(:synchronous)
|
131
|
+
iii url
|
132
|
+
self.load
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
noload ? path : @result
|
125
137
|
end
|
126
138
|
|
127
139
|
def exec(*args)
|
@@ -129,6 +141,7 @@ class WorkflowRESTClient
|
|
129
141
|
end
|
130
142
|
|
131
143
|
def join
|
144
|
+
return if self.done?
|
132
145
|
self.load
|
133
146
|
self
|
134
147
|
end
|
data/lib/rbbt/rest/main.rb
CHANGED
@@ -7,6 +7,7 @@ require 'sinatra/base'
|
|
7
7
|
require 'sinatra/cross_origin'
|
8
8
|
require 'json'
|
9
9
|
|
10
|
+
require 'rack/stream'
|
10
11
|
module Sinatra
|
11
12
|
module RbbtRESTMain
|
12
13
|
def add_sass_load_path(path)
|
@@ -44,7 +45,15 @@ module Sinatra
|
|
44
45
|
set :allow_headers, ['URI']
|
45
46
|
|
46
47
|
before do
|
47
|
-
|
48
|
+
method = request.request_method
|
49
|
+
method_color = case method
|
50
|
+
when "GET"
|
51
|
+
:cyan
|
52
|
+
when "POST"
|
53
|
+
:yellow
|
54
|
+
end
|
55
|
+
|
56
|
+
Log.info{ "#{Log.color method_color, method} #{Log.color(:blue, request.ip)}: " << request.path_info.gsub('/', Log.color(:blue, "/")) << ". Params: " << Log.color(:blue, Misc.fingerprint(params))}
|
48
57
|
process_common_parameters
|
49
58
|
|
50
59
|
headers 'Access-Control-Allow-Origin' => '*'
|
@@ -55,7 +64,26 @@ module Sinatra
|
|
55
64
|
end
|
56
65
|
|
57
66
|
after do
|
58
|
-
|
67
|
+
method = request.request_method
|
68
|
+
method_color = case method
|
69
|
+
when "GET"
|
70
|
+
:cyan
|
71
|
+
when "POST"
|
72
|
+
:green
|
73
|
+
end
|
74
|
+
|
75
|
+
status = response.status.to_s
|
76
|
+
case status.to_i
|
77
|
+
when 200
|
78
|
+
color = :green
|
79
|
+
when 202
|
80
|
+
color = :yellow
|
81
|
+
when 404,500
|
82
|
+
color = :red
|
83
|
+
else
|
84
|
+
color = nil
|
85
|
+
end
|
86
|
+
Log.info{ "#{Log.color method_color, method} #{Log.color :blue, request.ip}: " << request.path_info.gsub('/', Log.color(:blue, "/")) << ". Status: " << Log.color(color, status) }
|
59
87
|
|
60
88
|
if profile
|
61
89
|
result = RubyProf.stop
|
@@ -144,5 +172,6 @@ module Sinatra
|
|
144
172
|
end
|
145
173
|
end
|
146
174
|
end
|
175
|
+
#use Rack::Stream
|
147
176
|
end
|
148
177
|
|
data/lib/rbbt/rest/workflow.rb
CHANGED
@@ -152,15 +152,25 @@ module WorkflowRESTHelpers
|
|
152
152
|
job.recursive_clean if update == :recursive_clean
|
153
153
|
|
154
154
|
execution_type = execution_type(workflow, task)
|
155
|
-
case execution_type
|
155
|
+
case execution_type.to_sym
|
156
156
|
when :exec
|
157
157
|
show_exec_result job.exec, workflow, task
|
158
158
|
when :synchronous, :sync
|
159
|
-
|
159
|
+
if update == :reload
|
160
|
+
job.abort
|
161
|
+
job.clean
|
162
|
+
end
|
163
|
+
|
160
164
|
begin
|
161
|
-
job.run unless
|
165
|
+
job.run unless Open.exists? job.info_file
|
162
166
|
job_url = to(File.join("/", workflow.to_s, task, job.name))
|
163
167
|
job_url += "?_format=#{@format}" if @format
|
168
|
+
begin
|
169
|
+
Misc.insist [0.1, 0.2, 0.5, 1, 3] do
|
170
|
+
raise unless Open.exists? job.info_file
|
171
|
+
end
|
172
|
+
rescue
|
173
|
+
end
|
164
174
|
halt 200, job.name if format == :jobname
|
165
175
|
redirect job_url
|
166
176
|
rescue
|
@@ -168,10 +178,15 @@ module WorkflowRESTHelpers
|
|
168
178
|
halt 500, $!.message
|
169
179
|
end
|
170
180
|
when :asynchronous, :async, nil
|
171
|
-
|
181
|
+
if update == :reload
|
182
|
+
job.abort
|
183
|
+
job.clean
|
184
|
+
end
|
172
185
|
|
173
186
|
begin
|
174
|
-
|
187
|
+
iii :fork
|
188
|
+
|
189
|
+
job.fork
|
175
190
|
|
176
191
|
job_url = to(File.join("/", workflow.to_s, task, job.name))
|
177
192
|
job_url += "?_format=#{@format}" if @format
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.10
|
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-04-
|
11
|
+
date: 2014-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|