cpee 1.5.20 → 2.0
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/{FEATURES → FEATURES.md} +7 -6
- data/INSTALL.md +1 -0
- data/{README → README.md} +3 -3
- data/Rakefile +1 -0
- data/cockpit/index.html +8 -8
- data/cockpit/js/details.js +13 -14
- data/cockpit/js/instance.js +192 -290
- data/cockpit/js/parameters.js +13 -3
- data/cockpit/js/ui.js +2 -2
- data/cockpit/rngs/attributes.rng +3 -3
- data/cockpit/rngs/dataelements.rng +3 -3
- data/cockpit/rngs/endpoints.rng +3 -3
- data/cockpit/{testsets → templates.legacy}/Async.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/BCO.xml +7 -10
- data/cockpit/{testsets → templates.legacy}/BCS.xml +7 -10
- data/cockpit/{testsets → templates.legacy}/Centurio.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/Concurrent.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/Coopis Testset.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/Endpoints and Data Manipulation.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/ICSOC Testset.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/Infinity.xml +3 -3
- data/cockpit/{testsets → templates.legacy}/Lego Boxer.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Lego Conveyor.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Lego Crane.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Lego Ejector.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Lego Full.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Lego Liddy.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Lego Plate.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Lego Transporter.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Lego_Part_1.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/LgLinear.xml +6 -10
- data/cockpit/{testsets → templates.legacy}/Linear.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Log.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Mangler 1.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/Mangler 2.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/Manuel Labels.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Promise.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/SOPROMO Test Sonification.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/Subprocess.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Syncing P34 1.xml +8 -11
- data/cockpit/{testsets → templates.legacy}/Syncing P34 2.xml +8 -11
- data/cockpit/{testsets → templates.legacy}/Syncing P34 3.xml +8 -11
- data/cockpit/{testsets → templates.legacy}/Syncing P34.xml +8 -11
- data/cockpit/{testsets → templates.legacy}/TEST - Bad Loop.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/TEST - Wrong Positions.xml +6 -6
- data/cockpit/{testsets → templates.legacy}/Take_5.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Update.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Worklist Parallel.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Worklist Test CPEE.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Worklist Test.xml +7 -7
- data/cockpit/{testsets → templates.legacy}/Worklist Test2.xml +7 -7
- data/cockpit/templates.legacy/convert_cpee2.rb +15 -0
- data/cockpit/{testsets → templates.legacy}/convert_preset.rb +0 -0
- data/cockpit/{testsets → templates.legacy}/testsets.xml +1 -1
- data/cockpit/{testsets → templates.legacy}/transformations.xml +0 -0
- data/cockpit/templates/BPM 2020 Manual Adjust.xml +182 -0
- data/cockpit/templates/BPM 2020 Solution Baseline.xml +196 -0
- data/cockpit/templates/BPM 2020 Solution NN.xml +197 -0
- data/cockpit/templates/BPM 2020 Solution View.xml +144 -0
- data/cockpit/templates/BPM 2020.xml +26 -0
- data/cockpit/templates/Coopis 2010.xml +85 -0
- data/cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml +77 -0
- data/cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml +77 -0
- data/cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml +77 -0
- data/cockpit/templates/Worklist.xml +42 -0
- data/cockpit/templates/convert_cpee2.rb +15 -0
- data/cockpit/themes/compact/rngs/alternative.rng +25 -0
- data/cockpit/themes/compact/rngs/call.rng +20 -14
- data/cockpit/themes/compact/rngs/callmanipulate.rng +28 -22
- data/cockpit/themes/compact/rngs/choose.rng +14 -0
- data/cockpit/themes/compact/rngs/critical.rng +5 -0
- data/cockpit/themes/compact/rngs/escape.rng +1 -0
- data/cockpit/themes/compact/rngs/group.rng +3 -0
- data/cockpit/themes/compact/rngs/loop.rng +22 -0
- data/cockpit/themes/compact/rngs/manipulate.rng +9 -0
- data/cockpit/themes/compact/rngs/otherwise.rng +22 -0
- data/cockpit/themes/compact/rngs/parallel.rng +21 -0
- data/cockpit/themes/compact/rngs/parallel_branch.rng +8 -0
- data/cockpit/themes/compact/rngs/scripts.rng +10 -11
- data/cockpit/themes/compact/rngs/stop.rng +5 -0
- data/cockpit/themes/compact/rngs/terminate.rng +1 -0
- data/cockpit/themes/compact/theme.js +1 -1
- data/cockpit/themes/convert_cpee2.rb +8 -0
- data/cockpit/themes/default/rngs/alternative.rng +8 -8
- data/cockpit/themes/default/rngs/call.rng +85 -49
- data/cockpit/themes/default/rngs/callmanipulate.rng +103 -64
- data/cockpit/themes/default/rngs/choose.rng +5 -3
- data/cockpit/themes/default/rngs/critical.rng +2 -2
- data/cockpit/themes/default/rngs/escape.rng +1 -1
- data/cockpit/themes/default/rngs/group.rng +3 -3
- data/cockpit/themes/default/rngs/loop.rng +8 -8
- data/cockpit/themes/default/rngs/manipulate.rng +3 -3
- data/cockpit/themes/default/rngs/otherwise.rng +8 -8
- data/cockpit/themes/default/rngs/parallel.rng +14 -6
- data/cockpit/themes/default/rngs/parallel_branch.rng +2 -2
- data/cockpit/themes/default/rngs/scripts.rng +23 -0
- data/cockpit/themes/default/rngs/stop.rng +2 -2
- data/cockpit/themes/default/rngs/terminate.rng +1 -1
- data/cockpit/themes/extended/rngs/alternative.rng +25 -0
- data/cockpit/themes/extended/rngs/call.rng +20 -14
- data/cockpit/themes/extended/rngs/callmanipulate.rng +28 -22
- data/cockpit/themes/extended/rngs/choose.rng +14 -0
- data/cockpit/themes/extended/rngs/critical.rng +5 -0
- data/cockpit/themes/extended/rngs/escape.rng +1 -0
- data/cockpit/themes/extended/rngs/group.rng +3 -0
- data/cockpit/themes/extended/rngs/loop.rng +22 -0
- data/cockpit/themes/extended/rngs/manipulate.rng +9 -0
- data/cockpit/themes/extended/rngs/otherwise.rng +22 -0
- data/cockpit/themes/extended/rngs/parallel.rng +21 -0
- data/cockpit/themes/extended/rngs/parallel_branch.rng +8 -0
- data/cockpit/themes/extended/rngs/scripts.rng +10 -11
- data/cockpit/themes/extended/rngs/stop.rng +5 -0
- data/cockpit/themes/extended/rngs/terminate.rng +1 -0
- data/cockpit/themes/extended/theme.js +14 -28
- data/cockpit/themes/model/rngs/alternative.rng +1 -1
- data/cockpit/themes/model/rngs/call.rng +16 -16
- data/cockpit/themes/model/rngs/callmanipulate.rng +17 -17
- data/cockpit/themes/model/rngs/choose.rng +1 -1
- data/cockpit/themes/model/rngs/critical.rng +1 -1
- data/cockpit/themes/model/rngs/escape.rng +1 -1
- data/cockpit/themes/model/rngs/group.rng +1 -1
- data/cockpit/themes/model/rngs/loop.rng +1 -1
- data/cockpit/themes/model/rngs/manipulate.rng +1 -1
- data/cockpit/themes/model/rngs/otherwise.rng +1 -1
- data/cockpit/themes/model/rngs/parallel.rng +1 -1
- data/cockpit/themes/model/rngs/parallel_branch.rng +1 -1
- data/cockpit/themes/model/rngs/scripts.rng +3 -4
- data/cockpit/themes/model/rngs/stop.rng +1 -1
- data/cockpit/themes/model/rngs/terminate.rng +1 -1
- data/cockpit/themes/model/theme.js +8 -7
- data/cockpit/themes/packed/rngs/alternative.rng +25 -0
- data/cockpit/themes/packed/rngs/call.rng +20 -14
- data/cockpit/themes/packed/rngs/callmanipulate.rng +28 -22
- data/cockpit/themes/packed/rngs/choose.rng +14 -0
- data/cockpit/themes/packed/rngs/critical.rng +5 -0
- data/cockpit/themes/packed/rngs/escape.rng +1 -0
- data/cockpit/themes/packed/rngs/group.rng +3 -0
- data/cockpit/themes/packed/rngs/loop.rng +22 -0
- data/cockpit/themes/packed/rngs/manipulate.rng +9 -0
- data/cockpit/themes/packed/rngs/otherwise.rng +22 -0
- data/cockpit/themes/packed/rngs/parallel.rng +21 -0
- data/cockpit/themes/packed/rngs/parallel_branch.rng +8 -0
- data/cockpit/themes/packed/rngs/scripts.rng +10 -11
- data/cockpit/themes/packed/rngs/stop.rng +5 -0
- data/cockpit/themes/packed/rngs/terminate.rng +1 -0
- data/cockpit/themes/packed/theme.js +8 -7
- data/cockpit/themes/preset/rngs/alternative.rng +25 -0
- data/cockpit/themes/preset/rngs/call.rng +20 -14
- data/cockpit/themes/preset/rngs/callmanipulate.rng +28 -22
- data/cockpit/themes/preset/rngs/choose.rng +14 -0
- data/cockpit/themes/preset/rngs/critical.rng +5 -0
- data/cockpit/themes/preset/rngs/escape.rng +1 -0
- data/cockpit/themes/preset/rngs/group.rng +3 -0
- data/cockpit/themes/preset/rngs/loop.rng +22 -0
- data/cockpit/themes/preset/rngs/manipulate.rng +9 -0
- data/cockpit/themes/preset/rngs/otherwise.rng +22 -0
- data/cockpit/themes/preset/rngs/parallel.rng +21 -0
- data/cockpit/themes/preset/rngs/parallel_branch.rng +8 -0
- data/cockpit/themes/preset/rngs/scripts.rng +10 -11
- data/cockpit/themes/preset/rngs/stop.rng +5 -0
- data/cockpit/themes/preset/rngs/terminate.rng +1 -0
- data/cockpit/themes/preset/theme.js +8 -7
- data/cpee.gemspec +9 -9
- data/{log/topics.xml → lib/callbacks.xml} +16 -6
- data/lib/{engine → callbacks}/callbacks.rng +2 -8
- data/lib/cpee.xml +10 -4
- data/lib/cpee/attributes_helper.rb +27 -0
- data/lib/cpee/controller.rb +113 -596
- data/lib/cpee/implementation.rb +152 -191
- data/lib/cpee/implementation_callbacks.rb +77 -0
- data/lib/cpee/implementation_notifications.rb +189 -0
- data/lib/cpee/implementation_properties.rb +707 -0
- data/lib/cpee/{callback.rb → message.rb} +20 -18
- data/lib/cpee/persistence.rb +135 -0
- data/lib/cpee/statemachine.rb +20 -0
- data/lib/cpee/transform.rb +95 -0
- data/lib/engine.xml +1 -59
- data/lib/properties.xml +236 -0
- data/lib/properties/arbitrary.rng +26 -0
- data/lib/properties/attributes.rng +10 -0
- data/lib/properties/dataelements.rng +10 -0
- data/lib/properties/description.rng +8 -0
- data/lib/properties/dsl.rng +7 -0
- data/lib/properties/dslx.rng +8 -0
- data/lib/properties/endpoints.rng +10 -0
- data/lib/properties/handlerwrapper.rng +9 -0
- data/lib/properties/position.rng +15 -0
- data/lib/properties/positions.rng +10 -0
- data/lib/properties/properties.rng +29 -0
- data/lib/properties/set-properties.rng +25 -0
- data/lib/properties/set-some-properties.rng +45 -0
- data/lib/properties/simple.rng +8 -0
- data/lib/properties/state.rng +33 -0
- data/lib/properties/status.rng +12 -0
- data/lib/properties/t_attributes.rng +7 -0
- data/lib/properties/t_dataelements.rng +7 -0
- data/lib/properties/t_endpoints.rng +7 -0
- data/lib/properties/t_position.rng +7 -0
- data/lib/properties/t_positions.rng +7 -0
- data/lib/properties/t_simple.rng +7 -0
- data/lib/properties/t_status.rng +7 -0
- data/lib/properties/t_transformation.rng +7 -0
- data/lib/properties/transformation.rng +40 -0
- data/server/dev.rb +1 -0
- data/server/handlerwrappers/default.rb +40 -34
- data/server/resources/backend/README.md +17 -0
- data/server/resources/backend/instance.rb +23 -0
- data/server/resources/backend/instance.template +19 -0
- data/server/resources/backend/opts.yaml +6 -0
- data/server/resources/backend/run +29 -0
- data/server/resources/notifications/logging/subscription.xml +1 -1
- data/server/resources/properties.empty +38 -0
- data/server/resources/properties.init +11 -11
- data/server/resources/states.dot +19 -0
- data/server/resources/states.xml +49 -0
- data/server/resources/transformation_dslx.xsl +3 -0
- data/server/routing/end.rb +44 -0
- data/server/routing/forward-events.rb +59 -0
- data/server/routing/forward-votes.rb +108 -0
- data/server/routing/persist.rb +155 -0
- data/server/server.rb +1 -0
- data/tools/cpee +19 -15
- metadata +126 -156
- data/INSTALL +0 -23
- data/cockpit/test.html +0 -40
- data/cockpit/themes/compact/rngs/alternative.rng +0 -1
- data/cockpit/themes/compact/rngs/choose.rng +0 -1
- data/cockpit/themes/compact/rngs/critical.rng +0 -1
- data/cockpit/themes/compact/rngs/escape.rng +0 -1
- data/cockpit/themes/compact/rngs/group.rng +0 -1
- data/cockpit/themes/compact/rngs/loop.rng +0 -1
- data/cockpit/themes/compact/rngs/manipulate.rng +0 -1
- data/cockpit/themes/compact/rngs/otherwise.rng +0 -1
- data/cockpit/themes/compact/rngs/parallel.rng +0 -1
- data/cockpit/themes/compact/rngs/parallel_branch.rng +0 -1
- data/cockpit/themes/compact/rngs/stop.rng +0 -1
- data/cockpit/themes/compact/rngs/terminate.rng +0 -1
- data/cockpit/themes/default/rngs/finalize.rng +0 -6
- data/cockpit/themes/default/rngs/update.rng +0 -6
- data/cockpit/themes/default/theme.js +0 -1286
- data/cockpit/themes/extended/rngs/alternative.rng +0 -1
- data/cockpit/themes/extended/rngs/choose.rng +0 -1
- data/cockpit/themes/extended/rngs/critical.rng +0 -1
- data/cockpit/themes/extended/rngs/escape.rng +0 -1
- data/cockpit/themes/extended/rngs/group.rng +0 -1
- data/cockpit/themes/extended/rngs/loop.rng +0 -1
- data/cockpit/themes/extended/rngs/manipulate.rng +0 -1
- data/cockpit/themes/extended/rngs/otherwise.rng +0 -1
- data/cockpit/themes/extended/rngs/parallel.rng +0 -1
- data/cockpit/themes/extended/rngs/parallel_branch.rng +0 -1
- data/cockpit/themes/extended/rngs/stop.rng +0 -1
- data/cockpit/themes/extended/rngs/terminate.rng +0 -1
- data/cockpit/themes/labels/rngs/alternative.rng +0 -25
- data/cockpit/themes/labels/rngs/call.rng +0 -81
- data/cockpit/themes/labels/rngs/callmanipulate.rng +0 -101
- data/cockpit/themes/labels/rngs/choose.rng +0 -12
- data/cockpit/themes/labels/rngs/critical.rng +0 -5
- data/cockpit/themes/labels/rngs/escape.rng +0 -1
- data/cockpit/themes/labels/rngs/finalize.rng +0 -6
- data/cockpit/themes/labels/rngs/group.rng +0 -3
- data/cockpit/themes/labels/rngs/loop.rng +0 -22
- data/cockpit/themes/labels/rngs/manipulate.rng +0 -9
- data/cockpit/themes/labels/rngs/otherwise.rng +0 -22
- data/cockpit/themes/labels/rngs/parallel.rng +0 -13
- data/cockpit/themes/labels/rngs/parallel_branch.rng +0 -8
- data/cockpit/themes/labels/rngs/stop.rng +0 -5
- data/cockpit/themes/labels/rngs/terminate.rng +0 -1
- data/cockpit/themes/labels/rngs/update.rng +0 -6
- data/cockpit/themes/labels/symbols/alternative.svg +0 -5
- data/cockpit/themes/labels/symbols/arrow.svg +0 -3
- data/cockpit/themes/labels/symbols/call.svg +0 -6
- data/cockpit/themes/labels/symbols/callmanipulate.svg +0 -8
- data/cockpit/themes/labels/symbols/choose.svg +0 -5
- data/cockpit/themes/labels/symbols/choose_exclusive.svg +0 -5
- data/cockpit/themes/labels/symbols/choose_inclusive.svg +0 -4
- data/cockpit/themes/labels/symbols/complex.svg +0 -8
- data/cockpit/themes/labels/symbols/critical.svg +0 -4
- data/cockpit/themes/labels/symbols/end.svg +0 -3
- data/cockpit/themes/labels/symbols/escape.svg +0 -5
- data/cockpit/themes/labels/symbols/event_end.svg +0 -3
- data/cockpit/themes/labels/symbols/loop.svg +0 -5
- data/cockpit/themes/labels/symbols/manipulate.svg +0 -4
- data/cockpit/themes/labels/symbols/otherwise.svg +0 -5
- data/cockpit/themes/labels/symbols/parallel.svg +0 -5
- data/cockpit/themes/labels/symbols/parallel_branch.svg +0 -5
- data/cockpit/themes/labels/symbols/parallel_branch_compact.svg +0 -4
- data/cockpit/themes/labels/symbols/parallel_branch_event.svg +0 -14
- data/cockpit/themes/labels/symbols/parallel_branch_normal.svg +0 -5
- data/cockpit/themes/labels/symbols/scripts.svg +0 -4
- data/cockpit/themes/labels/symbols/start.svg +0 -3
- data/cockpit/themes/labels/symbols/stop.svg +0 -5
- data/cockpit/themes/labels/symbols/terminate.svg +0 -4
- data/cockpit/themes/packed/rngs/alternative.rng +0 -1
- data/cockpit/themes/packed/rngs/choose.rng +0 -1
- data/cockpit/themes/packed/rngs/critical.rng +0 -1
- data/cockpit/themes/packed/rngs/escape.rng +0 -1
- data/cockpit/themes/packed/rngs/group.rng +0 -1
- data/cockpit/themes/packed/rngs/loop.rng +0 -1
- data/cockpit/themes/packed/rngs/manipulate.rng +0 -1
- data/cockpit/themes/packed/rngs/otherwise.rng +0 -1
- data/cockpit/themes/packed/rngs/parallel.rng +0 -1
- data/cockpit/themes/packed/rngs/parallel_branch.rng +0 -1
- data/cockpit/themes/packed/rngs/stop.rng +0 -1
- data/cockpit/themes/packed/rngs/terminate.rng +0 -1
- data/cockpit/themes/preset/rngs/alternative.rng +0 -1
- data/cockpit/themes/preset/rngs/choose.rng +0 -1
- data/cockpit/themes/preset/rngs/critical.rng +0 -1
- data/cockpit/themes/preset/rngs/escape.rng +0 -1
- data/cockpit/themes/preset/rngs/group.rng +0 -1
- data/cockpit/themes/preset/rngs/loop.rng +0 -1
- data/cockpit/themes/preset/rngs/manipulate.rng +0 -1
- data/cockpit/themes/preset/rngs/otherwise.rng +0 -1
- data/cockpit/themes/preset/rngs/parallel.rng +0 -1
- data/cockpit/themes/preset/rngs/parallel_branch.rng +0 -1
- data/cockpit/themes/preset/rngs/stop.rng +0 -1
- data/cockpit/themes/preset/rngs/terminate.rng +0 -1
- data/lib/cpee/empty_workflow.rb +0 -28
- data/lib/cpee/handler_notifications.rb +0 -47
- data/lib/cpee/handler_properties.rb +0 -50
- data/lib/cpee/instantiation.rb +0 -368
- data/lib/cpee/processtransformation/bpel/Repository/booking.bpel +0 -125
- data/lib/cpee/processtransformation/bpel/Repository/booking.wsdl +0 -72
- data/lib/cpee/processtransformation/bpel/Repository/booking/airline.wsdl +0 -71
- data/lib/cpee/processtransformation/bpel/Repository/booking/hotel.wsdl +0 -64
- data/lib/cpee/processtransformation/bpel/Repository/booking/report.wsdl +0 -71
- data/lib/cpee/processtransformation/bpel/bpel2wee.rb +0 -34
- data/lib/cpee/processtransformation/bpel/bpelserver.ru +0 -64
- data/lib/cpee/processtransformation/bpel/bpelserver.xml +0 -70
- data/lib/cpee/processtransformation/bpel/lib/BPEL_Transform.rb +0 -367
- data/lib/cpee/processtransformation/bpmn2.rb +0 -297
- data/lib/cpee/processtransformation/cpee.rb +0 -119
- data/lib/cpee/processtransformation/structures.rb +0 -465
- data/lib/cpee/processtransformation/target.rb +0 -50
- data/log/azure.rb +0 -10
- data/log/azure_logger.rb +0 -136
- data/log/chain.xml +0 -27
- data/log/elasticsearch.rb +0 -15
- data/log/elasticsearch_logging.rb +0 -377
- data/log/legacy/test_es.rb +0 -26
- data/log/legacy/test_split.rb +0 -211
- data/log/log.xml +0 -13
- data/log/non_tamp.rb +0 -156
- data/log/sic.rb +0 -63
- data/log/template.xes_xml +0 -23
- data/log/template.xes_yaml +0 -28
- data/log/trace.yaml +0 -17717
- data/log/trace_sic.yaml +0 -18343
- data/log/xes_xml.rb +0 -121
- data/log/xes_yaml.rb +0 -96
- data/server/handlerwrappers/soap.rb +0 -146
- data/server/resources/notifications/logging/consumer-secret +0 -1
- data/server/resources/notifications/logging/producer-secret +0 -1
- data/server/resources/properties.schema.active +0 -139
- data/server/resources/properties.schema.finished +0 -139
- data/server/resources/properties.schema.inactive +0 -136
- data/server/resources/test1.xml +0 -58
- data/server/resources/test2.xml +0 -60
- data/server/resources/test3.xml +0 -217
- data/test/callback.rb +0 -9
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
* run is copied into every instance.
|
|
2
|
+
* opts.yaml is written on each start.
|
|
3
|
+
* instance.rb is written on each start.
|
|
4
|
+
|
|
5
|
+
## What can you do to make it more robust?
|
|
6
|
+
|
|
7
|
+
Replace run with a program that actually compiles and runs instance.rb. Of
|
|
8
|
+
courses the transformation_* xslts would have to be adapted to create suitable
|
|
9
|
+
code. The compiled executable would just need to behave the same as the instance.rb,
|
|
10
|
+
dispersing all the same events through redis.
|
|
11
|
+
|
|
12
|
+
More suitable languages would be crystal and javascript, c++. Less suitable,
|
|
13
|
+
but doable, would be python, C. I.e., all languages that do not support multi-line
|
|
14
|
+
lambdas would produce much less readable code, thus the "Description" tab in
|
|
15
|
+
the cockpit would be garbage.
|
|
16
|
+
|
|
17
|
+
Definitely do tell me if you are interessted in doing something like this ;-)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
class Instance < WEEL
|
|
2
|
+
handlerwrapper DefaultHandlerWrapper
|
|
3
|
+
|
|
4
|
+
endpoint :timeout => "http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php"
|
|
5
|
+
data :x => ''
|
|
6
|
+
# search Position.new(:a1,:after,nil)
|
|
7
|
+
|
|
8
|
+
control flow do
|
|
9
|
+
call :a1, :timeout, parameters: { :label => "Step 1", :method => :post, :arguments => [⭐(:name => :timeout, :value => ->{ "2" })] }, finalize: <<-END
|
|
10
|
+
p 'xxx1'
|
|
11
|
+
data.x += \"a1,\"
|
|
12
|
+
END
|
|
13
|
+
call :a2, :timeout, parameters: { :label => "Step 2", :method => :post, :arguments => [⭐(:name => :timeout, :value => ->{ "4" })] }, finalize: <<-END
|
|
14
|
+
p 'xxx2'
|
|
15
|
+
data.x += \"a2,\"
|
|
16
|
+
END
|
|
17
|
+
call :a3, :timeout, parameters: { :label => "Step 3", :method => :post, :arguments => [⭐(:name => :timeout, :value => ->{ "4" })] }, finalize: <<-END
|
|
18
|
+
p 'xxx3'
|
|
19
|
+
data.x += \"a3,\"
|
|
20
|
+
END
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
class Instance < WEEL
|
|
2
|
+
handlerwrapper <%= handlerwrapper %>
|
|
3
|
+
|
|
4
|
+
<% for key, value in endpoints -%>
|
|
5
|
+
endpoint :<%= key %> => <%= CPEE::ValueHelper::parse(value).inspect %>
|
|
6
|
+
<% end -%>
|
|
7
|
+
|
|
8
|
+
<% for key, value in dataelements -%>
|
|
9
|
+
data :<%= key %> => <%= CPEE::ValueHelper::parse(value).inspect %>
|
|
10
|
+
<% end -%>
|
|
11
|
+
|
|
12
|
+
<% unless positions.nil? || positions.empty? -%>
|
|
13
|
+
search <% positions.each_with_index { |de,i| %><%= (i > 0 ? ', ' : '') %>Position.new(:<%= de[0] %>, :<%=de[1] %>, <%= de[2].nil? || de[2].strip.empty? ? 'nil' : '"' + de[2] + '"' %>)<% } %>
|
|
14
|
+
<% end -%>
|
|
15
|
+
|
|
16
|
+
control flow do
|
|
17
|
+
<%= dsl.strip.gsub(/\n/,"\n ") %>
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
require 'yaml'
|
|
3
|
+
opts = YAML::load_file(File.join(__dir__,'opts.yaml'))
|
|
4
|
+
opts[:pidf] = __FILE__ + '.pid'
|
|
5
|
+
opts[:pid] = Process.pid
|
|
6
|
+
require_relative '../../../lib/cpee/controller'
|
|
7
|
+
|
|
8
|
+
Dir[File.join(opts[:global_handlerwrappers],'*.rb')].each do |h|
|
|
9
|
+
require h
|
|
10
|
+
end unless opts[:global_handlerwrappers].nil? || opts[:global_handlerwrappers].strip == ''
|
|
11
|
+
Dir[File.join(opts[:handlerwrappers],'*.rb')].each do |h|
|
|
12
|
+
require h
|
|
13
|
+
end unless opts[:handlerwrappers].nil? || opts[:handlerwrappers].strip == ''
|
|
14
|
+
|
|
15
|
+
require_relative 'instance'
|
|
16
|
+
controller = CPEE::Controller.new(File.basename(__dir__).to_i, __dir__, opts)
|
|
17
|
+
controller.instance = Instance.new controller
|
|
18
|
+
|
|
19
|
+
File.write(opts[:pidf],opts[:pid])
|
|
20
|
+
|
|
21
|
+
%w{TERM HUP INT}.each do |sig|
|
|
22
|
+
Signal.trap(sig) do
|
|
23
|
+
puts "Caught #{sig}!"
|
|
24
|
+
controller.stop
|
|
25
|
+
File.unlink(opts[:pidf])
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
controller.start
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/
|
|
1
|
+
<subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/2.0" url="http://localhost:9299/">
|
|
2
2
|
<topic id="activity">
|
|
3
3
|
<event>calling</event>
|
|
4
4
|
<event>receiving</event>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!--
|
|
3
|
+
This file is part of CPEE.
|
|
4
|
+
|
|
5
|
+
CPEE is free software: you can redistribute it and/or modify it under the
|
|
6
|
+
terms of the GNU General Public License as published by the Free Software
|
|
7
|
+
Foundation, either version 3 of the License, or (at your option) any later
|
|
8
|
+
version.
|
|
9
|
+
|
|
10
|
+
CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
+
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
12
|
+
PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
You should have received a copy of the GNU General Public License along with
|
|
15
|
+
CPEE (file COPYING in the main directory). If not, see
|
|
16
|
+
<http://www.gnu.org/licenses/>.
|
|
17
|
+
-->
|
|
18
|
+
|
|
19
|
+
<properties xmlns="http://cpee.org/ns/properties/2.0">
|
|
20
|
+
<state changed="1970-01-01T00:00:00+00:00">ready</state>
|
|
21
|
+
<status>
|
|
22
|
+
<id>0</id>
|
|
23
|
+
<message>undefined</message>
|
|
24
|
+
</status>
|
|
25
|
+
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
|
26
|
+
<positions/>
|
|
27
|
+
<dataelements/>
|
|
28
|
+
<endpoints/>
|
|
29
|
+
<attributes/>
|
|
30
|
+
<dsl/>
|
|
31
|
+
<dslx/>
|
|
32
|
+
<description/>
|
|
33
|
+
<transformation>
|
|
34
|
+
<description type='copy'/>
|
|
35
|
+
<dataelements type='none'/>
|
|
36
|
+
<endpoints type='none'/>
|
|
37
|
+
</transformation>
|
|
38
|
+
</properties>
|
|
@@ -16,27 +16,27 @@
|
|
|
16
16
|
<http://www.gnu.org/licenses/>.
|
|
17
17
|
-->
|
|
18
18
|
|
|
19
|
-
<properties xmlns="http://
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
<
|
|
23
|
-
<
|
|
24
|
-
</
|
|
25
|
-
<state>ready</state>
|
|
19
|
+
<properties xmlns="http://cpee.org/ns/properties/2.0">
|
|
20
|
+
<state changed="1970-01-01T00:00:00+00:00">ready</state>
|
|
21
|
+
<status>
|
|
22
|
+
<id>0</id>
|
|
23
|
+
<message>undefined</message>
|
|
24
|
+
</status>
|
|
26
25
|
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
|
27
26
|
<positions/>
|
|
28
27
|
<dataelements/>
|
|
29
28
|
<endpoints>
|
|
30
29
|
<timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
|
|
31
30
|
</endpoints>
|
|
31
|
+
<attributes>
|
|
32
|
+
<info/>
|
|
33
|
+
<modeltype>CPEE</modeltype>
|
|
34
|
+
<theme>preset</theme>
|
|
35
|
+
</attributes>
|
|
32
36
|
<dsl/>
|
|
33
37
|
<dslx>
|
|
34
38
|
<description xmlns="http://cpee.org/ns/description/1.0"/>
|
|
35
39
|
</dslx>
|
|
36
|
-
<status>
|
|
37
|
-
<id>0</id>
|
|
38
|
-
<message>undefined</message>
|
|
39
|
-
</status>
|
|
40
40
|
<description>
|
|
41
41
|
<description xmlns="http://cpee.org/ns/description/1.0"/>
|
|
42
42
|
</description>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
digraph States {
|
|
2
|
+
ready -> running;
|
|
3
|
+
ready -> simulating;
|
|
4
|
+
ready -> replaying;
|
|
5
|
+
ready -> abandoned;
|
|
6
|
+
running -> stopping;
|
|
7
|
+
stopped -> running;
|
|
8
|
+
stopped -> simulating;
|
|
9
|
+
stopped -> replaying;
|
|
10
|
+
stopped -> abandoned;
|
|
11
|
+
|
|
12
|
+
running -> finishing;
|
|
13
|
+
simulating -> ready;
|
|
14
|
+
simulating -> stopped;
|
|
15
|
+
replaying -> stopping;
|
|
16
|
+
replaying -> finishing;
|
|
17
|
+
finishing -> finished;
|
|
18
|
+
stopping -> stopped;
|
|
19
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<states>
|
|
2
|
+
<!-- final states are "abandoned" and "finished" (no further observable or setable states) -->
|
|
3
|
+
<!-- children of setable and observable are source states, their respective children are possible target states -->
|
|
4
|
+
|
|
5
|
+
<setable>
|
|
6
|
+
<!-- the following states change through external input -->
|
|
7
|
+
<ready><!-- in this state you can set the following four states -->
|
|
8
|
+
<ready/>
|
|
9
|
+
<running/>
|
|
10
|
+
<simulating/>
|
|
11
|
+
<replaying/>
|
|
12
|
+
<abandoned/>
|
|
13
|
+
</ready>
|
|
14
|
+
<running><!-- in this state you can set the following state -->
|
|
15
|
+
<stopping/>
|
|
16
|
+
</running>
|
|
17
|
+
<stopped><!-- in this state you can set the following four states -->
|
|
18
|
+
<running/>
|
|
19
|
+
<simulating/>
|
|
20
|
+
<replaying/>
|
|
21
|
+
<abandoned/>
|
|
22
|
+
<stopped/>
|
|
23
|
+
</stopped>
|
|
24
|
+
</setable>
|
|
25
|
+
|
|
26
|
+
<observable>
|
|
27
|
+
<!-- the following states change through internal mechanisms -->
|
|
28
|
+
<running>
|
|
29
|
+
<stopping/>
|
|
30
|
+
<finishing/>
|
|
31
|
+
</running>
|
|
32
|
+
<simulating>
|
|
33
|
+
<ready/>
|
|
34
|
+
<stopped/>
|
|
35
|
+
</simulating>
|
|
36
|
+
<replaying>
|
|
37
|
+
<stopping/>
|
|
38
|
+
<finishing/>
|
|
39
|
+
</replaying>
|
|
40
|
+
<finishing>
|
|
41
|
+
<finished/>
|
|
42
|
+
</finishing>
|
|
43
|
+
<stopping>
|
|
44
|
+
<stopped/>
|
|
45
|
+
</stopping>
|
|
46
|
+
<abandoned/>
|
|
47
|
+
<finished/>
|
|
48
|
+
</observable>
|
|
49
|
+
</states>
|
|
@@ -389,6 +389,9 @@
|
|
|
389
389
|
<xsl:apply-templates select="d:*" mode="plainmulti"/>
|
|
390
390
|
<xsl:text>]</xsl:text>
|
|
391
391
|
</xsl:when>
|
|
392
|
+
<xsl:when test="count(*) > 0 and name()='report'">
|
|
393
|
+
<xsl:apply-templates select="d:*" mode="plainmulti"/>
|
|
394
|
+
</xsl:when>
|
|
392
395
|
<xsl:when test="count(*) > 0 and not(name()='arguments')">
|
|
393
396
|
<xsl:text>{</xsl:text>
|
|
394
397
|
<xsl:apply-templates select="d:*" mode="parameter"/>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# This file is part of CPEE.
|
|
4
|
+
#
|
|
5
|
+
# CPEE is free software: you can redistribute it and/or modify it under the terms
|
|
6
|
+
# of the GNU General Public License as published by the Free Software Foundation,
|
|
7
|
+
# either version 3 of the License, or (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
10
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
11
|
+
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along with
|
|
14
|
+
# CPEE (file COPYING in the main directory). If not, see
|
|
15
|
+
# <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
require 'json'
|
|
18
|
+
require 'redis'
|
|
19
|
+
require 'daemonite'
|
|
20
|
+
|
|
21
|
+
Daemonite.new do |opts|
|
|
22
|
+
redis = Redis.new(path: "/tmp/redis.sock", db: 3)
|
|
23
|
+
pubsubredis = Redis.new(path: "/tmp/redis.sock", db: 3)
|
|
24
|
+
|
|
25
|
+
run do
|
|
26
|
+
pubsubredis.psubscribe('callback-end:*') do |on|
|
|
27
|
+
on.pmessage do |pat, what, message|
|
|
28
|
+
_, key = what.split(':')
|
|
29
|
+
index = message.index(' ')
|
|
30
|
+
instance = message[0...index]
|
|
31
|
+
redis.multi do |multi|
|
|
32
|
+
multi.srem("instance:#{instance}/callbacks",key)
|
|
33
|
+
multi.del("instance:#{instance}/callback/#{key}/uuid")
|
|
34
|
+
multi.del("instance:#{instance}/callback/#{key}/label")
|
|
35
|
+
multi.del("instance:#{instance}/callback/#{key}/position")
|
|
36
|
+
multi.del("instance:#{instance}/callback/#{key}/type")
|
|
37
|
+
end
|
|
38
|
+
rescue => e
|
|
39
|
+
puts e.message
|
|
40
|
+
puts e.backtrace
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end.go!
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# This file is part of CPEE.
|
|
4
|
+
#
|
|
5
|
+
# CPEE is free software: you can redistribute it and/or modify it under the terms
|
|
6
|
+
# of the GNU General Public License as published by the Free Software Foundation,
|
|
7
|
+
# either version 3 of the License, or (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
10
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
11
|
+
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along with
|
|
14
|
+
# CPEE (file COPYING in the main directory). If not, see
|
|
15
|
+
# <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
require 'redis'
|
|
18
|
+
require 'daemonite'
|
|
19
|
+
require 'riddl/client'
|
|
20
|
+
|
|
21
|
+
Daemonite.new do |opts|
|
|
22
|
+
redis = Redis.new(path: "/tmp/redis.sock", db: 3)
|
|
23
|
+
pubsubredis = Redis.new(path: "/tmp/redis.sock", db: 3)
|
|
24
|
+
|
|
25
|
+
run do
|
|
26
|
+
pubsubredis.psubscribe('event:*') do |on|
|
|
27
|
+
on.pmessage do |pat, what, message|
|
|
28
|
+
index = message.index(' ')
|
|
29
|
+
mess = message[index+1..-1]
|
|
30
|
+
instance = message[0...index]
|
|
31
|
+
type = pat[0..-3]
|
|
32
|
+
event = what[(type.length+1)..-1]
|
|
33
|
+
topic = ::File::dirname(event)
|
|
34
|
+
name = ::File::basename(event)
|
|
35
|
+
long = File.join(topic,type,name)
|
|
36
|
+
redis.smembers("instance:#{instance}/handlers").each do |key|
|
|
37
|
+
if redis.smembers("instance:#{instance}/handlers/#{key}").include? long
|
|
38
|
+
url = redis.get("instance:#{instance}/handlers/#{key}/url")
|
|
39
|
+
if url.nil? || url == ""
|
|
40
|
+
redis.publish("forward:#{instance}/#{key}",mess)
|
|
41
|
+
else
|
|
42
|
+
client = Riddl::Client.new(url,'http://riddl.org/ns/common-patterns/notifications-consumer/2.0/consumer.xml')
|
|
43
|
+
client.post [
|
|
44
|
+
Riddl::Parameter::Simple::new('type',type),
|
|
45
|
+
Riddl::Parameter::Simple::new('topic',topic),
|
|
46
|
+
Riddl::Parameter::Simple::new('event',name),
|
|
47
|
+
Riddl::Parameter::Complex::new('notification','application/json',mess)
|
|
48
|
+
]
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
rescue => e
|
|
53
|
+
puts e.message
|
|
54
|
+
puts e.backtrace
|
|
55
|
+
p '-----------------'
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end.go!
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# This file is part of CPEE.
|
|
4
|
+
#
|
|
5
|
+
# CPEE is free software: you can redistribute it and/or modify it under the terms
|
|
6
|
+
# of the GNU General Public License as published by the Free Software Foundation,
|
|
7
|
+
# either version 3 of the License, or (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
10
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
11
|
+
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along with
|
|
14
|
+
# CPEE (file COPYING in the main directory). If not, see
|
|
15
|
+
# <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
require 'redis'
|
|
18
|
+
require 'daemonite'
|
|
19
|
+
require 'riddl/client'
|
|
20
|
+
require 'json'
|
|
21
|
+
require_relative '../../lib/cpee/message'
|
|
22
|
+
|
|
23
|
+
def persist_handler(instance,key,mess,redis) #{{{
|
|
24
|
+
redis.multi do |multi|
|
|
25
|
+
multi.sadd("instance:#{instance}/callbacks",key)
|
|
26
|
+
multi.set("instance:#{instance}/callback/#{key}/uuid",mess.dig('content','activity_uuid'))
|
|
27
|
+
multi.set("instance:#{instance}/callback/#{key}/label",mess.dig('content','label'))
|
|
28
|
+
multi.set("instance:#{instance}/callback/#{key}/position",mess.dig('content','activity'))
|
|
29
|
+
multi.set("instance:#{instance}/callback/#{key}/type",'vote')
|
|
30
|
+
end
|
|
31
|
+
end #}}}
|
|
32
|
+
|
|
33
|
+
def send_response(instance,key,url,value,redis) #{{{
|
|
34
|
+
CPEE::Message::send(
|
|
35
|
+
:'vote-response',
|
|
36
|
+
key,
|
|
37
|
+
url,
|
|
38
|
+
instance,
|
|
39
|
+
{},
|
|
40
|
+
{},
|
|
41
|
+
value,
|
|
42
|
+
redis
|
|
43
|
+
)
|
|
44
|
+
end #}}}
|
|
45
|
+
|
|
46
|
+
Daemonite.new do |opts|
|
|
47
|
+
redis = Redis.new(path: "/tmp/redis.sock", db: 3)
|
|
48
|
+
pubsubredis = Redis.new(path: "/tmp/redis.sock", db: 3)
|
|
49
|
+
|
|
50
|
+
run do
|
|
51
|
+
pubsubredis.psubscribe('vote:*') do |on|
|
|
52
|
+
on.pmessage do |pat, what, message|
|
|
53
|
+
index = message.index(' ')
|
|
54
|
+
mess = message[index+1..-1]
|
|
55
|
+
|
|
56
|
+
instance = message[0...index]
|
|
57
|
+
type = pat[0..-3]
|
|
58
|
+
event = what[(type.length+1)..-1]
|
|
59
|
+
topic = ::File::dirname(event)
|
|
60
|
+
name = ::File::basename(event)
|
|
61
|
+
long = File.join(topic,type,name)
|
|
62
|
+
|
|
63
|
+
redis.smembers("instance:#{instance}/handlers").each do |subscription_key|
|
|
64
|
+
if redis.smembers("instance:#{instance}/handlers/#{subscription_key}").include? long
|
|
65
|
+
m = JSON.parse(mess)
|
|
66
|
+
callback_key = m.dig('content','key')
|
|
67
|
+
url = redis.get("instance:#{instance}/handlers/#{subscription_key}/url")
|
|
68
|
+
|
|
69
|
+
if url.nil? || url == ""
|
|
70
|
+
persist_handler instance, callback_key, m, redis
|
|
71
|
+
redis.publish("forward:#{instance}/#{subscription_key}",mess)
|
|
72
|
+
else
|
|
73
|
+
client = Riddl::Client.new(url,'http://riddl.org/ns/common-patterns/notifications-consumer/2.0/consumer.xml')
|
|
74
|
+
callback = m['instance-url'] + '/callbacks/' + subscription_key
|
|
75
|
+
status, result, headers = (client.post [
|
|
76
|
+
Riddl::Header.new("CPEE-BASE",m['cpee']),
|
|
77
|
+
Riddl::Header.new("CPEE-INSTANCE",m['instance']),
|
|
78
|
+
Riddl::Header.new("CPEE-INSTANCE-URL",m['instance-url']),
|
|
79
|
+
Riddl::Header.new("CPEE-INSTANCE-UUID",m['instance-uuid']),
|
|
80
|
+
Riddl::Header.new("CPEE-CALLBACK",callback),
|
|
81
|
+
Riddl::Header.new("CPEE-CALLBACK-ID",subscription_key),
|
|
82
|
+
Riddl::Parameter::Simple::new('type',type),
|
|
83
|
+
Riddl::Parameter::Simple::new('topic',topic),
|
|
84
|
+
Riddl::Parameter::Simple::new('vote',name),
|
|
85
|
+
Riddl::Parameter::Simple::new('callback',callback),
|
|
86
|
+
Riddl::Parameter::Complex::new('notification','application/json',mess)
|
|
87
|
+
] rescue [ 0, [], []])
|
|
88
|
+
if status >= 200 && status < 300
|
|
89
|
+
val = result[0].value.read
|
|
90
|
+
if (headers["CPEE_CALLBACK"] && headers["CPEE_CALLBACK"] == 'true') || val == 'callback'
|
|
91
|
+
persist_handler instance, callback_key, m, redis
|
|
92
|
+
else # they may send true or false
|
|
93
|
+
send_response instance, callback_key, m['cpee'], val, redis
|
|
94
|
+
end
|
|
95
|
+
else
|
|
96
|
+
send_response instance, callback_key, m['cpee'], true, redis
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
rescue => e
|
|
102
|
+
puts e.message
|
|
103
|
+
puts e.backtrace
|
|
104
|
+
p '-----------------'
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end.go!
|