cpee 2.1.71 → 2.1.74

Sign up to get free protection for your applications and to get access to all the features.
@@ -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