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 +4 -4
- data/lib/rbbt/rest/common/render.rb +5 -0
- data/lib/rbbt/rest/workflow.rb +17 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3d6daab394cc889b85fd28c4f11e172c16adcae
|
4
|
+
data.tar.gz: 31b215ce0d07e16301dafd5d8b4a4141ef80efb7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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]
|
data/lib/rbbt/rest/workflow.rb
CHANGED
@@ -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
|
-
|
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.
|
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-
|
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.
|
1869
|
+
rubygems_version: 2.6.14
|
1870
1870
|
signing_key:
|
1871
1871
|
specification_version: 4
|
1872
1872
|
summary: Rbbt Web and REST interfaces
|