cpee 1.5.7 → 1.5.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3b9072d66749c0b959532cde9a01d95fdf94280d6e2068e68c012027e8f94fcb
4
- data.tar.gz: 71b87598486ac3dbb351bd2946090aed25b525f1603d8902988e0cd9ead4f61e
3
+ metadata.gz: 34b1f3d471e5c92ca9881d9d87b40e64a2174f124e1798b0f7a0dbd3a0735ead
4
+ data.tar.gz: aee9d4bd111c3358f93a0131fb832700909539c1bbbea3368c07468de1ae3369
5
5
  SHA512:
6
- metadata.gz: '082193a63a7e5d2506232ae27e367c94f8689631b7b09d832053495a3dc276b1b1ed3a9c637a9523b1879bcef79c59ec2851f14735893bde43bada52ee4a5604'
7
- data.tar.gz: 579a869a59bcd79ae5c9c5f75eaaa0e3eca6f8c4926b62f615e91ae413ede2b0e5652aa6e172413ba3e627e62854a0ee5f6a5d777cbb9f9b756005b2854b134a
6
+ metadata.gz: 4d4fb94c2c888fbd119ef01740df796346d1ab861ceedc9ba0a2164af557472fec49edd88f9b30f25484ab7997cafd5b54ae753e8d54061684881e338f2f49c1
7
+ data.tar.gz: bca86531f532f2f05c40d24d50fae035d4d569a798a9e418de6febb2364bc8255e1d9ced729ffbc226e18911f9d6224821529bc3ebe44fca6dc614cd7c9192cc
@@ -188,7 +188,7 @@
188
188
  <button name="state_stop" title='stop'>Stop</button>
189
189
  <span id="state_extended">
190
190
  <span> / </span>
191
- <button name="state_sim" title='simulate'>Sim</button>
191
+ <button name="state_replay" title='replay'>Replay</button>
192
192
  <span> / </span>
193
193
  <button name="state_abandon" title='abandon'>Abandon</button>
194
194
  </span>
@@ -78,7 +78,7 @@ function cockpit() { //{{{
78
78
  $("button[name=savesvg]").click(function(){ save_svg(); });
79
79
  $("button[name=state_start]").click(function(){ $(this).attr("disabled","disabled");start_instance(); });
80
80
  $("button[name=state_stop]").click(function(){ $(this).attr("disabled","disabled");stop_instance(); });
81
- $("button[name=state_simulate]").click(function(){ $(this).attr("disabled","disabled");sim_instance(); });
81
+ $("button[name=state_replay]").click(function(){ $(this).attr("disabled","disabled");replay_instance(); });
82
82
  $("button[name=state_abandon]").click(function(){ aba_instance(); });
83
83
  $("input[name=votecontinue]").click(check_subscription);
84
84
  $("input[name=testsetfile]").change(load_testsetfile_after);
@@ -624,13 +624,13 @@ function monitor_instance_state_change(notification) { //{{{
624
624
  $('#state_extended').show();
625
625
  $("button[name=state_start]").show();
626
626
  $("button[name=state_stop]").hide();
627
- $("button[name=state_sim]").show();
627
+ $("button[name=state_replay]").show();
628
628
  $("button[name=state_abandon]").show();
629
629
  } else if (notification == "running") {
630
630
  $('#state_extended').hide();
631
631
  $("button[name=state_start]").hide();
632
632
  $("button[name=state_stop]").show();
633
- $("button[name=state_sim]").hide();
633
+ $("button[name=state_replay]").hide();
634
634
  $("button[name=state_abandon]").hide();
635
635
  }
636
636
 
@@ -699,12 +699,12 @@ function start_instance() {// {{{
699
699
  error: report_failure
700
700
  });
701
701
  }// }}}
702
- function sim_instance() {// {{{
702
+ function replay_instance() {// {{{
703
703
  var url = $('body').attr('current-instance');
704
704
  $.ajax({
705
705
  type: "PUT",
706
706
  url: url + "/properties/values/state",
707
- data: ({value: "simulating"}),
707
+ data: ({value: "replaying"}),
708
708
  error: report_failure
709
709
  });
710
710
  }// }}}
@@ -83,11 +83,11 @@
83
83
  </button>
84
84
  <span id="state_extended">
85
85
  <span> / </span>
86
- <button name="state_sim" title='simulate'>
86
+ <button name="state_replay" title='replay'>
87
87
  <svg viewBox="0 -1.5 7 12" width="10" height="16">
88
88
  <path
89
89
  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"
90
- d="M 0,7.0741552 1.598154,6.8788136 q 0.144277,1.0115903 0.58266,1.4859901 0.443932,0.474402 1.193067,0.474402 0.793528,0 1.193066,-0.418589 0.405089,-0.4255654 0.405089,-0.990661 0,-0.362777 -0.172025,-0.6139303 Q 4.633538,6.5578953 4.211802,6.3695302 3.923247,6.2439536 2.896654,5.9230353 1.575957,5.5114228 1.04324,4.911445 0.294105,4.0672905 0.294105,2.8533821 q 0,-0.7813662 0.349596,-1.4580852 Q 0.998846,0.7116014 1.659195,0.3558006 2.325092,0 3.262898,0 4.794462,0 5.565794,0.8441546 6.342674,1.6883092 6.381518,3.0975591 L 4.73897,3.1882531 Q 4.633538,2.3999106 4.283941,2.0580629 3.939894,1.7092386 3.246251,1.7092386 q -0.71584,0 -1.120927,0.3697537 -0.260811,0.2372006 -0.260811,0.6348602 0,0.3627771 0.244164,0.6209071 0.31075,0.3278947 1.509366,0.6836954 1.198616,0.3558008 1.770178,0.7395073 0.577111,0.3767302 0.898962,1.0394962 0.327399,0.6557896 0.327399,1.6255215 0,0.8790367 -0.388439,1.6464517 -0.388442,0.767412 -1.098732,1.1441413 -0.710291,0.369755 -1.770178,0.369755 -1.542663,0 -2.369485,-0.8929903 Q 0.160924,8.7903717 0,7.0741552 Z"/>
90
+ 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"
91
91
  </svg>
92
92
  </button>
93
93
  <span> / </span>
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "1.5.7"
3
+ s.version = "1.5.8"
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). If you just need workflow execution, without a rest/xmpp service exposing it, then use WEEL"
@@ -167,6 +167,11 @@ module CPEE
167
167
  @thread = @instance.sim
168
168
  end # }}}
169
169
 
170
+ def replay # {{{
171
+ @thread.join if !@thread.nil? && @thread.alive?
172
+ @thread = @instance.replay
173
+ end # }}}
174
+
170
175
  def start # {{{
171
176
  @thread.join if !@thread.nil? && @thread.alive?
172
177
  unless @positions.empty?
@@ -244,7 +249,7 @@ module CPEE
244
249
  def serialize_state! # {{{
245
250
  @properties.activate_schema(:finished) if @instance.state == :finished || @instance.state == :abandoned
246
251
  @properties.activate_schema(:inactive) if @instance.state == :stopped || @instance.state == :ready
247
- @properties.activate_schema(:active) if @instance.state == :running || @instance.state == :simulating
252
+ @properties.activate_schema(:active) if @instance.state == :running || @instance.state == :simulating || @instance.state == :replaying
248
253
  if [:finished, :stopped, :ready, :abandoned].include?(@instance.state)
249
254
  state_change! @instance.state
250
255
  end
@@ -376,6 +381,8 @@ module CPEE
376
381
  start
377
382
  when 'simulating'
378
383
  sim
384
+ when 'replaying'
385
+ replay
379
386
  when 'ready'
380
387
  @instance.state_signal
381
388
  when 'abandoned'
@@ -46,8 +46,12 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
46
46
  @label = ''
47
47
  end # }}}
48
48
 
49
- def prepare(readonly, endpoints, parameters) #{{{
50
- @handler_endpoint = endpoints.is_a?(Array) ? endpoints.map{ |ep| readonly.endpoints[ep] }.compact : readonly.endpoints[endpoints]
49
+ def prepare(readonly, endpoints, parameters, replay=false) #{{{
50
+ if replay
51
+ @handler_endpoint = @controller.attributes[:replayer]
52
+ else
53
+ @handler_endpoint = endpoints.is_a?(Array) ? endpoints.map{ |ep| readonly.endpoints[ep] }.compact : readonly.endpoints[endpoints]
54
+ end
51
55
  params = parameters.dup
52
56
  params[:arguments] = params[:arguments].dup if params[:arguments]
53
57
  params[:arguments]&.map! do |ele|
@@ -60,73 +64,78 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
60
64
  params
61
65
  end #}}}
62
66
 
63
- def activity_handle(passthrough, parameters) # {{{
64
- raise "Wrong endpoint" if @handler_endpoint.nil? || @handler_endpoint.empty?
65
- @label = parameters[:label]
66
- @sensors = parameters[:sensors]
67
- @aggregators = parameters[:aggregators]
68
- @costs = parameters[:costs]
69
- @controller.notify("activity/calling", :instance => @controller.instance, :instance_uuid => @controller.uuid, :label => @label, :instance_name => @controller.info, :activity => @handler_position, :passthrough => passthrough, :endpoint => @handler_endpoint, :parameters => parameters, :timestamp => Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"), :attributes => @controller.attributes_translated)
70
- if passthrough.to_s.empty?
71
- params = []
72
- callback = Digest::MD5.hexdigest(Kernel::rand().to_s)
73
- (parameters[:arguments] || []).each do |s|
74
- if s.respond_to?(:mimetype)
75
- params << Riddl::Parameter::Complex.new(s.name.to_s,v.mimetype,v.value)
67
+ def proto_curl(parameters) #{{{
68
+ params = []
69
+ callback = Digest::MD5.hexdigest(Kernel::rand().to_s)
70
+ (parameters[:arguments] || []).each do |s|
71
+ if s.respond_to?(:mimetype)
72
+ params << Riddl::Parameter::Complex.new(s.name.to_s,v.mimetype,v.value)
73
+ else
74
+ if s.name.to_s =~ /^__Q_/
75
+ params << Riddl::Parameter::Simple.new(s.name.to_s.sub(/^__Q_/,''),CPEE::ValueHelper::generate(s.value),:query)
76
+ elsif s.name.to_s =~ /^__B_/
77
+ params << Riddl::Parameter::Simple.new(s.name.to_s.sub(/^__B_/,''),CPEE::ValueHelper::generate(s.value),:body)
78
+ elsif s.name.to_s =~ /^__H_/
79
+ params << Riddl::Header.new(s.name.to_s.sub(/^__H_/,''),CPEE::ValueHelper::generate(s.value))
80
+ elsif s.name.to_s =~ /^__C_/
81
+ params << Riddl::Parameter::Complex.new(s.name.to_s.sub(/^__C_/,''),*CPEE::ValueHelper::generate(s.value).split(';',2))
76
82
  else
77
- if s.name.to_s =~ /^__Q_/
78
- params << Riddl::Parameter::Simple.new(s.name.to_s.sub(/^__Q_/,''),CPEE::ValueHelper::generate(s.value),:query)
79
- elsif s.name.to_s =~ /^__B_/
80
- params << Riddl::Parameter::Simple.new(s.name.to_s.sub(/^__B_/,''),CPEE::ValueHelper::generate(s.value),:body)
81
- elsif s.name.to_s =~ /^__H_/
82
- params << Riddl::Header.new(s.name.to_s.sub(/^__H_/,''),CPEE::ValueHelper::generate(s.value))
83
- elsif s.name.to_s =~ /^__C_/
84
- params << Riddl::Parameter::Complex.new(s.name.to_s.sub(/^__C_/,''),*CPEE::ValueHelper::generate(s.value).split(';',2))
85
- else
86
- params << Riddl::Parameter::Simple.new(s.name.to_s,CPEE::ValueHelper::generate(s.value))
87
- end
83
+ params << Riddl::Parameter::Simple.new(s.name.to_s,CPEE::ValueHelper::generate(s.value))
88
84
  end
89
85
  end
86
+ end
90
87
 
91
- params << Riddl::Header.new("CPEE-BASE",@controller.base_url)
92
- params << Riddl::Header.new("CPEE-INSTANCE",@controller.instance)
93
- params << Riddl::Header.new("CPEE-INSTANCE-URL",@controller.instance_url)
94
- params << Riddl::Header.new("CPEE-INSTANCE-UUID",@controller.uuid)
95
- params << Riddl::Header.new("CPEE-CALLBACK",@controller.instance_url + '/callbacks/' + callback)
96
- params << Riddl::Header.new("CPEE-CALLBACK-ID",callback)
97
- params << Riddl::Header.new("CPEE-ACTIVITY",@handler_position)
98
- params << Riddl::Header.new("CPEE-LABEL",parameters[:label]||'')
99
- @controller.attributes.each do |key,value|
100
- params << Riddl::Header.new("CPEE-ATTR-#{key.to_s.gsub(/_/,'-')}",value)
101
- end
88
+ params << Riddl::Header.new("CPEE-BASE",@controller.base_url)
89
+ params << Riddl::Header.new("CPEE-INSTANCE",@controller.instance)
90
+ params << Riddl::Header.new("CPEE-INSTANCE-URL",@controller.instance_url)
91
+ params << Riddl::Header.new("CPEE-INSTANCE-UUID",@controller.uuid)
92
+ params << Riddl::Header.new("CPEE-CALLBACK",@controller.instance_url + '/callbacks/' + callback)
93
+ params << Riddl::Header.new("CPEE-CALLBACK-ID",callback)
94
+ params << Riddl::Header.new("CPEE-ACTIVITY",@handler_position)
95
+ params << Riddl::Header.new("CPEE-LABEL",@label||'')
96
+ params << Riddl::Header.new("CPEE-REPLAY",@controller.attributes['replayer_args'])
97
+ @controller.attributes.each do |key,value|
98
+ params << Riddl::Header.new("CPEE-ATTR-#{key.to_s.gsub(/_/,'-')}",value)
99
+ end
102
100
 
103
- tendpoint = @handler_endpoint.sub(/^http(s)?-(get|put|post|delete):/,'http\\1:')
104
- type = $2 || parameters[:method] || 'post'
101
+ tendpoint = @handler_endpoint.sub(/^http(s)?-(get|put|post|delete):/,'http\\1:')
102
+ type = $2 || parameters[:method] || 'post'
105
103
 
106
- client = Riddl::Client.new(tendpoint)
104
+ client = Riddl::Client.new(tendpoint)
107
105
 
108
- @controller.callbacks[callback] = CPEE::Callback.new("callback activity: #{@handler_position}",self,:callback,nil,nil,:http)
109
- @handler_passthrough = callback
106
+ @controller.callbacks[callback] = CPEE::Callback.new("callback activity: #{@handler_position}",self,:callback,nil,nil,:http)
107
+ @handler_passthrough = callback
110
108
 
111
- status, result, headers = client.request type => params
112
- if status < 200 || status >= 300
113
- headers['CPEE_SALVAGE'] = true
114
- c = result[0]&.value
115
- c = c.read if c.respond_to? :read
116
- callback([ Riddl::Parameter::Complex.new('error','application/json',StringIO.new(JSON::generate({ 'status' => status, 'error' => c }))) ], headers)
109
+ status, result, headers = client.request type => params
110
+ if status < 200 || status >= 300
111
+ headers['CPEE_SALVAGE'] = true
112
+ c = result[0]&.value
113
+ c = c.read if c.respond_to? :read
114
+ callback([ Riddl::Parameter::Complex.new('error','application/json',StringIO.new(JSON::generate({ 'status' => status, 'error' => c }))) ], headers)
115
+ else
116
+ if headers['CPEE_INSTANTIATION']
117
+ @controller.notify("task/instantiation", :instance => @controller.instance, :label => @label, :instance_name => @controller.info, :instance_uuid => @controller.uuid, :activity => @handler_position, :endpoint => @handler_endpoint, :received => CPEE::ValueHelper.parse(headers['CPEE_INSTANTIATION']), :timestamp => Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"), :attributes => @controller.attributes_translated)
118
+ end
119
+ if headers['CPEE_CALLBACK'] && headers['CPEE_CALLBACK'] == 'true' && result.any?
120
+ headers['CPEE_UPDATE'] = true
121
+ callback result, headers
122
+ elsif headers['CPEE_CALLBACK'] && headers['CPEE_CALLBACK'] == 'true' && result.empty?
123
+ # do nothing, later on things will happend
117
124
  else
118
- if headers['CPEE_INSTANTIATION']
119
- @controller.notify("task/instantiation", :instance => @controller.instance, :label => @label, :instance_name => @controller.info, :instance_uuid => @controller.uuid, :activity => @handler_position, :endpoint => @handler_endpoint, :received => CPEE::ValueHelper.parse(headers['CPEE_INSTANTIATION']), :timestamp => Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"), :attributes => @controller.attributes_translated)
120
- end
121
- if headers['CPEE_CALLBACK'] && headers['CPEE_CALLBACK'] == 'true' && result.any?
122
- headers['CPEE_UPDATE'] = true
123
- callback result, headers
124
- elsif headers['CPEE_CALLBACK'] && headers['CPEE_CALLBACK'] == 'true' && result.empty?
125
- # do nothing, later on things will happend
126
- else
127
- callback result, headers
128
- end
125
+ callback result, headers
129
126
  end
127
+ end
128
+ end #}}}
129
+
130
+ def activity_handle(passthrough, parameters) # {{{
131
+ raise "Wrong endpoint" if @handler_endpoint.nil? || @handler_endpoint.empty?
132
+ @label = parameters[:label]
133
+ @sensors = parameters[:sensors]
134
+ @aggregators = parameters[:aggregators]
135
+ @costs = parameters[:costs]
136
+ @controller.notify("activity/calling", :instance => @controller.instance, :instance_uuid => @controller.uuid, :label => @label, :instance_name => @controller.info, :activity => @handler_position, :passthrough => passthrough, :endpoint => @handler_endpoint, :parameters => parameters, :timestamp => Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"), :attributes => @controller.attributes_translated)
137
+ if passthrough.to_s.empty?
138
+ proto_curl parameters
130
139
  else
131
140
  @controller.callbacks[passthrough] = CPEE::Callback.new("callback activity: #{@handler_position}",self,:callback,nil,nil,:http)
132
141
  @handler_passthrough = passthrough
@@ -71,6 +71,7 @@
71
71
  <running putable="true"/>
72
72
  <ready putable="true"/>
73
73
  <simulating putable="true"/>
74
+ <replaying putable="true"/>
74
75
  <abandoned putable="true"/>
75
76
  </ready>
76
77
  <running>
@@ -82,6 +83,11 @@
82
83
  <ready putable="false"/>
83
84
  <stopped putable="false"/>
84
85
  </simulating>
86
+ <replaying>
87
+ <stopping putable="true"/>
88
+ <finishing putable="false"/>
89
+ <finished putable="false"/>
90
+ </replaying>
85
91
  <stopping>
86
92
  <stopped putable="false"/>
87
93
  </stopping>
@@ -89,6 +95,7 @@
89
95
  <abandoned putable="true"/>
90
96
  <stopped putable="true"/>
91
97
  <running putable="true"/>
98
+ <replaying putable="true"/>
92
99
  <simulating putable="true"/>
93
100
  </stopped>
94
101
  <abandoned/>
@@ -71,6 +71,7 @@
71
71
  <ready putable="true"/>
72
72
  <running putable="true"/>
73
73
  <simulating putable="true"/>
74
+ <replaying putable="true"/>
74
75
  <abandoned putable="true"/>
75
76
  </ready>
76
77
  <running>
@@ -82,6 +83,11 @@
82
83
  <ready putable="false"/>
83
84
  <stopped putable="false"/>
84
85
  </simulating>
86
+ <replaying>
87
+ <stopping putable="true"/>
88
+ <finishing putable="false"/>
89
+ <finished putable="false"/>
90
+ </replaying>
85
91
  <stopping>
86
92
  <stopped putable="false"/>
87
93
  </stopping>
@@ -90,6 +96,7 @@
90
96
  <stopped putable="true"/>
91
97
  <running putable="true"/>
92
98
  <simulating putable="true"/>
99
+ <replaying putable="true"/>
93
100
  </stopped>
94
101
  <abandoned/>
95
102
  <finished/>
@@ -71,6 +71,7 @@
71
71
  <running putable="true"/>
72
72
  <ready putable="true"/>
73
73
  <simulating putable="true"/>
74
+ <replaying putable="true"/>
74
75
  <abandoned putable="true"/>
75
76
  </ready>
76
77
  <running>
@@ -82,14 +83,17 @@
82
83
  <ready putable="false"/>
83
84
  <stopped putable="false"/>
84
85
  </simulating>
85
- <stopping>
86
- <stopped putable="false"/>
87
- </stopping>
86
+ <replaying>
87
+ <stopping putable="true"/>
88
+ <finishing putable="false"/>
89
+ <finished putable="false"/>
90
+ </replaying>
88
91
  <stopped>
89
92
  <abandoned putable="true"/>
90
93
  <stopped putable="true"/>
91
94
  <running putable="true"/>
92
95
  <simulating putable="true"/>
96
+ <replaying putable="true"/>
93
97
  </stopped>
94
98
  <abandoned/>
95
99
  <finished/>
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: 1.5.7
4
+ version: 1.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: tools
13
13
  cert_chain: []
14
- date: 2019-10-15 00:00:00.000000000 Z
14
+ date: 2019-10-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: riddl