rbbt-rest 1.8.81 → 1.8.82

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9765df9f3ec0cdf45ee797dc69d9c7f8096c7de8
4
- data.tar.gz: 67e007aa33fc7bad853512ef7ea3fac9c89a5fcc
3
+ metadata.gz: b3d6daab394cc889b85fd28c4f11e172c16adcae
4
+ data.tar.gz: 31b215ce0d07e16301dafd5d8b4a4141ef80efb7
5
5
  SHA512:
6
- metadata.gz: 75815aaabbc80dd82a1d3dc53d595b0f6e1400555d6e4cd29c32e619e0b6b388ad2b149dcfcc97d522626386eeb5625269b11423f4617dd43ee037c9f9a89620
7
- data.tar.gz: bfaf28d0c4b5931064f0c081bd78a62972e7447467cebf6af3411b31a4c3f7131caade70f73896c889114a84e59123bfe08d35bc2ee85677f9a39534acd377a1
6
+ metadata.gz: cdcb2fec4ca4dce492fedec59c84d58fe813d1a432800220581b70b7f82267322b4751204b31e19864b7028bd7a5b49822769844f8a14acd1b4b11beb0413f1d
7
+ data.tar.gz: b87429a8396917a46752f90a5a6b6b9f58260e6dc41dbbcd344f27fc3233dcfeba2c9f865bdda88769acc203dde4716d5bd8fdf83b00b8658bd40720231d8b16
@@ -6,10 +6,15 @@ Tilt::SYMBOL_ARRAY_SORTABLE = false
6
6
 
7
7
  module RbbtRESTHelpers
8
8
  def error_for(job, layout = nil)
9
+ iii [job.status, job.dirty?]
9
10
  if ex = job.info[:exception]
10
11
  klass = ex[:class]
11
12
  msg = ex[:message]
12
13
  bkt = ex[:backtrace]
14
+ elsif job.dirty?
15
+ klass = "Exception"
16
+ msg = "Job dirty"
17
+ bkt = []
13
18
  else
14
19
  klass = "Exception"
15
20
  msg = job.messages[-1]
@@ -147,6 +147,8 @@ module Sinatra
147
147
 
148
148
  job = workflow.load_id(File.join(task, job))
149
149
 
150
+ halt 404, "Job not found: #{job.path} (#{job.status})" if job.status == :noinfo and not job.done?
151
+
150
152
  abort_job(workflow, job) and halt 200 if update.to_s == "abort"
151
153
  clean_job(workflow, job) and halt 200 if update.to_s == "clean"
152
154
  recursive_clean_job(workflow, job) and halt 200 if update.to_s == "recursive_clean"
@@ -157,17 +159,23 @@ module Sinatra
157
159
  started = job.started?
158
160
  waiting = job.waiting?
159
161
 
160
- done = job.done?
162
+ done = job.done?
163
+ error = job.error? || job.aborted?
164
+
165
+ dirty = (done || status == :done) && job.dirty?
161
166
 
162
- error = job.error? || job.aborted? || (job.done? && job.dirty?)
163
167
  started = started || done || error
164
168
 
169
+ done = false if dirty
170
+
165
171
  if done
166
172
  show_result job, workflow, task, params
167
173
  else
168
174
  if started || waiting
169
175
  exec_type = execution_type(workflow, task)
170
176
  case
177
+ when dirty
178
+ error_for job
171
179
  when error
172
180
  error_for job
173
181
  when (exec_type == :asynchronous or exec_type == :async)
@@ -200,17 +208,21 @@ module Sinatra
200
208
 
201
209
  job = workflow.load_id(File.join(task, job))
202
210
 
203
- raise RbbtException.new "Job not found: #{job.path} (#{job.status})" unless job.started? or job.waiting? or job.error? or job.aborted?
211
+ not_started = true unless job.started? or job.waiting? or job.error? or job.aborted?
212
+ dirty = true if (job.done? || job.status == :done) && job.dirty?
204
213
 
205
214
  begin
206
- check_step job unless job.done?
215
+ check_step job unless job.done? or not_started
207
216
  rescue Aborted
208
217
  end
209
218
 
219
+ halt 404, "Job not found: #{job.path} (#{job.status})" if job.status == :noinfo and not job.done?
220
+
210
221
  case format
211
222
  when :html
212
223
  workflow_render('job_info', workflow, task, :job => job, :info => job.info)
213
224
  when :json
225
+ halt 200, {}.to_json if not_started
214
226
  content_type "application/json"
215
227
  info_json = {}
216
228
  job.info.each do |k,v|
@@ -223,6 +235,7 @@ module Sinatra
223
235
  v
224
236
  end
225
237
  end
238
+ info_json[:status] = :error if dirty
226
239
  halt 200, info_json.to_json
227
240
  else
228
241
  raise "Unsupported format specified: #{ 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.8.81
4
+ version: 1.8.82
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-23 00:00:00.000000000 Z
11
+ date: 2017-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -1866,7 +1866,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1866
1866
  version: '0'
1867
1867
  requirements: []
1868
1868
  rubyforge_project:
1869
- rubygems_version: 2.6.13
1869
+ rubygems_version: 2.6.14
1870
1870
  signing_key:
1871
1871
  specification_version: 4
1872
1872
  summary: Rbbt Web and REST interfaces