cpee 2.1.63 → 2.1.64
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/cpee.gemspec +2 -2
- data/server/executionhandlers/ruby/connection.rb +38 -42
- data/server/executionhandlers/rubyext/connection.rb +42 -46
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d5e5c7b5da8458c5a7e2101d018337ba353c6a5d5e3fe5e359456aba9693f02
|
4
|
+
data.tar.gz: f74517ec8299ce372750c0d4e6cce29d678ae328a96942cac80c3e86d73f9a1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a382615beced6f3af27bee42068b8000d22bc1d9694351659d97b7013ac11b6c8ab34bcadb29789b3f8f46d29b1e19a9f380903f7a04bf19a03c10b70557a96
|
7
|
+
data.tar.gz: 003f97f1487e72749878bf00e34c1d557da3381b325879e3575f2b690584baf65a0b81c0e57490345e289a6c42108a319761bf5a5ec38ce796665ed273fdcc5d
|
data/cpee.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee"
|
3
|
-
s.version = "2.1.
|
3
|
+
s.version = "2.1.64"
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.license = "LGPL-3.0-or-later"
|
6
6
|
s.summary = "The cloud process execution engine (cpee.org). If you just need workflow execution, without a rest service exposing it, then use WEEL."
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.homepage = 'http://cpee.org/'
|
23
23
|
|
24
24
|
s.add_runtime_dependency 'riddl', '~> 1.0'
|
25
|
-
s.add_runtime_dependency 'weel', '~> 1.99', '>= 1.99.
|
25
|
+
s.add_runtime_dependency 'weel', '~> 1.99', '>= 1.99.123'
|
26
26
|
s.add_runtime_dependency 'highline', '~> 2.0'
|
27
27
|
s.add_runtime_dependency 'redis', '~> 5.0'
|
28
28
|
s.add_runtime_dependency 'rubyzip', '~>2'
|
@@ -68,24 +68,6 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
68
68
|
@guard_items = []
|
69
69
|
end # }}}
|
70
70
|
|
71
|
-
def prepare(readonly, endpoints, parameters) #{{{
|
72
|
-
@handler_endpoint = endpoints.is_a?(Array) ? endpoints.map{ |ep| readonly.endpoints[ep] }.compact : readonly.endpoints[endpoints]
|
73
|
-
if @controller.attributes['twin_engine']
|
74
|
-
@handler_endpoint_orig = @handler_endpoint
|
75
|
-
@handler_endpoint = @controller.attributes['twin_engine'].to_s + '?original_endpoint=' + Riddl::Protocols::Utils::escape(@handler_endpoint)
|
76
|
-
end
|
77
|
-
params = parameters.dup
|
78
|
-
params[:arguments] = params[:arguments].dup if params[:arguments]
|
79
|
-
params[:arguments]&.map! do |ele|
|
80
|
-
t = ele.dup
|
81
|
-
if t.value.is_a?(Proc)
|
82
|
-
t.value = readonly.instance_exec &t.value
|
83
|
-
end
|
84
|
-
t
|
85
|
-
end
|
86
|
-
params
|
87
|
-
end #}}}
|
88
|
-
|
89
71
|
def additional #{{{
|
90
72
|
{
|
91
73
|
:attributes => @controller.attributes,
|
@@ -256,9 +238,9 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
256
238
|
true
|
257
239
|
end # }}}
|
258
240
|
|
259
|
-
def activity_uuid
|
241
|
+
def activity_uuid #{{{
|
260
242
|
@handler_activity_uuid
|
261
|
-
end
|
243
|
+
end #}}}
|
262
244
|
|
263
245
|
def inform_activity_done # {{{
|
264
246
|
@controller.notify("activity/done", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position)
|
@@ -292,7 +274,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
292
274
|
@controller.vote("activity/syncing_before", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :activity => @handler_position, :label => @label, :parameters => parameters)
|
293
275
|
end # }}}
|
294
276
|
|
295
|
-
def callback(result=nil,options={})
|
277
|
+
def callback(result=nil,options={}) #{{{
|
296
278
|
recv = CPEE::EvalRuby::Translation::structurize_result(result)
|
297
279
|
@controller.notify("activity/receiving", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv, :annotations => @anno)
|
298
280
|
|
@@ -323,7 +305,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
323
305
|
@handler_continue.continue
|
324
306
|
end
|
325
307
|
end
|
326
|
-
end
|
308
|
+
end #}}}
|
327
309
|
|
328
310
|
def mem_guard() #{{{
|
329
311
|
@guard_files.delete_if do |p|
|
@@ -337,29 +319,43 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
337
319
|
GC.start
|
338
320
|
end #}}}
|
339
321
|
|
340
|
-
def
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
322
|
+
def prepare(__struct, __endpoints, __parameters) #{{{
|
323
|
+
@handler_endpoint = __endpoints.is_a?(Array) ? __endpoints.map{ |ep| __struct.endpoints[ep] }.compact : __struct.endpoints[__endpoints]
|
324
|
+
if @controller.attributes['twin_engine']
|
325
|
+
@handler_endpoint_orig = @handler_endpoint
|
326
|
+
@handler_endpoint = @controller.attributes['twin_engine'].to_s + '?original_endpoint=' + Riddl::Protocols::Utils::escape(@handler_endpoint)
|
327
|
+
end
|
328
|
+
__params = __parameters.dup
|
329
|
+
__params[:arguments] = __params[:arguments].dup if __params[:arguments]
|
330
|
+
__params[:arguments]&.map! do |__ele|
|
331
|
+
__tmp = __ele.dup
|
332
|
+
if __tmp.value.is_a?(WEEL::ProcString)
|
333
|
+
__tmp.value = __struct.instance_eval __tmp.value.code, 'Parameter', 1
|
334
|
+
end
|
335
|
+
__tmp
|
336
|
+
end
|
337
|
+
__params
|
338
|
+
end #}}}
|
339
|
+
def test_condition(__dataelements,__endpoints,__local,__additional,__code,__args={}) #{{{
|
340
|
+
__struct = WEEL::ReadStructure.new(__dataelements,__endpoints,__local,__additional).instance_eval(__code,'Condition',1)
|
341
|
+
@controller.notify("gateway/decide", :instance_uuid => @controller.uuid, :code => code, :condition => (__struct ? "true" : "false"))
|
342
|
+
__struct
|
343
|
+
end #}}}
|
344
|
+
def manipulate(__readonly,__lock,__dataelements,__endpoints,__status,__local,__additional,__code,__where,__result=nil,__options=nil) #{{{
|
345
|
+
result = CPEE::EvalRuby::Translation::simplify_structurized_result(__result)
|
346
|
+
__struct = if __readonly
|
347
|
+
WEEL::ReadStructure.new(__dataelements,__endpoints,__local,__additional)
|
352
348
|
else
|
353
|
-
WEEL::ManipulateStructure.new(
|
349
|
+
WEEL::ManipulateStructure.new(__dataelements,__endpoints,__status,__local,__additional)
|
354
350
|
end
|
355
|
-
|
356
|
-
|
357
|
-
end
|
351
|
+
__struct.instance_eval(__code,__where,1)
|
352
|
+
__struct
|
353
|
+
end #}}}
|
358
354
|
|
359
|
-
def split_branches(branches) # factual, so for inclusive or [[a],[b],[c,d,e]]
|
355
|
+
def split_branches(branches) # factual, so for inclusive or [[a],[b],[c,d,e]]{{{
|
360
356
|
@controller.notify("gateway/split", :instance_uuid => @controller.uuid, :branches => branches)
|
361
|
-
end
|
362
|
-
def join_branches(branches) # factual, so for inclusive or [[a],[b],[c,d,e]]
|
357
|
+
end #}}}
|
358
|
+
def join_branches(branches) # factual, so for inclusive or [[a],[b],[c,d,e]]{{{
|
363
359
|
@controller.notify("gateway/join", :instance_uuid => @controller.uuid, :branches => branches)
|
364
|
-
end
|
360
|
+
end #}}}
|
365
361
|
end
|
@@ -68,24 +68,6 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
68
68
|
@guard_items = []
|
69
69
|
end # }}}
|
70
70
|
|
71
|
-
def prepare(readonly, endpoints, parameters) #{{{
|
72
|
-
@handler_endpoint = endpoints.is_a?(Array) ? endpoints.map{ |ep| readonly.endpoints[ep] }.compact : readonly.endpoints[endpoints]
|
73
|
-
if @controller.attributes['twin_engine']
|
74
|
-
@handler_endpoint_orig = @handler_endpoint
|
75
|
-
@handler_endpoint = @controller.attributes['twin_engine'].to_s + '?original_endpoint=' + Riddl::Protocols::Utils::escape(@handler_endpoint)
|
76
|
-
end
|
77
|
-
params = parameters.dup
|
78
|
-
params[:arguments] = params[:arguments].dup if params[:arguments]
|
79
|
-
params[:arguments]&.map! do |ele|
|
80
|
-
t = ele.dup
|
81
|
-
if t.value.is_a?(Proc)
|
82
|
-
t.value = readonly.instance_exec &t.value
|
83
|
-
end
|
84
|
-
t
|
85
|
-
end
|
86
|
-
params
|
87
|
-
end #}}}
|
88
|
-
|
89
71
|
def additional #{{{
|
90
72
|
{
|
91
73
|
:attributes => @controller.attributes,
|
@@ -256,9 +238,9 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
256
238
|
true
|
257
239
|
end # }}}
|
258
240
|
|
259
|
-
def activity_uuid
|
241
|
+
def activity_uuid #{{{
|
260
242
|
@handler_activity_uuid
|
261
|
-
end
|
243
|
+
end #}}}
|
262
244
|
|
263
245
|
def inform_activity_done # {{{
|
264
246
|
@controller.notify("activity/done", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position)
|
@@ -292,7 +274,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
292
274
|
@controller.vote("activity/syncing_before", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :activity => @handler_position, :label => @label, :parameters => parameters)
|
293
275
|
end # }}}
|
294
276
|
|
295
|
-
def callback(result=nil,options={})
|
277
|
+
def callback(result=nil,options={}) #{{{
|
296
278
|
status, ret, headers = Riddl::Client.new(@controller.url_result_transformation).request 'put' => result
|
297
279
|
recv = if status >= 200 && status < 300
|
298
280
|
JSON::parse(ret[0].value.read)
|
@@ -330,7 +312,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
330
312
|
@handler_continue.continue
|
331
313
|
end
|
332
314
|
end
|
333
|
-
end
|
315
|
+
end #}}}
|
334
316
|
|
335
317
|
def mem_guard() #{{{
|
336
318
|
@guard_files.delete_if do |p|
|
@@ -344,7 +326,37 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
344
326
|
GC.start
|
345
327
|
end #}}}
|
346
328
|
|
347
|
-
def
|
329
|
+
def prepare(struct, endpoints, parameters) #{{{
|
330
|
+
@handler_endpoint = endpoints.is_a?(Array) ? endpoints.map{ |ep| struct.endpoints[ep] }.compact : struct.endpoints[endpoints]
|
331
|
+
if @controller.attributes['twin_engine']
|
332
|
+
@handler_endpoint_orig = @handler_endpoint
|
333
|
+
@handler_endpoint = @controller.attributes['twin_engine'].to_s + '?original_endpoint=' + Riddl::Protocols::Utils::escape(@handler_endpoint)
|
334
|
+
end
|
335
|
+
params = parameters.dup
|
336
|
+
params[:arguments] = params[:arguments].dup if params[:arguments]
|
337
|
+
params[:arguments]&.map! do |ele|
|
338
|
+
t = ele.dup
|
339
|
+
if t.value.is_a?(WEEL::ProcString)
|
340
|
+
send = []
|
341
|
+
send.push Riddl::Parameter::Simple::new('code',t.value.code)
|
342
|
+
send.push Riddl::Parameter::Complex::new('dataelements','application/json', JSON::generate(struct.data))
|
343
|
+
send.push Riddl::Parameter::Complex::new('local','application/json', JSON::generate(struct.local)) if struct.local
|
344
|
+
send.push Riddl::Parameter::Complex::new('endpoints','application/json', JSON::generate(struct.endpoints))
|
345
|
+
send.push Riddl::Parameter::Complex::new('additional','application/json', JSON::generate(struct.additional))
|
346
|
+
|
347
|
+
status, ret, headers = Riddl::Client.new(@controller.url_code).request 'put' => send
|
348
|
+
recv = if status >= 200 && status < 300
|
349
|
+
ret[0].value
|
350
|
+
else
|
351
|
+
nil
|
352
|
+
end
|
353
|
+
t.value = recv
|
354
|
+
end
|
355
|
+
t
|
356
|
+
end
|
357
|
+
params
|
358
|
+
end #}}}
|
359
|
+
def test_condition(dataelements,endpoints,local,additional,code,args={}) #{{{
|
348
360
|
send = []
|
349
361
|
send.push Riddl::Parameter::Simple::new('code',code)
|
350
362
|
send.push Riddl::Parameter::Complex::new('dataelements','application/json', JSON::generate(dataelements))
|
@@ -362,24 +374,8 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
362
374
|
recv = (recv == 'false' || recv == 'null' || recv == 'nil' ? false : true)
|
363
375
|
@controller.notify("gateway/decide", :instance_uuid => @controller.uuid, :code => code, :condition => recv)
|
364
376
|
recv
|
365
|
-
end
|
366
|
-
def
|
367
|
-
send = []
|
368
|
-
send.push Riddl::Parameter::Simple::new('code',code)
|
369
|
-
send.push Riddl::Parameter::Complex::new('dataelements','application/json', JSON::generate(dataelements))
|
370
|
-
send.push Riddl::Parameter::Complex::new('local','application/json', JSON::generate(local)) if local
|
371
|
-
send.push Riddl::Parameter::Complex::new('endpoints','application/json', JSON::generate(endpoints))
|
372
|
-
send.push Riddl::Parameter::Complex::new('additional','application/json', JSON::generate(additional))
|
373
|
-
|
374
|
-
status, ret, headers = Riddl::Client.new(@controller.url_code).request 'put' => send
|
375
|
-
recv = if status >= 200 && status < 300
|
376
|
-
ret[0].value
|
377
|
-
else
|
378
|
-
nil
|
379
|
-
end
|
380
|
-
recv
|
381
|
-
end
|
382
|
-
def manipulate(readonly,lock,dataelements,endpoints,status,local,additional,code,where,result=nil,options=nil)
|
377
|
+
end #}}}
|
378
|
+
def manipulate(readonly,lock,dataelements,endpoints,status,local,additional,code,where,result=nil,options=nil) #{{{
|
383
379
|
lock.synchronize do
|
384
380
|
send = []
|
385
381
|
send.push Riddl::Parameter::Simple::new('code',code)
|
@@ -413,12 +409,12 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
413
409
|
nil
|
414
410
|
end
|
415
411
|
end
|
416
|
-
end
|
412
|
+
end #}}}
|
417
413
|
|
418
|
-
def split_branches(branches) # factual, so for inclusive or [[a],[b],[c,d,e]]
|
414
|
+
def split_branches(branches) # factual, so for inclusive or [[a],[b],[c,d,e]]{{{
|
419
415
|
@controller.notify("gateway/split", :instance_uuid => @controller.uuid, :branches => branches)
|
420
|
-
end
|
421
|
-
def join_branches(branches) # factual, so for inclusive or [[a],[b],[c,d,e]]
|
416
|
+
end #}}}
|
417
|
+
def join_branches(branches) # factual, so for inclusive or [[a],[b],[c,d,e]]{{{
|
422
418
|
@controller.notify("gateway/join", :instance_uuid => @controller.uuid, :branches => branches)
|
423
|
-
end
|
419
|
+
end #}}}
|
424
420
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cpee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.64
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juergen eTM Mangler
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: tools
|
12
12
|
cert_chain: []
|
13
|
-
date: 2024-09-
|
13
|
+
date: 2024-09-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: riddl
|
@@ -35,7 +35,7 @@ dependencies:
|
|
35
35
|
version: '1.99'
|
36
36
|
- - ">="
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version: 1.99.
|
38
|
+
version: 1.99.123
|
39
39
|
type: :runtime
|
40
40
|
prerelease: false
|
41
41
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -45,7 +45,7 @@ dependencies:
|
|
45
45
|
version: '1.99'
|
46
46
|
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 1.99.
|
48
|
+
version: 1.99.123
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: highline
|
51
51
|
requirement: !ruby/object:Gem::Requirement
|