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