cpee 2.1.71 → 2.1.74

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.
@@ -1,3 +1,4 @@
1
+ <?xml version="1.0"?>
1
2
  <testset xmlns="http://cpee.org/ns/properties/2.0">
2
3
  <executionhandler>ruby</executionhandler>
3
4
  <dataelements>
@@ -5,8 +6,24 @@
5
6
  </dataelements>
6
7
  <endpoints>
7
8
  <start_url>https://cpee.org/flow/start/url/</start_url>
9
+ <user>https-post://cpee.org/services/timeout-user.php</user>
10
+ <auto>https-post://cpee.org/services/timeout-auto.php</auto>
11
+ <subprocess>https-post://cpee.org/flow/start/url/</subprocess>
12
+ <timeout>https-post://cpee.org/services/timeout.php</timeout>
13
+ <send>https-post://cpee.org/ing/correlators/message/send/</send>
14
+ <receive>https-get://cpee.org/ing/correlators/message/receive/</receive>
8
15
  </endpoints>
9
- <positions/>
16
+ <attributes>
17
+ <info>Track Test Local</info>
18
+ <modeltype>CPEE</modeltype>
19
+ <theme>default</theme>
20
+ <customer>pilotfabrik</customer>
21
+ <status>development</status>
22
+ <creator>Christine Ashcreek</creator>
23
+ <author>Christine Ashcreek</author>
24
+ <design_stage>development</design_stage>
25
+ <design_dir>Templates.dir</design_dir>
26
+ </attributes>
10
27
  <description>
11
28
  <description xmlns="http://cpee.org/ns/description/1.0">
12
29
  <loop mode="pre_test" condition="true">
@@ -73,15 +90,4 @@
73
90
  <dataelements type="none"/>
74
91
  <endpoints type="none"/>
75
92
  </transformation>
76
- <attributes>
77
- <info>Track Test Local</info>
78
- <modeltype>CPEE</modeltype>
79
- <theme>default</theme>
80
- <customer>pilotfabrik</customer>
81
- <status>development</status>
82
- <creator>Christine Ashcreek</creator>
83
- <author>Christine Ashcreek</author>
84
- <design_stage>development</design_stage>
85
- <design_dir>Templates.dir</design_dir>
86
- </attributes>
87
- </testset>
93
+ </testset>
@@ -1248,14 +1248,22 @@ function WFAdaptorManifestationBase(adaptor) {
1248
1248
 
1249
1249
  var regassi = /data\.([a-zA-Z_]+)\s*(=[^=]|\+\=|\-\=|\*\=|\/\=|<<|>>)/g; // we do not have to check for &gt;/&lt; version of stuff as only conditions are in attributes, and conditions can not contain assignments
1250
1250
  var reg_not_assi = /data\.([a-zA-Z_]+)\s*/g;
1251
- $.merge($('call > code > prepare',node), $('call > parameters > arguments > *, call > code > finalize, call > code > update, call > code > rescue, loop[condition], alternative[condition]',node)).each(function(i,n) {
1252
- let item;
1251
+
1252
+ $('call, loop[condition], alternative[condition]',node).each(function(i,n) {
1253
+ let item = '';
1253
1254
  if (n.hasAttribute('condition')) {
1254
1255
  item = n.getAttribute('condition');
1255
1256
  } else {
1256
- item = n.textContent;
1257
+ $('call > code > prepare',n).each(function(j,m){
1258
+ item += m.textContent + '\n';
1259
+ });
1260
+ $('call > parameters > arguments > *, call > code > finalize, call > code > update, call > code > rescue',n).each(function(j,m){
1261
+ let x = m.textContent;
1262
+ if (m.parentNode.nodeName == 'arguments' && x.charAt(0) != '!' ) { return }
1263
+ item += x + '\n';
1264
+ });
1257
1265
  }
1258
- if (n.parentNode.nodeName == 'arguments' && item.charAt(0) != '!' ) { return }
1266
+ if (item == '') { return; }
1259
1267
 
1260
1268
  let indices = [];
1261
1269
 
@@ -1263,11 +1271,12 @@ function WFAdaptorManifestationBase(adaptor) {
1263
1271
  indices.push(match.index);
1264
1272
  alist.push(match[1]);
1265
1273
  }
1274
+
1266
1275
  for (const match of item.matchAll(reg_not_assi)) {
1267
1276
  const arg1 = match[1];
1268
1277
  if (indices.includes(match.index)) { continue; }
1269
1278
  if (!alist.includes(arg1)) {
1270
- if (match.index >= indices[0]) {
1279
+ if (match.index >= indices[0] || indices.length == 0) {
1271
1280
  plist.push(arg1);
1272
1281
  }
1273
1282
  }
data/cpee.gemspec CHANGED
@@ -1,13 +1,13 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "2.1.71"
3
+ s.version = "2.1.74"
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."
7
7
 
8
8
  s.description = "see http://cpee.org"
9
9
 
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)
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/**/*,server/executionhandlers/rust/**/*,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'
@@ -181,6 +181,9 @@ module CPEE
181
181
  interface 'main' do
182
182
  run CPEE::Instances, opts if get '*'
183
183
  run CPEE::NewInstance, opts if post 'instance-new'
184
+ on resource 'executionhandlers' do
185
+ run CPEE::ExecutionHandlers, opts if get
186
+ end
184
187
  on resource '\d+' do |r|
185
188
  run CPEE::Info, opts if get
186
189
  run CPEE::DeleteInstance, opts if delete
@@ -256,6 +259,24 @@ module CPEE
256
259
  end
257
260
  end
258
261
 
262
+ class ExecutionHandlers < Riddl::Implementation #{{{
263
+ def response
264
+ opts = @a[0]
265
+ doc = XML::Smart::string('<handlers/>')
266
+ list = []
267
+ Dir[File.join(opts[:global_executionhandlers],'*','execution.rb')].each do |h|
268
+ list << File.basename(File.dirname(h))
269
+ end unless opts[:global_executionhandlers].nil? || opts[:global_executionhandlers].strip == ''
270
+ Dir[File.join(opts[:executionhandlers],'*','execution.rb')].each do |h|
271
+ list << File.basename(File.dirname(h))
272
+ end unless opts[:executionhandlers].nil? || opts[:executionhandlers].strip == ''
273
+ list.uniq.each do |e|
274
+ doc.root.add('handler',e)
275
+ end
276
+ Riddl::Parameter::Complex.new('wis','text/xml',doc.to_s)
277
+ end
278
+ end #}}}
279
+
259
280
  class Instances < Riddl::Implementation #{{{
260
281
  def response
261
282
  opts = @a[0]
@@ -272,7 +293,7 @@ module CPEE
272
293
  ins.to_s
273
294
  end
274
295
  else
275
- Riddl::Parameter::Complex.new("wis","text/xml",'<instances><!-- instances list disabled. --></instances>')
296
+ Riddl::Parameter::Complex.new('wis','text/xml','<instances><!-- instances list disabled. --></instances>')
276
297
  end
277
298
  end
278
299
  end #}}}
@@ -116,7 +116,21 @@ module CPEE
116
116
  if CPEE::Persistence::extract_item(id,opts,"callback/#{callback}/type") == 'callback'
117
117
  ret = {}
118
118
  ret['values'] = @p.map{ |e|
119
- [e.name, e.class == Riddl::Parameter::Simple ? [:simple,e.value] : [:complex,e.mimetype,e.value.path] ]
119
+ # bei complex wenn kleiner 500KiB statt e.value.path e.value.read
120
+ # bei complex wenn groesser 500KiB das file ueber nginx in einem verzeichnis verfuegbar machen, mimetype auf cpee/externallink
121
+ # aendert, link auf den server in den content. Der eval macht das dann direkt.
122
+ # Alt: [e.name, e.class == Riddl::Parameter::Simple ? [:simple,e.value] : [:complex,e.mimetype,e.value.path] ]
123
+ [
124
+ e.name,
125
+ if e.class == Riddl::Parameter::Simple
126
+ [:simple,e.value]
127
+ elsif e.class == Riddl::Parameter::Complex && e.value.size <= 512000
128
+ [:complex,e.mimetype,e.value.read]
129
+ else
130
+ # [:complex,'cpee-external-' + e.mimetype,e.value.read]
131
+ [:complex, e.mimetype,e.value.read]
132
+ end
133
+ ]
120
134
  }
121
135
  ret['headers'] = @h
122
136
 
@@ -332,6 +332,16 @@ module CPEE
332
332
  class PutExecutionHandler < Riddl::Implementation #{{{
333
333
  def self::set(id,opts,hw)
334
334
  CPEE::Persistence::set_item(id,opts,'executionhandler',:executionhandler => hw)
335
+ desc = CPEE::Persistence::extract_item(id,opts,'description')
336
+ dslx = CPEE::Persistence::extract_item(id,opts,'dslx')
337
+ xml = XML::Smart::string(dslx)
338
+ xml.register_namespace 'd', 'http://cpee.org/ns/description/1.0'
339
+ dsl = Object.const_get('CPEE::ExecutionHandler::' + hw.capitalize)::dslx_to_dsl(xml)
340
+ CPEE::Persistence::set_item(id,opts,'description',
341
+ :description => xml,
342
+ :dslx => dslx,
343
+ :dsl => dsl
344
+ )
335
345
  end
336
346
  def response
337
347
  id = @a[0]
@@ -768,7 +778,10 @@ module CPEE
768
778
  CPEE::Persistence::set_item(id,opts,'description',
769
779
  :description => xml,
770
780
  :dslx => dslx,
771
- :dsl => dsl
781
+ :dsl => dsl,
782
+ :dataelements => CPEE::Persistence::extract_list(id,opts,'dataelements').to_h,
783
+ :endpoints => CPEE::Persistence::extract_list(id,opts,'endpoints').to_h,
784
+ :attributes => CPEE::Persistence::extract_list(id,opts,'attributes').to_h
772
785
  )
773
786
  PatchItems::set_hash('dataelements',id,opts,de) unless de.empty?
774
787
  PatchItems::set_hash('dataelements',id,opts,ep) unless ep.empty?
data/lib/cpee/message.rb CHANGED
@@ -50,7 +50,7 @@ module CPEE
50
50
  'topic' => topic,
51
51
  'type' => type,
52
52
  'name' => name,
53
- 'timestamp' => Time.now.xmlschema(3),
53
+ 'timestamp' => Time.now.xmlschema(4),
54
54
  'content' => content
55
55
  }
56
56
  payload[@@type + '-uuid'] = instance_uuid if instance_uuid
@@ -0,0 +1,32 @@
1
+ <!--
2
+ This file is part of CPEE.
3
+
4
+ CPEE is free software: you can redistribute it and/or modify it under the terms
5
+ of the GNU General Public License as published by the Free Software Foundation,
6
+ either version 3 of the License, or (at your option) any later version.
7
+
8
+ CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
9
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
+
12
+ You should have received a copy of the GNU General Public License along with
13
+ CPEE (file COPYING in the main directory). If not, see
14
+ <http://www.gnu.org/licenses/>.
15
+ -->
16
+
17
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
18
+ <start>
19
+ <element name="handlers">
20
+ <zeroOrMore>
21
+ <ref name="handler"/>
22
+ </zeroOrMore>
23
+ </element>
24
+ </start>
25
+
26
+ <define name="handler">
27
+ <element name="handler">
28
+ <data type="string"/>
29
+ </element>
30
+ </define>
31
+
32
+ </grammar>
data/lib/engine.xml CHANGED
@@ -36,6 +36,11 @@
36
36
  <xi:include href="engine/instance-info.rng"/>
37
37
  </parameter>
38
38
  </message>
39
+ <message name="executionhandlerlist">
40
+ <parameter name="list" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
41
+ <xi:include href="engine/executionhandler-list.rng"/>
42
+ </parameter>
43
+ </message>
39
44
 
40
45
  <resource>
41
46
  <doc:documentation>b</doc:documentation>
@@ -43,6 +48,9 @@
43
48
  <doc:documentation>a</doc:documentation>
44
49
  </get>
45
50
  <post in="instance-new" out="instance-id"/>
51
+ <resource relative="executionhandlers">
52
+ <get out="executionhandlerlist"/>
53
+ </resource>
46
54
  <resource relative="\d+">
47
55
  <get in="*" out="instance-info"/>
48
56
  <delete in="*"/>
@@ -70,7 +70,7 @@ class Controller
70
70
  if e[1][0] == 'simple'
71
71
  resp << Riddl::Parameter::Simple.new(e[0],e[1][1])
72
72
  elsif e[1][0] == 'complex'
73
- resp << Riddl::Parameter::Complex.new(e[0],e[1][1],File.open(e[1][2]))
73
+ resp << Riddl::Parameter::Complex.new(e[0],e[1][1],e[1][2])
74
74
  end
75
75
  end
76
76
  @callback_keys[identifier].send(:callback,resp,m['content']['headers'])
@@ -136,6 +136,16 @@ class Controller
136
136
  end
137
137
  end
138
138
 
139
+ def sim
140
+ if vote("state/change", :state => 'simulating')
141
+ @thread = @instance.sim
142
+ @thread.join
143
+ else
144
+ @thread = @instance.stop
145
+ @thread.join
146
+ end
147
+ end
148
+
139
149
  def stop
140
150
  ### tell the instance to stop
141
151
  @instance.stop
@@ -70,7 +70,7 @@ class Controller
70
70
  if e[1][0] == 'simple'
71
71
  resp << Riddl::Parameter::Simple.new(e[0],e[1][1])
72
72
  elsif e[1][0] == 'complex'
73
- resp << Riddl::Parameter::Complex.new(e[0],e[1][1],File.open(e[1][2]))
73
+ resp << Riddl::Parameter::Complex.new(e[0],e[1][1],e[1][2])
74
74
  end
75
75
  end
76
76
  @callback_keys[identifier].send(:callback,resp,m['content']['headers'])
@@ -40,7 +40,6 @@ module CPEE
40
40
  [ k, v, CPEE::Persistence::extract_item(id,opts,File.join('positions',k,'@passthrough')) ]
41
41
  end
42
42
  iopts = YAML::load_file(ExecutionHandler::Ruby::BACKEND_OPTS)
43
- pp iopts
44
43
  iopts[:host] = opts[:host]
45
44
  iopts[:url] = opts[:url]
46
45
  iopts[:redis_url] = opts[:redis_url]
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.71
4
+ version: 2.1.74
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-10-22 00:00:00.000000000 Z
13
+ date: 2024-12-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: riddl
@@ -270,12 +270,12 @@ files:
270
270
  - cockpit/templates.legacy/convert_preset.rb
271
271
  - cockpit/templates.legacy/testsets.xml
272
272
  - cockpit/templates.legacy/transformations.xml
273
- - cockpit/templates/Coopis 2010 Eval.xml
274
273
  - cockpit/templates/Coopis 2010.xml
275
274
  - cockpit/templates/Frames.xml
276
275
  - cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml
277
276
  - cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml
278
277
  - cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml
278
+ - cockpit/templates/ML-pipe-multi.xml
279
279
  - cockpit/templates/Subprocess.xml
280
280
  - cockpit/templates/Subprocess.xml.attrs
281
281
  - cockpit/templates/Track Test Local.xml
@@ -863,6 +863,7 @@ files:
863
863
  - lib/cpee/statemachine.rb
864
864
  - lib/cpee/value_helper.rb
865
865
  - lib/engine.xml
866
+ - lib/engine/executionhandler-list.rng
866
867
  - lib/engine/instance-info.rng
867
868
  - lib/engine/instances.rng
868
869
  - lib/properties.xml
@@ -908,10 +909,6 @@ files:
908
909
  - server/executionhandlers/ruby/controller.rb
909
910
  - server/executionhandlers/ruby/dsl_to_dslx.xsl
910
911
  - server/executionhandlers/ruby/execution.rb
911
- - server/executionhandlers/rust/backend/README.md
912
- - server/executionhandlers/rust/backend/compile.sh
913
- - server/executionhandlers/rust/backend/opts.yaml
914
- - server/executionhandlers/rust/execution.rb
915
912
  - server/resources/empty_dslx.xml
916
913
  - server/resources/notifications/logging/subscription.xml
917
914
  - server/resources/properties.empty
@@ -920,13 +917,9 @@ files:
920
917
  - server/resources/states.xml
921
918
  - server/resources/topics.xml
922
919
  - server/resources/transformation.xml
923
- - server/routing/end.pid
924
920
  - server/routing/end.rb
925
- - server/routing/forward-events-00.pid
926
921
  - server/routing/forward-events.rb
927
- - server/routing/forward-votes.pid
928
922
  - server/routing/forward-votes.rb
929
- - server/routing/persist.pid
930
923
  - server/routing/persist.rb
931
924
  - server/server.pid
932
925
  - server/server.rb
@@ -1,192 +0,0 @@
1
- <testset xmlns="http://cpee.org/ns/properties/2.0">
2
- <executionhandler>eval</executionhandler>
3
- <dataelements>
4
- <persons>3</persons>
5
- <card>Visa_12345</card>
6
- <airline/>
7
- <hotels>[]</hotels>
8
- <from>Vienna</from>
9
- <to>Prague</to>
10
- <costs>0</costs>
11
- </dataelements>
12
- <endpoints>
13
- <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
14
- <user>https-post://cpee.org/services/timeout-user.php</user>
15
- <auto>https-post://cpee.org/services/timeout-auto.php</auto>
16
- <timeout>https://cpee.org/services/timeout.php</timeout>
17
- <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
18
- <subprocess>https://cpee.org/flow/start/url/</subprocess>
19
- <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
20
- <send>https-post://cpee.org/ing/correlators/message/send/</send>
21
- <receive>https-get://cpee.org/ing/correlators/message/receive/</receive>
22
- </endpoints>
23
- <attributes>
24
- <theme>extended</theme>
25
- <info>Coopis 2010 Eval</info>
26
- <creator>Christine Ashcreek</creator>
27
- <author>Christine Ashcreek</author>
28
- <modeltype>CPEE</modeltype>
29
- <design_stage>development</design_stage>
30
- <guarded>none</guarded>
31
- <design_dir>Templates.dir/</design_dir>
32
- <guarded_id/>
33
- <model_uuid>1cdc1bc1-6cf9-4f52-a227-8c87a7b9120a</model_uuid>
34
- </attributes>
35
- <description>
36
- <description xmlns="http://cpee.org/ns/description/1.0">
37
- <call id="a1" endpoint="bookAir">
38
- <parameters>
39
- <label>Book Airline 1</label>
40
- <method>:post</method>
41
- <arguments>
42
- <from>!data.from</from>
43
- <to>!data.to</to>
44
- <persons>!data.persons</persons>
45
- </arguments>
46
- </parameters>
47
- <code>
48
- <prepare/>
49
- <finalize output="result">data.airline = result.value('id')
50
- data.costs += result.value('costs').to_f
51
- status.update 1, 'Hotel'</finalize>
52
- <update output="result"/>
53
- <rescue output="result"/>
54
- </code>
55
- <annotations>
56
- <_timing>
57
- <_timing_weight/>
58
- <_timing_avg/>
59
- <explanations/>
60
- </_timing>
61
- <_shifting>
62
- <_shifting_type>Duration</_shifting_type>
63
- </_shifting>
64
- <_context_data_analysis>
65
- <probes/>
66
- <ips/>
67
- </_context_data_analysis>
68
- <report>
69
- <url/>
70
- </report>
71
- <_notes>
72
- <_notes_general/>
73
- </_notes>
74
- </annotations>
75
- <documentation>
76
- <input/>
77
- <output/>
78
- <implementation>
79
- <description/>
80
- </implementation>
81
- <code>
82
- <description/>
83
- </code>
84
- </documentation>
85
- </call>
86
- <parallel wait="-1" cancel="last">
87
- <loop mode="pre_test" condition="data.persons &gt; 0">
88
- <parallel_branch>
89
- <call id="a2" endpoint="bookHotel">
90
- <parameters>
91
- <label>Book Hotel</label>
92
- <method>:post</method>
93
- <arguments>
94
- <to>!data.to</to>
95
- </arguments>
96
- </parameters>
97
- <code>
98
- <prepare/>
99
- <finalize output="result">data.hotels &lt;&lt; result.value('id')
100
- data.costs += result.value('costs').to_f</finalize>
101
- <update output="result"/>
102
- <rescue output="result"/>
103
- </code>
104
- <annotations>
105
- <_timing>
106
- <_timing_weight/>
107
- <_timing_avg/>
108
- <explanations/>
109
- </_timing>
110
- <_shifting>
111
- <_shifting_type>Duration</_shifting_type>
112
- </_shifting>
113
- <_context_data_analysis>
114
- <probes/>
115
- <ips/>
116
- </_context_data_analysis>
117
- <report>
118
- <url/>
119
- </report>
120
- <_notes>
121
- <_notes_general/>
122
- </_notes>
123
- </annotations>
124
- <documentation>
125
- <input/>
126
- <output/>
127
- <implementation>
128
- <description/>
129
- </implementation>
130
- <code>
131
- <description/>
132
- </code>
133
- </documentation>
134
- </call>
135
- </parallel_branch>
136
- <manipulate id="a3">data.persons -= 1</manipulate>
137
- </loop>
138
- </parallel>
139
- <choose mode="exclusive">
140
- <alternative condition="data.costs &gt; 700">
141
- <_probability>
142
- <_probability_min/>
143
- <_probability_max/>
144
- <_probability_avg/>
145
- </_probability>
146
- <call id="a4" endpoint="approve">
147
- <parameters>
148
- <label>Approve Hotel</label>
149
- <method>:post</method>
150
- <arguments>
151
- <costs>!data.costs</costs>
152
- </arguments>
153
- </parameters>
154
- <annotations>
155
- <_timing>
156
- <_timing_weight/>
157
- <_timing_avg/>
158
- <explanations/>
159
- </_timing>
160
- <_shifting>
161
- <_shifting_type>Duration</_shifting_type>
162
- </_shifting>
163
- <_context_data_analysis>
164
- <probes/>
165
- <ips/>
166
- </_context_data_analysis>
167
- <report>
168
- <url/>
169
- </report>
170
- <_notes>
171
- <_notes_general/>
172
- </_notes>
173
- </annotations>
174
- <documentation>
175
- <input/>
176
- <output/>
177
- <implementation>
178
- <description/>
179
- </implementation>
180
- </documentation>
181
- </call>
182
- </alternative>
183
- <otherwise/>
184
- </choose>
185
- </description>
186
- </description>
187
- <transformation>
188
- <description type="copy"/>
189
- <dataelements type="none"/>
190
- <endpoints type="none"/>
191
- </transformation>
192
- </testset>
@@ -1,17 +0,0 @@
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 ;-)
@@ -1,5 +0,0 @@
1
- CDIR=$(dirname "$0")
2
- cd $CDIR
3
- echo "echo i compile hard" > run
4
- chmod 700 run
5
- cargo instance.rs
@@ -1,6 +0,0 @@
1
- :host: localhost
2
- :url: http://localhost:8298/
3
- :redis_path: /tmp/redis.sock
4
- :redis_db: 3
5
- :executionhandlers: ../../executionhandlers/
6
- :executionhandler: ruby