cpee 2.1.47 → 2.1.48

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/index.html +1 -1
  3. data/cockpit/js/instance.js +15 -11
  4. data/cockpit/js/wfadaptor.js +18 -13
  5. data/cockpit/templates/Subprocess.xml +35 -371
  6. data/cockpit/templates/Wait.xml +7 -400
  7. data/cockpit/themes/compact/rngs/call.rng +8 -0
  8. data/cockpit/themes/compact/rngs/callmanipulate.rng +8 -0
  9. data/cockpit/themes/compact/rngs/closed_loop_control.rng +2 -2
  10. data/cockpit/themes/compact/rngs/closed_loop_measuring.rng +3 -3
  11. data/cockpit/themes/compact/theme.js +15 -9
  12. data/cockpit/themes/control/rngs/call.rng +8 -0
  13. data/cockpit/themes/control/rngs/callmanipulate.rng +8 -0
  14. data/cockpit/themes/control/rngs/closed_loop_control.rng +2 -2
  15. data/cockpit/themes/control/rngs/closed_loop_measuring.rng +3 -3
  16. data/cockpit/themes/control/theme.js +17 -11
  17. data/cockpit/themes/default/rngs/call.rng +8 -0
  18. data/cockpit/themes/default/rngs/callmanipulate.rng +8 -0
  19. data/cockpit/themes/default/rngs/closed_loop_control.rng +2 -2
  20. data/cockpit/themes/default/rngs/closed_loop_measuring.rng +3 -3
  21. data/cockpit/themes/default/theme.js +15 -9
  22. data/cockpit/themes/extended/rngs/call.rng +8 -0
  23. data/cockpit/themes/extended/rngs/callmanipulate.rng +8 -0
  24. data/cockpit/themes/extended/rngs/closed_loop_control.rng +2 -2
  25. data/cockpit/themes/extended/rngs/closed_loop_measuring.rng +3 -3
  26. data/cockpit/themes/extended/theme.js +15 -9
  27. data/cockpit/themes/model/theme.js +15 -9
  28. data/cockpit/themes/packed/rngs/call.rng +8 -0
  29. data/cockpit/themes/packed/rngs/callmanipulate.rng +8 -0
  30. data/cockpit/themes/packed/rngs/closed_loop_control.rng +2 -2
  31. data/cockpit/themes/packed/rngs/closed_loop_measuring.rng +3 -3
  32. data/cockpit/themes/packed/theme.js +15 -9
  33. data/cockpit/themes/preset/rngs/call.rng +8 -0
  34. data/cockpit/themes/preset/rngs/callmanipulate.rng +8 -0
  35. data/cockpit/themes/preset/rngs/closed_loop_control.rng +2 -2
  36. data/cockpit/themes/preset/rngs/closed_loop_measuring.rng +3 -3
  37. data/cockpit/themes/preset/theme.js +15 -9
  38. data/cpee.gemspec +1 -1
  39. data/lib/cpee/implementation.rb +5 -5
  40. data/lib/cpee/persistence.rb +19 -16
  41. data/server/executionhandlers/ruby/connection.rb +21 -11
  42. data/server/executionhandlers/ruby/desc.xml +107 -0
  43. data/server/executionhandlers/ruby/dsl_to_dslx.xsl +61 -8
  44. data/server/resources/test.pdf +0 -0
  45. data/server/routing/end.pid +1 -1
  46. data/server/routing/forward-events-00.pid +1 -1
  47. data/server/routing/forward-votes.pid +1 -1
  48. data/server/routing/persist.pid +1 -1
  49. data/tools/cpee +40 -9
  50. metadata +5 -8
  51. data/cockpit/templates/Wait.xml.attrs +0 -16
  52. data/server/routing/forward-events-01.pid +0 -1
  53. data/server/routing/forward-events-02.pid +0 -1
  54. data/server/routing/forward-events-03.pid +0 -1
  55. data/server/routing/forward-events-04.pid +0 -1
@@ -0,0 +1,107 @@
1
+ <?xml version="1.0"?>
2
+ <description xmlns="http://cpee.org/ns/description/1.0">
3
+ <call id="a3" endpoint="">
4
+ <parameters>
5
+ <label>asdasd</label>
6
+ <method>:post</method>
7
+ <arguments/>
8
+ </parameters>
9
+ <annotations>
10
+ <_timing>
11
+ <_timing_weight/>
12
+ <_timing_avg/>
13
+ <explanations/>
14
+ </_timing>
15
+ <_shifting>
16
+ <_shifting_type>Duration</_shifting_type>
17
+ </_shifting>
18
+ <_context_data_analysis>
19
+ <probes/>
20
+ <ips/>
21
+ </_context_data_analysis>
22
+ <report>
23
+ <url/>
24
+ </report>
25
+ <_notes>
26
+ <_notes_general/>
27
+ </_notes>
28
+ </annotations>
29
+ <documentation>
30
+ <input/>
31
+ <output/>
32
+ <implementation>
33
+ <description/>
34
+ </implementation>
35
+ </documentation>
36
+ </call>
37
+ <closed_loop overrun="wait" execution="sequential">
38
+ <_probability>
39
+ <_probability_min/>
40
+ <_probability_max/>
41
+ <_probability_avg/>
42
+ </_probability>
43
+ <closed_loop_measuring ctime="200">
44
+ <_expected/>
45
+ </closed_loop_measuring>
46
+ <closed_loop_measuring ctime="200">
47
+ <_expected>
48
+ <value>test</value>
49
+ <value>bla</value>
50
+ </_expected>
51
+ </closed_loop_measuring>
52
+ <closed_loop_control ctime="200">
53
+ <_expected>
54
+ <change>
55
+ <type>:PID</type>
56
+ <value>grrr</value>
57
+ <upper/>
58
+ <lower/>
59
+ </change>
60
+ <change>
61
+ <type>:PID</type>
62
+ <value>duuur</value>
63
+ <upper/>
64
+ <lower/>
65
+ </change>
66
+ </_expected>
67
+ <closed_loop_control ctime="200">
68
+ <_expected/>
69
+ </closed_loop_control>
70
+ </closed_loop_control>
71
+ <closed_loop_cancel condition=""/>
72
+ </closed_loop>
73
+ <call id="a1" endpoint="">
74
+ <parameters>
75
+ <label/>
76
+ <method>:post</method>
77
+ <arguments/>
78
+ </parameters>
79
+ <annotations>
80
+ <_timing>
81
+ <_timing_weight/>
82
+ <_timing_avg/>
83
+ <explanations/>
84
+ </_timing>
85
+ <_shifting>
86
+ <_shifting_type>Duration</_shifting_type>
87
+ </_shifting>
88
+ <_context_data_analysis>
89
+ <probes/>
90
+ <ips/>
91
+ </_context_data_analysis>
92
+ <report>
93
+ <url/>
94
+ </report>
95
+ <_notes>
96
+ <_notes_general/>
97
+ </_notes>
98
+ </annotations>
99
+ <documentation>
100
+ <input/>
101
+ <output/>
102
+ <implementation>
103
+ <description/>
104
+ </implementation>
105
+ </documentation>
106
+ </call>
107
+ </description>
@@ -221,6 +221,67 @@
221
221
  <xsl:text>end</xsl:text>
222
222
  <xsl:call-template name="print-newline"/>
223
223
  </xsl:if>
224
+ <xsl:if test="name()='closed_loop'">
225
+ <xsl:call-template name="print-space">
226
+ <xsl:with-param name="i">1</xsl:with-param>
227
+ <xsl:with-param name="count">
228
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
229
+ </xsl:with-param>
230
+ </xsl:call-template>
231
+ <xsl:text>closed_loop</xsl:text>
232
+ <xsl:if test="@overrun">
233
+ <xsl:text> :overrun =&gt; </xsl:text>
234
+ <xsl:value-of select="@overrun"/>
235
+ <xsl:if test="@execution">
236
+ <xsl:text>, :execution =&gt; :</xsl:text>
237
+ <xsl:value-of select="@execution"/>
238
+ </xsl:if>
239
+ </xsl:if>
240
+ <xsl:text> do</xsl:text>
241
+ <xsl:call-template name="print-newline"/>
242
+ <xsl:apply-templates>
243
+ <xsl:with-param name="myspace">
244
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
245
+ </xsl:with-param>
246
+ </xsl:apply-templates>
247
+ <xsl:call-template name="print-space">
248
+ <xsl:with-param name="i">1</xsl:with-param>
249
+ <xsl:with-param name="count">
250
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
251
+ </xsl:with-param>
252
+ </xsl:call-template>
253
+ <xsl:text>end</xsl:text>
254
+ <xsl:call-template name="print-newline"/>
255
+ </xsl:if>
256
+ <xsl:if test="name()='closed_loop_measuring' or name()='closed_loop_control'">
257
+ <xsl:call-template name="print-space">
258
+ <xsl:with-param name="i">1</xsl:with-param>
259
+ <xsl:with-param name="count">
260
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
261
+ </xsl:with-param>
262
+ </xsl:call-template>
263
+ <xsl:text>closed_loop_slice :type =&gt; :</xsl:text>
264
+ <xsl:value-of select="substring(name(),13,10)"/>
265
+ <xsl:if test="@ctime">
266
+ <xsl:text>, :ctime =&gt; </xsl:text>
267
+ <xsl:value-of select="@ctime"/>
268
+ </xsl:if>
269
+ <xsl:text> do</xsl:text>
270
+ <xsl:call-template name="print-newline"/>
271
+ <xsl:apply-templates>
272
+ <xsl:with-param name="myspace">
273
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
274
+ </xsl:with-param>
275
+ </xsl:apply-templates>
276
+ <xsl:call-template name="print-space">
277
+ <xsl:with-param name="i">1</xsl:with-param>
278
+ <xsl:with-param name="count">
279
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
280
+ </xsl:with-param>
281
+ </xsl:call-template>
282
+ <xsl:text>end</xsl:text>
283
+ <xsl:call-template name="print-newline"/>
284
+ </xsl:if>
224
285
  <xsl:if test="name()='choose'">
225
286
  <xsl:call-template name="print-space">
226
287
  <xsl:with-param name="i">1</xsl:with-param>
@@ -229,14 +290,6 @@
229
290
  </xsl:with-param>
230
291
  </xsl:call-template>
231
292
  <xsl:text>choose </xsl:text>
232
- <xsl:choose>
233
- <xsl:when test="@mode='exclusive'">
234
- <xsl:text>:exclusive</xsl:text>
235
- </xsl:when>
236
- <xsl:otherwise>
237
- <xsl:text>:inclusive</xsl:text>
238
- </xsl:otherwise>
239
- </xsl:choose>
240
293
  <xsl:text> do</xsl:text>
241
294
  <xsl:call-template name="print-newline"/>
242
295
  <xsl:apply-templates>
Binary file
@@ -1 +1 @@
1
- 10497
1
+ 383721
@@ -1 +1 @@
1
- 10510
1
+ 383730
@@ -1 +1 @@
1
- 10503
1
+ 383727
@@ -1 +1 @@
1
- 10500
1
+ 383724
data/tools/cpee CHANGED
@@ -36,7 +36,9 @@ ARGV.options { |opt|
36
36
  opt.on("")
37
37
  opt.on(wrap("[archive DIR URL] save properties from all finished instances listed at URL into DIR. Examples:\ncpee archive ./archive http://localhost:9298/1/\ncpee archive ./archive http://localhost:9298/1-200\ncpee archive ./archive http://localhost:9298/*"))
38
38
  opt.on("")
39
- opt.on(wrap("[abandon URL] running processes are stopped; ready or stopped processes are abandoned. Examples:\ncpee abandon http://localhost:9298/1/\ncpee abandon http://localhost:9298/1-200\ncpee abandon http://localhost:9298/*"))
39
+ opt.on(wrap("[abandon! URL] running processes are stopped; ready or stopped processes are abandoned. Examples:\ncpee abandon! http://localhost:9298/1/\ncpee abandon http://localhost:9298/1-200\ncpee abandon http://localhost:9298/*"))
40
+ opt.on("")
41
+ opt.on(wrap("[abandon URL] ready or stopped processes are abandoned. Examples:\ncpee abandon http://localhost:9298/1/\ncpee abandon http://localhost:9298/1-200\ncpee abandon http://localhost:9298/*"))
40
42
  opt.on("")
41
43
  opt.on(wrap("[a_by_name URL STRING] ready or stopped processes are abandoned by regex on attributes/info. Examples:\ncpee abandon http://localhost:9298/1/ \"aa.a\"\ncpee abandon http://localhost:9298/1-200 aaa"))
42
44
  opt.on("")
@@ -55,7 +57,7 @@ ARGV.options { |opt|
55
57
  }
56
58
  if (ARGV.length == 0) ||
57
59
  (ARGV.length == 1 && !(%w(ui convert).include?(ARGV[0]))) ||
58
- (ARGV.length == 2 && !(%w(abandon start delete! cpui new).include?(ARGV[0]))) ||
60
+ (ARGV.length == 2 && !(%w(abandon abandon! start delete! cpui new).include?(ARGV[0]))) ||
59
61
  (ARGV.length == 3 && !(%w(archive a_by_name).include?(ARGV[0]))) ||
60
62
  (ARGV.length > 3)
61
63
  puts ARGV.options
@@ -176,7 +178,7 @@ elsif command == 'archive'
176
178
  exit
177
179
  end
178
180
  else
179
- names << File.basename(p2)
181
+ names << File.basename(p2).to_i
180
182
  end
181
183
  names.each do |name|
182
184
  print "Working on: " + name.to_s + "\r"
@@ -211,7 +213,6 @@ elsif command == 'archive'
211
213
  end
212
214
  end
213
215
  end
214
- puts
215
216
  elsif command == 'a_by_name'
216
217
  p1 = File.join(p1,'*') if p1 =~ /([a-zA-Z]|\/)$/
217
218
  base = File.dirname(p1)
@@ -231,7 +232,7 @@ elsif command == 'a_by_name'
231
232
  exit
232
233
  end
233
234
  else
234
- names << File.basename(p1)
235
+ names << File.basename(p1).to_i
235
236
  end
236
237
  names.each do |name|
237
238
  print "Working on: " + name.to_s + "\r"
@@ -249,8 +250,7 @@ elsif command == 'a_by_name'
249
250
  end
250
251
  end
251
252
  end
252
- puts
253
- elsif command == 'abandon'
253
+ elsif command == 'abandon!'
254
254
  p1 = File.join(p1,'*') if p1 =~ /([a-zA-Z]|\/)$/
255
255
  base = File.dirname(p1)
256
256
  names = []
@@ -269,7 +269,7 @@ elsif command == 'abandon'
269
269
  exit
270
270
  end
271
271
  else
272
- names << File.basename(p1)
272
+ names << File.basename(p1).to_i
273
273
  end
274
274
  names.each do |name|
275
275
  print "Working on: " + name.to_s + "\r"
@@ -284,7 +284,38 @@ elsif command == 'abandon'
284
284
  end
285
285
  end
286
286
  end
287
- puts
287
+ elsif command == 'abandon'
288
+ p1 = File.join(p1,'*') if p1 =~ /([a-zA-Z]|\/)$/
289
+ base = File.dirname(p1)
290
+ names = []
291
+ if File.basename(p1) =~ /(\d+)-(\d+)/
292
+ names = ($1.to_i..$2.to_i).to_a
293
+ elsif File.basename(p1) == '*'
294
+ res = Typhoeus.get(File.join(base,'/'), headers: { 'see-instances' => 'true' })
295
+ if res.success?
296
+ XML::Smart.string(res.response_body) do |doc|
297
+ doc.find('//instance/@id').each do |ele|
298
+ names << ele.value
299
+ end
300
+ end
301
+ names.reverse!
302
+ else
303
+ exit
304
+ end
305
+ else
306
+ names << File.basename(p1).to_i
307
+ end
308
+ names.each do |name|
309
+ print "Working on: " + name.to_s + "\r"
310
+ res1 = Typhoeus.get(File.join(base,name.to_s,'properties','state','/'))
311
+ if res1.success?
312
+ if res1.response_body == 'stopping'
313
+ Typhoeus.put(File.join(base,name.to_s,'properties','state','/'), headers: {'Content-Type' => 'application/x-www-form-urlencoded'}, body: "value=stopping")
314
+ elsif res1.response_body == 'ready' || res1.response_body == 'stopped'
315
+ Typhoeus.put(File.join(base,name.to_s,'properties','state','/'), headers: {'Content-Type' => 'application/x-www-form-urlencoded'}, body: "value=abandoned")
316
+ end
317
+ end
318
+ end
288
319
  elsif command == 'start'
289
320
  p1 = File.join(p1,'*') if p1 =~ /([a-zA-Z]|\/)$/
290
321
  base = File.dirname(p1)
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.47
4
+ version: 2.1.48
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: 2023-03-16 00:00:00.000000000 Z
13
+ date: 2023-08-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: riddl
@@ -252,7 +252,6 @@ files:
252
252
  - cockpit/templates/UR-VUE 2020 Solution View.xml
253
253
  - cockpit/templates/UR-VUE 2020.xml
254
254
  - cockpit/templates/Wait.xml
255
- - cockpit/templates/Wait.xml.attrs
256
255
  - cockpit/templates/Worklist.xml
257
256
  - cockpit/templates/instantiate.local/Take_Sub.xml
258
257
  - cockpit/templates/instantiate/Take_Perf.xml
@@ -704,6 +703,7 @@ files:
704
703
  - server/executionhandlers/ruby/backend/run
705
704
  - server/executionhandlers/ruby/connection.rb
706
705
  - server/executionhandlers/ruby/controller.rb
706
+ - server/executionhandlers/ruby/desc.xml
707
707
  - server/executionhandlers/ruby/dsl_to_dslx.xsl
708
708
  - server/executionhandlers/ruby/execution.rb
709
709
  - server/resources/empty_dslx.xml
@@ -712,15 +712,12 @@ files:
712
712
  - server/resources/properties.init
713
713
  - server/resources/states.dot
714
714
  - server/resources/states.xml
715
+ - server/resources/test.pdf
715
716
  - server/resources/topics.xml
716
717
  - server/resources/transformation.xml
717
718
  - server/routing/end.pid
718
719
  - server/routing/end.rb
719
720
  - server/routing/forward-events-00.pid
720
- - server/routing/forward-events-01.pid
721
- - server/routing/forward-events-02.pid
722
- - server/routing/forward-events-03.pid
723
- - server/routing/forward-events-04.pid
724
721
  - server/routing/forward-events.rb
725
722
  - server/routing/forward-votes.pid
726
723
  - server/routing/forward-votes.rb
@@ -752,7 +749,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
752
749
  - !ruby/object:Gem::Version
753
750
  version: '0'
754
751
  requirements: []
755
- rubygems_version: 3.4.6
752
+ rubygems_version: 3.4.10
756
753
  signing_key:
757
754
  specification_version: 4
758
755
  summary: Preliminary release of cloud process execution engine (cpee.org). If you
@@ -1,16 +0,0 @@
1
- {
2
- "info": "Wait",
3
- "creator": "Christine Ashcreek",
4
- "author": "Christine Ashcreek",
5
- "organisation1": "http://cpee.org/~demo/orgviz/organisation_informatik.xml",
6
- "customer": "pilotfabrik",
7
- "modeltype": "CPEE",
8
- "guarded": "none",
9
- "status": "development",
10
- "guarded_id": "",
11
- "model_uuid": "c09dad6b-547e-41a9-8f31-95c40e71c607",
12
- "model_version": "",
13
- "theme": "extended",
14
- "design_dir": "Templates.dir",
15
- "design_stage": "development"
16
- }
@@ -1 +0,0 @@
1
- 10513
@@ -1 +0,0 @@
1
- 10516
@@ -1 +0,0 @@
1
- 10519
@@ -1 +0,0 @@
1
- 10522