rbbt-rest 1.8.12 → 1.8.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/rest/workflow/jobs.rb +2 -0
- data/lib/rbbt/rest/workflow/stream_task.rb +21 -6
- 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: b04163cbc85792c0d0051c0db5a1d0fe660cccab
|
4
|
+
data.tar.gz: 1dbc02c47f8557a8cdc5344fda9cb1fd638591ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e4d467e0a73c5b785ffc323b82623ffaa483b8ac816caeaac349ff38b12098be3714952da97507d7a6ae3d107a5eafc82336e83baba21ddeb3ff1849f7a08da
|
7
|
+
data.tar.gz: e6d983292f0703baddc62e5279fea29f0077c49d2e485d056dce53769d2583980cf995cde5557f5355b8434d06156b559006cee5a22b6721fcbce65e38e21d3e
|
@@ -83,9 +83,14 @@ class StreamWorkflowTask
|
|
83
83
|
Misc.add_stream_filename(stream, filename) if filename
|
84
84
|
|
85
85
|
clean_stream = Misc.open_pipe do |sin|
|
86
|
-
|
86
|
+
begin
|
87
|
+
copy_until_boundary(stream, sin, boundary)
|
88
|
+
rescue
|
89
|
+
end
|
87
90
|
end
|
88
91
|
|
92
|
+
ConcurrentStream.setup(clean_stream, :filename => filename)
|
93
|
+
|
89
94
|
task_parameters[stream_input] = clean_stream
|
90
95
|
|
91
96
|
task = task.to_sym
|
@@ -196,14 +201,20 @@ class StreamWorkflowTask
|
|
196
201
|
|
197
202
|
def do_stream(env)
|
198
203
|
uri = env["REQUEST_URI"]
|
204
|
+
|
199
205
|
post = env["REQUEST_METHOD"]
|
206
|
+
return false unless post == "POST"
|
207
|
+
|
200
208
|
hijack = !!env["rack.hijack"]
|
209
|
+
return false unless hijack
|
210
|
+
|
201
211
|
content_type = env["CONTENT_TYPE"]
|
212
|
+
return false unless content_type and content_type.include? "Rbbt_Param_Stream"
|
213
|
+
|
202
214
|
encoding = env["HTTP_TRANSFER_ENCODING"]
|
203
|
-
|
204
|
-
id = id + ": " + Thread.current.object_id.to_s if id
|
215
|
+
return false unless encoding == "chunked"
|
205
216
|
|
206
|
-
|
217
|
+
true
|
207
218
|
end
|
208
219
|
|
209
220
|
def call(env)
|
@@ -214,12 +225,13 @@ class StreamWorkflowTask
|
|
214
225
|
client = env["rack.hijack"]
|
215
226
|
buffer = client.instance_variable_get('@buffer')
|
216
227
|
tcp_io = client.call
|
217
|
-
Log.low "
|
228
|
+
Log.low "Hijacking post data #{tcp_io}"
|
218
229
|
|
219
230
|
content_type = env["CONTENT_TYPE"]
|
220
231
|
|
221
232
|
tcp_merged_io = Misc.open_pipe do |sin| merge_chunks(tcp_io, sin, buffer) end
|
222
233
|
|
234
|
+
|
223
235
|
inputs, stream_input, filename, stream, boundary = get_inputs(content_type, tcp_merged_io)
|
224
236
|
|
225
237
|
workflow, task = parse_uri(env)
|
@@ -228,6 +240,9 @@ class StreamWorkflowTask
|
|
228
240
|
|
229
241
|
job_url = File.join("/", workflow.to_s, task, job.name)
|
230
242
|
|
243
|
+
raise "Job aborted" if job.aborted?
|
244
|
+
raise job.messages.last if job.error?
|
245
|
+
|
231
246
|
out_stream = TSV.get_stream job
|
232
247
|
|
233
248
|
begin
|
@@ -256,7 +271,7 @@ class StreamWorkflowTask
|
|
256
271
|
raise $!
|
257
272
|
end
|
258
273
|
else
|
259
|
-
Log.
|
274
|
+
Log.low "NOT Hijacking post data"
|
260
275
|
|
261
276
|
@app.call(env)
|
262
277
|
end
|
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.8.
|
4
|
+
version: 1.8.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|