cpee 2.0.19 → 2.0.24
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/cockpit/css/model.css +2 -0
- data/cockpit/css/replay.css +55 -0
- data/cockpit/css/wfadaptor.css +17 -0
- data/cockpit/edit.html +1 -1
- data/cockpit/index.html +2 -0
- data/cockpit/js/instance.js +8 -20
- data/cockpit/js/replay.js +40 -0
- data/cockpit/js_libs.zip +0 -0
- data/cockpit/model.html +3 -1
- data/cockpit/replay.html +52 -0
- data/cockpit/templates/.CPEE.xml +8 -0
- data/cockpit/templates/.Signavio.xml +8 -0
- data/cockpit/templates/.templates.xml +13 -0
- data/cockpit/templates/.transformations.xml +4 -0
- data/cockpit/templates/instantiate.local/Take_Sub.xml +1 -1
- data/cockpit/themes/compact/rngs/call.rng +67 -40
- data/cockpit/themes/compact/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/control/rngs/alternative.rng +25 -0
- data/cockpit/themes/control/rngs/call.rng +149 -0
- data/cockpit/themes/control/rngs/callmanipulate.rng +188 -0
- data/cockpit/themes/control/rngs/choose.rng +14 -0
- data/cockpit/themes/control/rngs/closed_loop.rng +62 -0
- data/cockpit/themes/control/rngs/closed_loop_cancel.rng +5 -0
- data/cockpit/themes/control/rngs/closed_loop_control.rng +31 -0
- data/cockpit/themes/control/rngs/closed_loop_measuring.rng +12 -0
- data/cockpit/themes/control/rngs/critical.rng +5 -0
- data/cockpit/themes/control/rngs/escape.rng +1 -0
- data/cockpit/themes/control/rngs/group.rng +3 -0
- data/cockpit/themes/control/rngs/loop.rng +22 -0
- data/cockpit/themes/control/rngs/manipulate.rng +9 -0
- data/cockpit/themes/control/rngs/otherwise.rng +22 -0
- data/cockpit/themes/control/rngs/parallel.rng +21 -0
- data/cockpit/themes/control/rngs/parallel_branch.rng +8 -0
- data/cockpit/themes/control/rngs/scripts.rng +23 -0
- data/cockpit/themes/control/rngs/stop.rng +5 -0
- data/cockpit/themes/control/rngs/terminate.rng +1 -0
- data/cockpit/themes/control/symbols/alternative.svg +5 -0
- data/cockpit/themes/control/symbols/arrow.svg +3 -0
- data/cockpit/themes/control/symbols/call.svg +6 -0
- data/cockpit/themes/control/symbols/callmanipulate.svg +8 -0
- data/cockpit/themes/control/symbols/choose.svg +5 -0
- data/cockpit/themes/control/symbols/choose_exclusive.svg +5 -0
- data/cockpit/themes/control/symbols/choose_inclusive.svg +4 -0
- data/cockpit/themes/control/symbols/closed_loop.svg +5 -0
- data/cockpit/themes/control/symbols/closed_loop_cancel.svg +5 -0
- data/cockpit/themes/control/symbols/closed_loop_control.svg +5 -0
- data/cockpit/themes/control/symbols/closed_loop_measuring.svg +6 -0
- data/cockpit/themes/control/symbols/complex.svg +8 -0
- data/cockpit/themes/control/symbols/critical.svg +4 -0
- data/cockpit/themes/control/symbols/end.svg +3 -0
- data/cockpit/themes/control/symbols/escape.svg +5 -0
- data/cockpit/themes/control/symbols/event_end.svg +3 -0
- data/cockpit/themes/control/symbols/loop.svg +5 -0
- data/cockpit/themes/control/symbols/manipulate.svg +4 -0
- data/cockpit/themes/control/symbols/otherwise.svg +5 -0
- data/cockpit/themes/control/symbols/parallel.svg +5 -0
- data/cockpit/themes/control/symbols/parallel_branch.svg +5 -0
- data/cockpit/themes/control/symbols/parallel_branch_compact.svg +4 -0
- data/cockpit/themes/control/symbols/parallel_branch_event.svg +14 -0
- data/cockpit/themes/control/symbols/parallel_branch_normal.svg +5 -0
- data/cockpit/themes/control/symbols/scripts.svg +4 -0
- data/cockpit/themes/control/symbols/start.svg +3 -0
- data/cockpit/themes/control/symbols/stop.svg +5 -0
- data/cockpit/themes/control/symbols/terminate.svg +4 -0
- data/cockpit/themes/control/theme.js +1665 -0
- data/cockpit/themes/default/rngs/call.rng +67 -40
- data/cockpit/themes/default/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/default/theme.js +1287 -0
- data/cockpit/themes/diana/rngs/call.rng +67 -40
- data/cockpit/themes/diana/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/extended/rngs/call.rng +67 -40
- data/cockpit/themes/extended/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/model/rngs/call.rng +2 -1
- data/cockpit/themes/model/rngs/callmanipulate.rng +2 -1
- data/cockpit/themes/model/theme.js +1 -1
- data/cockpit/themes/packed/rngs/call.rng +67 -40
- data/cockpit/themes/packed/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/preset/rngs/call.rng +67 -40
- data/cockpit/themes/preset/rngs/callmanipulate.rng +81 -38
- data/cockpit/track.html +0 -7
- data/cpee.gemspec +2 -2
- data/lib/cpee/controller.rb +6 -3
- data/lib/cpee/implementation.rb +23 -8
- data/lib/cpee/implementation_notifications.rb +1 -1
- data/lib/cpee/persistence.rb +2 -1
- data/lib/cpee/redis.rb +57 -0
- data/server/handlerwrappers/default.rb +2 -2
- data/server/resources/notifications/logging/subscription.xml +6 -0
- data/server/routing/end.pid +1 -0
- data/server/routing/end.rb +16 -4
- data/server/routing/forward-events.pid +1 -0
- data/server/routing/forward-events.rb +19 -7
- data/server/routing/forward-votes.pid +1 -0
- data/server/routing/forward-votes.rb +19 -7
- data/server/routing/persist.pid +1 -0
- data/server/routing/persist.rb +26 -14
- data/server/server.pid +1 -0
- data/tools/cpee +5 -5
- data/tools/test/README +4 -0
- data/tools/test/config.json +3 -0
- data/tools/test/contrib/graph_example.svg +1166 -0
- data/tools/test/contrib/legend.svg +817 -0
- data/tools/test/contrib/symbols.svg +224 -0
- data/tools/test/contrib/transformation1.xsl +264 -0
- data/tools/test/contrib/transformation2.xsl +10 -0
- data/tools/test/contrib/tree_example.svg +788 -0
- data/tools/test/css/model.css +24 -0
- data/tools/test/css/track.css +60 -0
- data/tools/test/css/ui.css +214 -0
- data/tools/test/css/wfadaptor.css +422 -0
- data/tools/test/edit.html +258 -0
- data/tools/test/graph.html +69 -0
- data/tools/test/index.html +258 -0
- data/tools/test/js/details.js +109 -0
- data/tools/test/js/instance.js +1344 -0
- data/tools/test/js/model.js +41 -0
- data/tools/test/js/parameters.js +82 -0
- data/tools/test/js/track.js +18 -0
- data/tools/test/js/ui.js +104 -0
- data/tools/test/js/wfadaptor.js +763 -0
- data/tools/test/js_libs.zip +0 -0
- data/tools/test/js_libs/Makefile +2 -0
- data/tools/test/js_libs/ansi_up.js +333 -0
- data/tools/test/js_libs/console.js +80 -0
- data/tools/test/js_libs/custommenu.css +84 -0
- data/tools/test/js_libs/custommenu.js +104 -0
- data/tools/test/js_libs/experiments1/relaxngui.css +185 -0
- data/tools/test/js_libs/experiments1/relaxngui.js +488 -0
- data/tools/test/js_libs/experiments1/rngtest9.html +60 -0
- data/tools/test/js_libs/experiments1/rngtest9.rng +35 -0
- data/tools/test/js_libs/experiments1/rngtest9.xml +8 -0
- data/tools/test/js_libs/jquery-2.2.4.min.js +4 -0
- data/tools/test/js_libs/jquery-3.2.1.min.js +4 -0
- data/tools/test/js_libs/jquery-3.3.1.min.js +2 -0
- data/tools/test/js_libs/jquery.browser.js +40 -0
- data/tools/test/js_libs/jquery.caret.min.js +10 -0
- data/tools/test/js_libs/jquery.cookie.js +117 -0
- data/tools/test/js_libs/jquery.min.js +1 -0
- data/tools/test/js_libs/jquery.svg.min.js +6 -0
- data/tools/test/js_libs/jquery.svgdom.min.js +6 -0
- data/tools/test/js_libs/markdown.min.js +1 -0
- data/tools/test/js_libs/parsequery.js +21 -0
- data/tools/test/js_libs/printf.js +368 -0
- data/tools/test/js_libs/relaxngui.css +213 -0
- data/tools/test/js_libs/relaxngui.js +543 -0
- data/tools/test/js_libs/strftime.min.js +1 -0
- data/tools/test/js_libs/tests/dataelements.html +59 -0
- data/tools/test/js_libs/tests/dataelements.rng +8 -0
- data/tools/test/js_libs/tests/dataelements.xml +3 -0
- data/tools/test/js_libs/tests/relaxngui.css +203 -0
- data/tools/test/js_libs/tests/relaxngui.js +502 -0
- data/tools/test/js_libs/tests/rngtest1.html +66 -0
- data/tools/test/js_libs/tests/rngtest1.rng +147 -0
- data/tools/test/js_libs/tests/rngtest1.xml +13 -0
- data/tools/test/js_libs/tests/rngtest2.html +60 -0
- data/tools/test/js_libs/tests/rngtest2.rng +6 -0
- data/tools/test/js_libs/tests/rngtest2.xml +3 -0
- data/tools/test/js_libs/tests/rngtest3.html +60 -0
- data/tools/test/js_libs/tests/rngtest3.rng +23 -0
- data/tools/test/js_libs/tests/rngtest3.xml +9 -0
- data/tools/test/js_libs/tests/rngtest4.html +60 -0
- data/tools/test/js_libs/tests/rngtest4.rng +19 -0
- data/tools/test/js_libs/tests/rngtest4.xml +12 -0
- data/tools/test/js_libs/tests/rngtest5.html +60 -0
- data/tools/test/js_libs/tests/rngtest5.rng +75 -0
- data/tools/test/js_libs/tests/rngtest5.xml +40 -0
- data/tools/test/js_libs/tests/rngtest6.html +60 -0
- data/tools/test/js_libs/tests/rngtest6.rng +24 -0
- data/tools/test/js_libs/tests/rngtest6.xml +6 -0
- data/tools/test/js_libs/tests/rngtest8.html +60 -0
- data/tools/test/js_libs/tests/rngtest8.rng +13 -0
- data/tools/test/js_libs/tests/rngtest8.xml +2 -0
- data/tools/test/js_libs/tests/rngtest9.html +60 -0
- data/tools/test/js_libs/tests/rngtest9.rng +31 -0
- data/tools/test/js_libs/tests/rngtest9.xml +8 -0
- data/tools/test/js_libs/ui.css +333 -0
- data/tools/test/js_libs/ui.html +168 -0
- data/tools/test/js_libs/ui.js +177 -0
- data/tools/test/js_libs/underscore.min.js +27 -0
- data/tools/test/js_libs/util.js +81 -0
- data/tools/test/js_libs/vkbeautify.0.99.00.beta.js +358 -0
- data/tools/test/js_libs/vkbeautify.js +1 -0
- data/tools/test/js_libs/webcomponents.min.js +196 -0
- data/tools/test/model.html +192 -0
- data/tools/test/rngs/attributes.rng +8 -0
- data/tools/test/rngs/dataelements.rng +8 -0
- data/tools/test/rngs/endpoints.rng +8 -0
- data/tools/test/templates.legacy/Async.xml +46 -0
- data/tools/test/templates.legacy/BCO.xml +70 -0
- data/tools/test/templates.legacy/BCS.xml +70 -0
- data/tools/test/templates.legacy/Centurio.xml +75 -0
- data/tools/test/templates.legacy/Concurrent.xml +40 -0
- data/tools/test/templates.legacy/Coopis Testset.xml +76 -0
- data/tools/test/templates.legacy/Endpoints and Data Manipulation.xml +30 -0
- data/tools/test/templates.legacy/ICSOC Testset.xml +95 -0
- data/tools/test/templates.legacy/Infinity.xml +28 -0
- data/tools/test/templates.legacy/Lego Boxer.xml +31 -0
- data/tools/test/templates.legacy/Lego Conveyor.xml +31 -0
- data/tools/test/templates.legacy/Lego Crane.xml +87 -0
- data/tools/test/templates.legacy/Lego Ejector.xml +55 -0
- data/tools/test/templates.legacy/Lego Full.xml +142 -0
- data/tools/test/templates.legacy/Lego Liddy.xml +40 -0
- data/tools/test/templates.legacy/Lego Plate.xml +31 -0
- data/tools/test/templates.legacy/Lego Transporter.xml +43 -0
- data/tools/test/templates.legacy/Lego_Part_1.xml +85 -0
- data/tools/test/templates.legacy/LgLinear.xml +65 -0
- data/tools/test/templates.legacy/Linear.xml +77 -0
- data/tools/test/templates.legacy/Log.xml +117 -0
- data/tools/test/templates.legacy/Mangler 1.xml +87 -0
- data/tools/test/templates.legacy/Mangler 2.xml +103 -0
- data/tools/test/templates.legacy/Manuel Labels.xml +55 -0
- data/tools/test/templates.legacy/Promise.xml +275 -0
- data/tools/test/templates.legacy/SOPROMO Test Sonification.xml +83 -0
- data/tools/test/templates.legacy/Subprocess.xml +56 -0
- data/tools/test/templates.legacy/Syncing P34 1.xml +77 -0
- data/tools/test/templates.legacy/Syncing P34 2.xml +77 -0
- data/tools/test/templates.legacy/Syncing P34 3.xml +77 -0
- data/tools/test/templates.legacy/Syncing P34.xml +77 -0
- data/tools/test/templates.legacy/TEST - Bad Loop.xml +173 -0
- data/tools/test/templates.legacy/TEST - Wrong Positions.xml +174 -0
- data/tools/test/templates.legacy/Take_5.xml +48 -0
- data/tools/test/templates.legacy/Update.xml +32 -0
- data/tools/test/templates.legacy/Worklist Parallel.xml +104 -0
- data/tools/test/templates.legacy/Worklist Test CPEE.xml +40 -0
- data/tools/test/templates.legacy/Worklist Test.xml +42 -0
- data/tools/test/templates.legacy/Worklist Test2.xml +43 -0
- data/tools/test/templates.legacy/convert_cpee2.rb +15 -0
- data/tools/test/templates.legacy/convert_preset.rb +32 -0
- data/tools/test/templates.legacy/testsets.xml +37 -0
- data/tools/test/templates.legacy/transformations.xml +4 -0
- data/tools/test/templates/Coopis 2010.xml +76 -0
- data/tools/test/templates/IUPC arXiv:1104.3609 P34 1.xml +77 -0
- data/tools/test/templates/IUPC arXiv:1104.3609 P34 2.xml +77 -0
- data/tools/test/templates/IUPC arXiv:1104.3609 P34 3.xml +77 -0
- data/tools/test/templates/Track Test Local.xml +82 -0
- data/tools/test/templates/Track Test.xml +82 -0
- data/tools/test/templates/UR-VUE 2020 Manual Adjust.xml +182 -0
- data/tools/test/templates/UR-VUE 2020 Solution Baseline.xml +203 -0
- data/tools/test/templates/UR-VUE 2020 Solution NN.xml +197 -0
- data/tools/test/templates/UR-VUE 2020 Solution View.xml +151 -0
- data/tools/test/templates/UR-VUE 2020.xml +26 -0
- data/tools/test/templates/Worklist.xml +42 -0
- data/tools/test/templates/instantiate.local/Take_Sub.xml +59 -0
- data/tools/test/templates/instantiate/Take_Perf.xml +46 -0
- data/tools/test/templates/instantiate/Take_Sub.xml +58 -0
- data/tools/test/templates/instantiate/Take_X.xml +48 -0
- data/tools/test/themes/compact/theme.js +1285 -0
- data/tools/test/themes/diana/theme.js +1650 -0
- data/tools/test/themes/extended/theme.js +1325 -0
- data/tools/test/themes/model/rngs/alternative.rng +1 -0
- data/tools/test/themes/model/rngs/call.rng +67 -0
- data/tools/test/themes/model/rngs/callmanipulate.rng +72 -0
- data/tools/test/themes/model/rngs/choose.rng +1 -0
- data/tools/test/themes/model/rngs/critical.rng +1 -0
- data/tools/test/themes/model/rngs/escape.rng +1 -0
- data/tools/test/themes/model/rngs/group.rng +1 -0
- data/tools/test/themes/model/rngs/loop.rng +1 -0
- data/tools/test/themes/model/rngs/manipulate.rng +1 -0
- data/tools/test/themes/model/rngs/otherwise.rng +1 -0
- data/tools/test/themes/model/rngs/parallel.rng +1 -0
- data/tools/test/themes/model/rngs/parallel_branch.rng +1 -0
- data/tools/test/themes/model/rngs/scripts.rng +7 -0
- data/tools/test/themes/model/rngs/stop.rng +1 -0
- data/tools/test/themes/model/rngs/terminate.rng +1 -0
- data/tools/test/themes/model/theme.js +1268 -0
- data/tools/test/themes/packed/theme.js +1286 -0
- data/tools/test/themes/preset/rngs/alternative.rng +25 -0
- data/tools/test/themes/preset/rngs/call.rng +122 -0
- data/tools/test/themes/preset/rngs/callmanipulate.rng +145 -0
- data/tools/test/themes/preset/rngs/choose.rng +14 -0
- data/tools/test/themes/preset/rngs/closed_loop.rng +62 -0
- data/tools/test/themes/preset/rngs/closed_loop_cancel.rng +5 -0
- data/tools/test/themes/preset/rngs/closed_loop_control.rng +31 -0
- data/tools/test/themes/preset/rngs/closed_loop_measuring.rng +12 -0
- data/tools/test/themes/preset/rngs/critical.rng +5 -0
- data/tools/test/themes/preset/rngs/escape.rng +1 -0
- data/tools/test/themes/preset/rngs/group.rng +3 -0
- data/tools/test/themes/preset/rngs/loop.rng +22 -0
- data/tools/test/themes/preset/rngs/manipulate.rng +9 -0
- data/tools/test/themes/preset/rngs/otherwise.rng +22 -0
- data/tools/test/themes/preset/rngs/parallel.rng +21 -0
- data/tools/test/themes/preset/rngs/parallel_branch.rng +8 -0
- data/tools/test/themes/preset/rngs/scripts.rng +23 -0
- data/tools/test/themes/preset/rngs/stop.rng +5 -0
- data/tools/test/themes/preset/rngs/terminate.rng +1 -0
- data/tools/test/themes/preset/symbols/alternative.svg +5 -0
- data/tools/test/themes/preset/symbols/arrow.svg +3 -0
- data/tools/test/themes/preset/symbols/call.svg +6 -0
- data/tools/test/themes/preset/symbols/callmanipulate.svg +8 -0
- data/tools/test/themes/preset/symbols/choose.svg +5 -0
- data/tools/test/themes/preset/symbols/choose_exclusive.svg +5 -0
- data/tools/test/themes/preset/symbols/choose_inclusive.svg +4 -0
- data/tools/test/themes/preset/symbols/closed_loop.svg +5 -0
- data/tools/test/themes/preset/symbols/closed_loop_cancel.svg +5 -0
- data/tools/test/themes/preset/symbols/closed_loop_control.svg +5 -0
- data/tools/test/themes/preset/symbols/closed_loop_measuring.svg +6 -0
- data/tools/test/themes/preset/symbols/complex.svg +8 -0
- data/tools/test/themes/preset/symbols/critical.svg +4 -0
- data/tools/test/themes/preset/symbols/end.svg +3 -0
- data/tools/test/themes/preset/symbols/escape.svg +5 -0
- data/tools/test/themes/preset/symbols/event_end.svg +3 -0
- data/tools/test/themes/preset/symbols/loop.svg +5 -0
- data/tools/test/themes/preset/symbols/manipulate.svg +4 -0
- data/tools/test/themes/preset/symbols/otherwise.svg +5 -0
- data/tools/test/themes/preset/symbols/parallel.svg +5 -0
- data/tools/test/themes/preset/symbols/parallel_branch.svg +5 -0
- data/tools/test/themes/preset/symbols/parallel_branch_compact.svg +4 -0
- data/tools/test/themes/preset/symbols/parallel_branch_event.svg +14 -0
- data/tools/test/themes/preset/symbols/parallel_branch_normal.svg +5 -0
- data/tools/test/themes/preset/symbols/scripts.svg +4 -0
- data/tools/test/themes/preset/symbols/start.svg +3 -0
- data/tools/test/themes/preset/symbols/stop.svg +5 -0
- data/tools/test/themes/preset/symbols/terminate.svg +4 -0
- data/tools/test/themes/preset/theme.js +1287 -0
- data/tools/test/track.html +142 -0
- metadata +282 -2
@@ -26,7 +26,8 @@
|
|
26
26
|
</zeroOrMore>
|
27
27
|
</element>
|
28
28
|
<element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
|
29
|
-
|
29
|
+
|
30
|
+
<element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
|
30
31
|
<zeroOrMore rngui:label="Add Sensor">
|
31
32
|
<element name="sensor">
|
32
33
|
<element name="name" rngui:label="Label">
|
@@ -35,13 +36,18 @@
|
|
35
36
|
<element name="extractor_url" rngui:label="Extractor Url">
|
36
37
|
<data type="string" rngui:label="Service Url"/>
|
37
38
|
</element>
|
38
|
-
<element name="
|
39
|
-
<
|
39
|
+
<element name="extractor_params" rngui:label="Extractor Arguments:">
|
40
|
+
<zeroOrMore rngui:label="Create Extractor Argument Pairs">
|
41
|
+
<element rngui:label="Name">
|
42
|
+
<anyName/>
|
43
|
+
<data type="string" rngui:label="Value / Json"/>
|
44
|
+
</element>
|
45
|
+
</zeroOrMore>
|
40
46
|
</element>
|
41
47
|
<element name="visualizer_url" rngui:label="Visualizer Url">
|
42
48
|
<data type="string" rngui:label="Service Url"/>
|
43
49
|
</element>
|
44
|
-
<element name="visualizer_params" rngui:
|
50
|
+
<element name="visualizer_params" rngui:label="Visualizer Arguments">
|
45
51
|
<zeroOrMore rngui:label="Create Visualizer Argument Pairs">
|
46
52
|
<element rngui:label="Name">
|
47
53
|
<anyName/>
|
@@ -52,42 +58,44 @@
|
|
52
58
|
</element>
|
53
59
|
</zeroOrMore>
|
54
60
|
</element>
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
<data type="string" rngui:label="Label"/>
|
60
|
-
</element>
|
61
|
-
<element name="aggregator_url" rngui:label="Aggregator Url">
|
62
|
-
<data type="string" rngui:label="Service Url"/>
|
63
|
-
</element>
|
64
|
-
<element name="aggregator_arg" rngui:label="Aggregator Argument">
|
65
|
-
<data type="string" rngui:label="Value / Json"/>
|
66
|
-
</element>
|
67
|
-
</element>
|
68
|
-
</zeroOrMore>
|
69
|
-
</element>
|
70
|
-
<element name="costs" rngui:header="Costs" rngui:fold="closed">
|
71
|
-
<zeroOrMore rngui:label="Create Cost Factor">
|
72
|
-
<element name="cost_factor">
|
61
|
+
|
62
|
+
<element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
|
63
|
+
<zeroOrMore rngui:label="Add Impact Profile">
|
64
|
+
<element name="ip">
|
73
65
|
<element name="name" rngui:label="Label">
|
74
66
|
<data type="string" rngui:label="Label"/>
|
75
67
|
</element>
|
76
68
|
<element name="target" rngui:label="Target Value">
|
77
69
|
<data type="string" rngui:label="Value"/>
|
78
70
|
</element>
|
79
|
-
<element name="
|
80
|
-
<
|
81
|
-
|
82
|
-
|
83
|
-
|
71
|
+
<element name="ifs" rngui:header="Impact Factors">
|
72
|
+
<zeroOrMore rngui:label="Add Impact Factor">
|
73
|
+
<element name="if">
|
74
|
+
<element name="ivs" rngui:header="Impact Values">
|
75
|
+
<zeroOrMore rngui:label="Add Impact Value ">
|
76
|
+
<element name="iv">
|
77
|
+
<element name="extractor_url" rngui:label="Extractor Url">
|
78
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
79
|
+
</element>
|
80
|
+
<element name="aggregator_url" rngui:label="Aggregator Url">
|
81
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
82
|
+
</element>
|
83
|
+
</element>
|
84
|
+
</zeroOrMore>
|
85
|
+
</element>
|
86
|
+
<element name="aggregator_url" rngui:label="Impact Function Url">
|
87
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
88
|
+
</element>
|
89
|
+
</element>
|
90
|
+
</zeroOrMore>
|
84
91
|
</element>
|
85
|
-
<element name="
|
86
|
-
<data type="string" rngui:label="
|
92
|
+
<element name="vfunc_url" rngui:label="Violation Function Url">
|
93
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
87
94
|
</element>
|
88
95
|
</element>
|
89
96
|
</zeroOrMore>
|
90
97
|
</element>
|
98
|
+
|
91
99
|
</element>
|
92
100
|
<element name="report" rngui:header="Reporting Annotation" rngui:fold="closed">
|
93
101
|
<element name="url" rngui:label='HTML Snippet'>
|
@@ -97,21 +105,40 @@
|
|
97
105
|
</element>
|
98
106
|
<element name="annotations" rngui:header="Annotations">
|
99
107
|
<element name="_timing" rngui:header="Timing" rngui:fold="closed">
|
100
|
-
<element name="
|
101
|
-
<data type="float" rngui:label="[0,1]"
|
102
|
-
</element>
|
103
|
-
<element name="_timing_threshold" rngui:label="κ - Threshold">
|
104
|
-
<data type="float" rngui:label="[0,3,n]" rngui:default="3"/>
|
105
|
-
</element>
|
106
|
-
<element name="_timing_min" rngui:label="Min in min">
|
107
|
-
<data type="float" rngui:label="Minutes"/>
|
108
|
-
</element>
|
109
|
-
<element name="_timing_max" rngui:label="Max in min">
|
110
|
-
<data type="float" rngui:label="Minutes"/>
|
108
|
+
<element name="_timing_weight" rngui:label="ω - Weight">
|
109
|
+
<data type="float" rngui:label="[0,1]"/>
|
111
110
|
</element>
|
112
111
|
<element name="_timing_avg" rngui:label="Avg in min">
|
113
112
|
<data type="float" rngui:label="Minutes"/>
|
114
113
|
</element>
|
114
|
+
<element name="explanations" rngui:header="Explanations">
|
115
|
+
<zeroOrMore rngui:label="Add Explanation">
|
116
|
+
<element name="explanation">
|
117
|
+
<element name="type" rngui:label="Type">
|
118
|
+
<choice>
|
119
|
+
<value>></value>
|
120
|
+
<value><</value>
|
121
|
+
</choice>
|
122
|
+
</element>
|
123
|
+
<element name="deviation" rngui:label="Deviation">
|
124
|
+
<data type="float" rngui:label="Minutes"/>
|
125
|
+
</element>
|
126
|
+
<element name="behaviour" rngui:label="Behaviour">
|
127
|
+
<choice>
|
128
|
+
<value>Immediately</value>
|
129
|
+
<value>Wait until next</value>
|
130
|
+
<value>Use grace period value</value>
|
131
|
+
</choice>
|
132
|
+
</element>
|
133
|
+
<element name="grace" rngui:label="Grace Period" rngui:default="0.0">
|
134
|
+
<data type="float" rngui:label="Minutes"/>
|
135
|
+
</element>
|
136
|
+
<element name="text" rngui:label="Explanation">
|
137
|
+
<data type="string" rngui:label="Patterns"/>
|
138
|
+
</element>
|
139
|
+
</element>
|
140
|
+
</zeroOrMore>
|
141
|
+
</element>
|
115
142
|
</element>
|
116
143
|
<element name="_notes" rngui:header="Notes" rngui:fold="closed">
|
117
144
|
<element name="_notes_general" rngui:label="General">
|
@@ -26,7 +26,8 @@
|
|
26
26
|
</zeroOrMore>
|
27
27
|
</element>
|
28
28
|
<element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
|
29
|
-
|
29
|
+
|
30
|
+
<element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
|
30
31
|
<zeroOrMore rngui:label="Add Sensor">
|
31
32
|
<element name="sensor">
|
32
33
|
<element name="name" rngui:label="Label">
|
@@ -35,8 +36,13 @@
|
|
35
36
|
<element name="extractor_url" rngui:label="Extractor Url">
|
36
37
|
<data type="string" rngui:label="Service Url"/>
|
37
38
|
</element>
|
38
|
-
<element name="
|
39
|
-
<
|
39
|
+
<element name="extractor_params" rngui:label="Extractor Arguments:">
|
40
|
+
<zeroOrMore rngui:label="Create Extractor Argument Pairs">
|
41
|
+
<element rngui:label="Name">
|
42
|
+
<anyName/>
|
43
|
+
<data type="string" rngui:label="Value / Json"/>
|
44
|
+
</element>
|
45
|
+
</zeroOrMore>
|
40
46
|
</element>
|
41
47
|
<element name="visualizer_url" rngui:label="Visualizer Url">
|
42
48
|
<data type="string" rngui:label="Service Url"/>
|
@@ -52,42 +58,60 @@
|
|
52
58
|
</element>
|
53
59
|
</zeroOrMore>
|
54
60
|
</element>
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
<data type="string" rngui:label="Label"/>
|
60
|
-
</element>
|
61
|
-
<element name="aggregator_url" rngui:label="Aggregator Url">
|
62
|
-
<data type="string" rngui:label="Service Url"/>
|
63
|
-
</element>
|
64
|
-
<element name="aggregator_arg" rngui:label="Aggregator Argument">
|
65
|
-
<data type="string" rngui:label="Value / Json"/>
|
66
|
-
</element>
|
67
|
-
</element>
|
68
|
-
</zeroOrMore>
|
69
|
-
</element>
|
70
|
-
<element name="costs" rngui:header="Costs" rngui:fold="closed">
|
71
|
-
<zeroOrMore rngui:label="Create Cost Factor">
|
72
|
-
<element name="cost_factor">
|
61
|
+
|
62
|
+
<element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
|
63
|
+
<zeroOrMore rngui:label="Add Impact Profile">
|
64
|
+
<element name="ip">
|
73
65
|
<element name="name" rngui:label="Label">
|
74
66
|
<data type="string" rngui:label="Label"/>
|
75
67
|
</element>
|
76
68
|
<element name="target" rngui:label="Target Value">
|
77
69
|
<data type="string" rngui:label="Value"/>
|
78
70
|
</element>
|
79
|
-
<element name="
|
80
|
-
<
|
81
|
-
|
82
|
-
|
83
|
-
|
71
|
+
<element name="ifs" rngui:header="Impact Factors">
|
72
|
+
<zeroOrMore rngui:label="Add Impact Factor">
|
73
|
+
<element name="if">
|
74
|
+
<element name="ivs" rngui:header="Impact Values">
|
75
|
+
<zeroOrMore rngui:label="Add Impact Value ">
|
76
|
+
<element name="iv">
|
77
|
+
<element name="extractor_url" rngui:label="Extractor Url">
|
78
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
79
|
+
</element>
|
80
|
+
<element name="extractor_params" rngui:header="Extractor Arguments">
|
81
|
+
<zeroOrMore rngui:label="Create Extractor Argument Pairs">
|
82
|
+
<element rngui:label="Name">
|
83
|
+
<anyName/>
|
84
|
+
<data type="string" rngui:label="Value / Json"/>
|
85
|
+
</element>
|
86
|
+
</zeroOrMore>
|
87
|
+
</element>
|
88
|
+
<element name="aggregator_url" rngui:label="Aggregator Url">
|
89
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
90
|
+
</element>
|
91
|
+
<element name="aggregator_params" rngui:header="Extractor Arguments">
|
92
|
+
<zeroOrMore rngui:label="Create Aggregator Argument Pairs">
|
93
|
+
<element rngui:label="Name">
|
94
|
+
<anyName/>
|
95
|
+
<data type="string" rngui:label="Value / Json"/>
|
96
|
+
</element>
|
97
|
+
</zeroOrMore>
|
98
|
+
</element>
|
99
|
+
</element>
|
100
|
+
</zeroOrMore>
|
101
|
+
</element>
|
102
|
+
<element name="aggregator_url" rngui:label="Impact Function Url">
|
103
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
104
|
+
</element>
|
105
|
+
</element>
|
106
|
+
</zeroOrMore>
|
84
107
|
</element>
|
85
|
-
<element name="
|
86
|
-
<data type="string" rngui:label="
|
108
|
+
<element name="vfunc_url" rngui:label="Violation Function Url">
|
109
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
87
110
|
</element>
|
88
111
|
</element>
|
89
112
|
</zeroOrMore>
|
90
113
|
</element>
|
114
|
+
|
91
115
|
</element>
|
92
116
|
<element name="report" rngui:header="Reporting Annotation" rngui:fold="closed">
|
93
117
|
<element name="url" rngui:label='HTML Snippet'>
|
@@ -120,21 +144,40 @@
|
|
120
144
|
</element>
|
121
145
|
<element name="annotations" rngui:header="Annotations">
|
122
146
|
<element name="_timing" rngui:header="Timing" rngui:fold="closed">
|
123
|
-
<element name="
|
147
|
+
<element name="_timing_weight" rngui:label="ω - Weight">
|
124
148
|
<data type="float" rngui:label="[0,1]"/>
|
125
149
|
</element>
|
126
|
-
<element name="_timing_threshold" rngui:label="κ - Threshold">
|
127
|
-
<data type="float" rngui:label="[0,3,n]"/>
|
128
|
-
</element>
|
129
|
-
<element name="_timing_min" rngui:label="Min in min">
|
130
|
-
<data type="float" rngui:label="Minutes"/>
|
131
|
-
</element>
|
132
|
-
<element name="_timing_max" rngui:label="Max in min">
|
133
|
-
<data type="float" rngui:label="Minutes"/>
|
134
|
-
</element>
|
135
150
|
<element name="_timing_avg" rngui:label="Avg in min">
|
136
151
|
<data type="float" rngui:label="Minutes"/>
|
137
152
|
</element>
|
153
|
+
<element name="explanations" rngui:header="Explanations">
|
154
|
+
<zeroOrMore rngui:label="Add Explanation">
|
155
|
+
<element name="explanation">
|
156
|
+
<element name="type" rngui:label="Type">
|
157
|
+
<choice>
|
158
|
+
<value>></value>
|
159
|
+
<value><</value>
|
160
|
+
</choice>
|
161
|
+
</element>
|
162
|
+
<element name="deviation" rngui:label="Deviation">
|
163
|
+
<data type="float" rngui:label="Minutes"/>
|
164
|
+
</element>
|
165
|
+
<element name="behaviour" rngui:label="Behaviour">
|
166
|
+
<choice>
|
167
|
+
<value>Immediately</value>
|
168
|
+
<value>Wait until next</value>
|
169
|
+
<value>Use grace period value</value>
|
170
|
+
</choice>
|
171
|
+
</element>
|
172
|
+
<element name="grace" rngui:label="Grace Period" rngui:default="0.0">
|
173
|
+
<data type="float" rngui:label="Minutes"/>
|
174
|
+
</element>
|
175
|
+
<element name="text" rngui:label="Explanation">
|
176
|
+
<data type="string" rngui:label="Patterns"/>
|
177
|
+
</element>
|
178
|
+
</element>
|
179
|
+
</zeroOrMore>
|
180
|
+
</element>
|
138
181
|
</element>
|
139
182
|
<element name="_notes" rngui:header="Notes" rngui:fold="closed">
|
140
183
|
<element name="_notes_general" rngui:label="General">
|
data/cockpit/track.html
CHANGED
@@ -111,13 +111,6 @@
|
|
111
111
|
</svg>
|
112
112
|
</button>
|
113
113
|
<span id="state_extended">
|
114
|
-
<button name="state_replay" title='replay'>
|
115
|
-
<svg viewBox="0 -1.5 7 12" width="10" height="16">
|
116
|
-
<path
|
117
|
-
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
118
|
-
d="m -0.24999978,8.9999993 c 0,-2.7488167 0,-5.4976332 0,-8.24644997 C 1.1183278,0.76955385 2.4884861,0.71666052 3.8555376,0.79065567 4.5083287,0.83810218 5.2238942,1.0790874 5.5755039,1.7307256 6.1661398,2.7080902 6.0299484,4.2180754 5.1108772,4.9019222 4.7622397,5.1617467 4.3480204,5.2956156 3.9336064,5.3605366 4.9287868,5.9394132 5.4254071,7.0996814 6.0167729,8.0858876 6.1549588,8.3769029 6.4657247,8.7723933 6.5,8.9999999 c -0.5944185,0 -1.1888371,0 -1.7832559,0 C 4.0758679,7.9893475 3.4946311,6.9294648 2.7923497,5.9678488 2.4230355,5.5319748 1.8508715,5.5458842 1.3513114,5.5576027 c -0.1507526,-0.00412 -0.044576,0.272902 -0.076255,0.3990664 0,1.0144436 0,2.028887 0,3.0433307 -0.50835205,-3e-7 -1.01670555,8e-7 -1.52505618,-5e-7 z M 1.2750578,4.2411336 C 2.111059,4.2189781 2.9581852,4.3060525 3.7849326,4.1387394 4.4863715,3.8915585 4.5732952,2.6432813 3.9026802,2.2941453 3.5098807,2.068434 3.050719,2.1857044 2.6267379,2.1489138 c -0.4505578,-0.00242 -0.90112,0.00147 -1.3516801,-3.456e-4 0,0.6975176 0,1.3950347 0,2.0925522 z"
|
119
|
-
</svg>
|
120
|
-
</button>
|
121
114
|
<button name="state_abandon" title='abandon'>
|
122
115
|
<svg viewBox="0 -1.5 7 12" width="10" height="16">
|
123
116
|
<path
|
data/cpee.gemspec
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee"
|
3
|
-
s.version = "2.0.
|
3
|
+
s.version = "2.0.24"
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.license = "LGPL-3.0"
|
6
6
|
s.summary = "Preliminary release of cloud process execution engine (cpee.org). If you just need workflow execution, without a rest service exposing it, then use WEEL."
|
7
7
|
|
8
8
|
s.description = "see http://cpee.org"
|
9
9
|
|
10
|
-
s.files = Dir['{example/**/*,server/**/*,tools/**/*,tools/archive,lib/**/*,cockpit/**/*,cockpit/themes/*/*/*,contrib/logo*,contrib/Screen*}'] - Dir['{server/instances/**/*,cockpit/js_libs
|
10
|
+
s.files = Dir['{example/**/*,server/**/*,tools/**/*,tools/archive,lib/**/*,cockpit/**/*,cockpit/templates/.templates.xml,cockpit/templates/.transformations.xml,cockpit/templates/.Signavio.xml,cockpit/templates/.CPEE.xml,cockpit/*.html,cockpit/themes/*/*,cockpit/themes/*/*/*,contrib/logo*,contrib/Screen*}'] - Dir['{server/instances/**/*,cockpit/js_libs/**/*,server/redis*}'] + %w(COPYING FEATURES.md INSTALL.md Rakefile cpee.gemspec README.md AUTHORS)
|
11
11
|
s.require_path = 'lib'
|
12
12
|
s.extra_rdoc_files = ['README.md']
|
13
13
|
s.bindir = 'tools'
|
data/lib/cpee/controller.rb
CHANGED
@@ -20,6 +20,7 @@ require 'riddl/client'
|
|
20
20
|
require_relative 'value_helper'
|
21
21
|
require_relative 'attributes_helper'
|
22
22
|
require_relative 'message'
|
23
|
+
require_relative 'redis'
|
23
24
|
|
24
25
|
require 'ostruct'
|
25
26
|
class ParaStruct < OpenStruct
|
@@ -34,7 +35,9 @@ module CPEE
|
|
34
35
|
|
35
36
|
class Controller
|
36
37
|
def initialize(id,dir,opts)
|
37
|
-
|
38
|
+
CPEE::redis_connect(opts)
|
39
|
+
|
40
|
+
@redis = opts[:redis]
|
38
41
|
@votes = []
|
39
42
|
|
40
43
|
@id = id
|
@@ -134,7 +137,7 @@ module CPEE
|
|
134
137
|
|
135
138
|
if votes.length > 0
|
136
139
|
@votes += votes
|
137
|
-
psredis =
|
140
|
+
psredis = @opts[:redis_dyn].call
|
138
141
|
collect = []
|
139
142
|
psredis.subscribe(votes.map{|e| ['vote-response:' + e.to_s, 'vote-end:' + e.to_s] }.flatten) do |on|
|
140
143
|
on.message do |what, message|
|
@@ -158,7 +161,7 @@ module CPEE
|
|
158
161
|
def callback(hw,key,content)
|
159
162
|
CPEE::Message::send(:callback,'activity/content',base,@id,uuid,info,content.merge(:key => key),@redis)
|
160
163
|
|
161
|
-
psredis =
|
164
|
+
psredis = @opts[:redis_dyn].call
|
162
165
|
response = nil
|
163
166
|
Thread.new do
|
164
167
|
psredis.subscribe('callback-response:' + key, 'callback-end:' + key) do |on|
|
data/lib/cpee/implementation.rb
CHANGED
@@ -16,6 +16,7 @@ require 'fileutils'
|
|
16
16
|
require 'redis'
|
17
17
|
require 'riddl/server'
|
18
18
|
require 'riddl/client'
|
19
|
+
require_relative 'redis'
|
19
20
|
require_relative 'message'
|
20
21
|
require_relative 'persistence'
|
21
22
|
require_relative 'statemachine'
|
@@ -70,12 +71,22 @@ module CPEE
|
|
70
71
|
opts[:watchdog_start_off] ||= false
|
71
72
|
opts[:backend_instance] ||= 'instance.rb'
|
72
73
|
opts[:infinite_loop_stop] ||= 10000
|
73
|
-
opts[:redis_path] ||= '/tmp/redis.sock'
|
74
|
-
opts[:redis_db] ||= 3
|
75
|
-
opts[:sse_keepalive_frequency] ||= 10
|
76
74
|
|
75
|
+
### set redis_cmd to nil if you want to do global
|
76
|
+
### at least redis_path or redis_url and redis_db have to be set if you do global
|
77
|
+
opts[:redis_path] ||= 'redis.sock' # use e.g. /tmp/redis.sock for global stuff. Look it up in your redis config
|
78
|
+
opts[:redis_db] ||= 0
|
79
|
+
### optional redis stuff
|
80
|
+
opts[:redis_url] ||= nil
|
81
|
+
opts[:redis_cmd] ||= 'redis-server --port 0 --unixsocket #redis_path# --unixsocketperm 600 --pidfile #redis_pid# --dir #redis_db_dir# --dbfilename #redis_db_name# --databases 1 --save 900 1 --save 300 10 --save 60 10000 --rdbcompression yes --daemonize yes'
|
82
|
+
opts[:redis_pid] ||= 'redis.pid' # use e.g. /var/run/redis.pid if you do global. Look it up in your redis config
|
83
|
+
opts[:redis_db_name] ||= 'redis.rdb' # use e.g. /var/lib/redis.rdb for global stuff. Look it up in your redis config
|
84
|
+
|
85
|
+
CPEE::redis_connect opts
|
86
|
+
|
87
|
+
opts[:sse_keepalive_frequency] ||= 10
|
77
88
|
opts[:sse_connections] = {}
|
78
|
-
|
89
|
+
|
79
90
|
opts[:statemachine] = CPEE::StateMachine.new opts[:states], %w{running simulating replaying finishing stopping abandoned finished} do |id|
|
80
91
|
opts[:redis].get("instance:#{id}/state")
|
81
92
|
end
|
@@ -90,9 +101,9 @@ module CPEE
|
|
90
101
|
|
91
102
|
Proc.new do
|
92
103
|
parallel do
|
93
|
-
CPEE::watch_services(opts[:watchdog_start_off])
|
104
|
+
CPEE::watch_services(opts[:watchdog_start_off],opts[:redis_url],File.join(opts[:basepath],opts[:redis_path]),opts[:redis_db])
|
94
105
|
EM.add_periodic_timer(opts[:watchdog_frequency]) do ### start services
|
95
|
-
CPEE::watch_services(opts[:watchdog_start_off])
|
106
|
+
CPEE::watch_services(opts[:watchdog_start_off],opts[:redis_url],File.join(opts[:basepath],opts[:redis_path]),opts[:redis_db])
|
96
107
|
end
|
97
108
|
EM.defer do ### catch all sse connections
|
98
109
|
CPEE::Notifications::sse_distributor(opts)
|
@@ -132,14 +143,18 @@ module CPEE
|
|
132
143
|
end
|
133
144
|
end
|
134
145
|
|
135
|
-
def self::watch_services(watchdog_start_off)
|
146
|
+
def self::watch_services(watchdog_start_off,url,path,db)
|
136
147
|
return if watchdog_start_off
|
137
148
|
EM.defer do
|
138
149
|
Dir[File.join(__dir__,'..','..','server','routing','*.rb')].each do |s|
|
139
150
|
s = s.sub(/\.rb$/,'')
|
140
151
|
pid = (File.read(s + '.pid').to_i rescue nil)
|
141
152
|
if (pid.nil? || !(Process.kill(0, pid) rescue false)) && !File.exist?(s + '.lock')
|
142
|
-
|
153
|
+
if url.nil?
|
154
|
+
system "#{s}.rb -p \"#{path}\" -d #{db} restart 1>/dev/null 2>&1"
|
155
|
+
else
|
156
|
+
system "#{s}.rb -u \"#{url}\" -d #{db} restart 1>/dev/null 2>&1"
|
157
|
+
end
|
143
158
|
puts "➡ Service #{File.basename(s,'.rb')} started ..."
|
144
159
|
end
|
145
160
|
end
|
@@ -165,7 +165,7 @@ module CPEE
|
|
165
165
|
end #}}}
|
166
166
|
|
167
167
|
def self::sse_distributor(opts) #{{{
|
168
|
-
conn =
|
168
|
+
conn = opts[:redis_dyn].call
|
169
169
|
conn.psubscribe('forward:*','event:state/change') do |on|
|
170
170
|
on.pmessage do |pat, what, message|
|
171
171
|
if pat == 'forward:*'
|