rbbt-rest 1.8.13 → 1.8.14

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: b04163cbc85792c0d0051c0db5a1d0fe660cccab
4
- data.tar.gz: 1dbc02c47f8557a8cdc5344fda9cb1fd638591ea
3
+ metadata.gz: 0849239a178b0971b589cdd302a6f47ece9fe14f
4
+ data.tar.gz: 21e387a903f58bd462b2972c708a637b36ccf987
5
5
  SHA512:
6
- metadata.gz: 2e4d467e0a73c5b785ffc323b82623ffaa483b8ac816caeaac349ff38b12098be3714952da97507d7a6ae3d107a5eafc82336e83baba21ddeb3ff1849f7a08da
7
- data.tar.gz: e6d983292f0703baddc62e5279fea29f0077c49d2e485d056dce53769d2583980cf995cde5557f5355b8434d06156b559006cee5a22b6721fcbce65e38e21d3e
6
+ metadata.gz: dd81011658ccc8782697a636c85aca7c782dbffb3eccd74d7643ae379aa66e67e6e80018bc61609329b75bb9dbdf3b455e22337f996426c45c63ff4b181d35b3
7
+ data.tar.gz: 1d8eeb288a895e5c53b1beb10db68fa32b91a7d40abf3bfaa6173ee70359348cb92e2d0c360c5834245954369c11eeb2d4cf52b2c096b682d895b36003fc0959
@@ -195,12 +195,18 @@ module RbbtRESTHelpers
195
195
  end
196
196
  end
197
197
 
198
- def prepare_input(params, input, type)
198
+ def prepare_input(params, input, type, stream = false)
199
199
  value = consume_parameter(input, params)
200
200
  param_file = consume_parameter(input.to_s + '__param_file', params)
201
201
 
202
202
  param_file, value = value, nil if Hash === value and value.include? :tempfile
203
203
 
204
+ if stream and param_file
205
+ filename = param_file[:head].match(/filename="(.*?)"\r\n/)[1]
206
+ io = param_file[:tempfile].open
207
+ return ConcurrentStream.setup(io, :filename => filename)
208
+ end
209
+
204
210
  return nil if value.nil? and param_file.nil?
205
211
 
206
212
  fixed_value = fix_input(type, value, param_file)
@@ -52,10 +52,12 @@ module WorkflowRESTHelpers
52
52
  def prepare_job_inputs(workflow, task, params)
53
53
  inputs = workflow.task_info(task)[:inputs]
54
54
  input_types = workflow.task_info(task)[:input_types]
55
+ input_options = workflow.task_info(task)[:input_options]
55
56
 
56
57
  task_inputs = {}
57
58
  inputs.each do |input|
58
- task_inputs[input] = prepare_input(params, input, input_types[input])
59
+ stream = input_options.include?(input) and input_options[input][:stream]
60
+ task_inputs[input] = prepare_input(params, input, input_types[input], stream)
59
61
  end
60
62
 
61
63
  task_inputs
@@ -149,7 +151,7 @@ module WorkflowRESTHelpers
149
151
  end
150
152
  end
151
153
 
152
- def stream_job(job)
154
+ def stream_job(job, job_url = nil)
153
155
  unless job.started? or job.done?
154
156
  job.run(:stream)
155
157
  job.soft_grace
@@ -163,6 +165,8 @@ module WorkflowRESTHelpers
163
165
 
164
166
  Misc.consume_stream(s, true, sin)
165
167
 
168
+ headers "RBBT-STREAMING-JOB-URL" => job_url if job_url
169
+
166
170
  halt 200, sout
167
171
  end
168
172
 
@@ -184,7 +188,9 @@ module WorkflowRESTHelpers
184
188
  job.clean
185
189
  end
186
190
 
187
- stream_job(job)
191
+ job_url = File.join("/", workflow.to_s, task, job.name)
192
+
193
+ stream_job(job, job_url)
188
194
 
189
195
  when :synchronous, :sync
190
196
  if update == :reload
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.13
4
+ version: 1.8.14
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-13 00:00:00.000000000 Z
11
+ date: 2016-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake