rbbt-rest 1.8.12 → 1.8.13
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/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
|