rbbt-rest 1.8.81 → 1.8.82

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: 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