cpee 1.5.10 → 1.5.11
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/cpee.gemspec +1 -1
- data/lib/cpee/instantiation.rb +51 -9
- data/lib/instantiation.xml +41 -1
- data/server/dev.pid +1 -0
- data/tools/cpee +47 -9
- metadata +3 -3
- data/server/server.pid +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c028a21ea683c2b4021f66cb0707a5a36a65dd507998ded71e4c3edd061d4a0
|
4
|
+
data.tar.gz: dfafd97c3ecbe4f40b1cd1233b91ab54fd90dbc3fca3e70c3456f6cdcf234e79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18e675ccef009528bad6d7852ff5e3d46549bd30bd632b3caa685c3ce353f357a961d54caf6355312d8e1b2eba3ece587539ede3105853b1ea9bab571610588a
|
7
|
+
data.tar.gz: 41be183fb35677883e3de3a3b7194822bb4a811643640749710b54056fdf202680128fc61be8969a68ea0fc5dd952d949bfd864f344c4f45e2575c4f4f993715
|
data/cpee.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee"
|
3
|
-
s.version = "1.5.
|
3
|
+
s.version = "1.5.11"
|
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"
|
data/lib/cpee/instantiation.rb
CHANGED
@@ -146,7 +146,7 @@ module CPEE
|
|
146
146
|
end #}}}
|
147
147
|
end #}}}
|
148
148
|
|
149
|
-
class
|
149
|
+
class InstantiateGit < Riddl::Implementation #{{{
|
150
150
|
include Helpers
|
151
151
|
|
152
152
|
def response
|
@@ -154,28 +154,66 @@ module CPEE
|
|
154
154
|
selfurl = @a[1]
|
155
155
|
cblist = @a[2]
|
156
156
|
|
157
|
-
status, res = Riddl::Client.new(@p[2].value.gsub(/ /,'%20')).get
|
157
|
+
status, res = Riddl::Client.new(File.join(@p[1].value,'raw',@p[2].value,@p[3].value).gsub(/ /,'%20')).get
|
158
158
|
tdoc = if status >= 200 && status < 300
|
159
159
|
res[0].value.read
|
160
160
|
else
|
161
161
|
(@status = 500) && return
|
162
162
|
end
|
163
163
|
|
164
|
-
if (instance, uuid = load_testset(tdoc,cpee
|
164
|
+
if (instance, uuid = load_testset(tdoc,cpee)).first == -1
|
165
165
|
@status = 500
|
166
166
|
else
|
167
|
-
handle_data cpee, instance, @p[
|
168
|
-
handle_endpoints cpee, instance, @p[3]&.value if @p[3]&.name == 'endpoints'
|
167
|
+
handle_data cpee, instance, @p[4]&.value if @p[4]&.name == 'init'
|
169
168
|
handle_endpoints cpee, instance, @p[4]&.value if @p[4]&.name == 'endpoints'
|
169
|
+
handle_endpoints cpee, instance, @p[5]&.value if @p[5]&.name == 'endpoints'
|
170
|
+
|
171
|
+
handle_waiting cpee, instance, uuid, @p[0].value, selfurl, cblist
|
172
|
+
handle_starting cpee, instance, @p[0].value
|
173
|
+
|
174
|
+
send = {
|
175
|
+
'CPEE-INSTANCE' => instance,
|
176
|
+
'CPEE-INSTANCE-URL' => File.join(cpee,instance),
|
177
|
+
'CPEE-INSTANCE-UUID' => uuid,
|
178
|
+
'CPEE-BEHAVIOR' => @p[0].value
|
179
|
+
}
|
180
|
+
@headers << Riddl::Header.new('CPEE-INSTANTIATION',JSON::generate(send))
|
181
|
+
Riddl::Parameter::Complex.new('instance','application/json',JSON::generate(send))
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end #}}}
|
185
|
+
|
186
|
+
class InstantiateUrl < Riddl::Implementation #{{{
|
187
|
+
include Helpers
|
188
|
+
|
189
|
+
def response
|
190
|
+
cpee = @h['X_CPEE'] || @a[0]
|
191
|
+
selfurl = @a[1]
|
192
|
+
cblist = @a[2]
|
193
|
+
name = @a[3] ? @p.pop.value : nil
|
194
|
+
|
195
|
+
status, res = Riddl::Client.new(@p[1].value.gsub(/ /,'%20')).get
|
196
|
+
tdoc = if status >= 200 && status < 300
|
197
|
+
res[0].value.read
|
198
|
+
else
|
199
|
+
(@status = 500) && return
|
200
|
+
end
|
170
201
|
|
171
|
-
|
172
|
-
|
202
|
+
if (instance, uuid = load_testset(tdoc,cpee,name)).first == -1
|
203
|
+
@status = 500
|
204
|
+
else
|
205
|
+
handle_data cpee, instance, @p[2]&.value if @p[2]&.name == 'init'
|
206
|
+
handle_endpoints cpee, instance, @p[2]&.value if @p[2]&.name == 'endpoints'
|
207
|
+
handle_endpoints cpee, instance, @p[3]&.value if @p[3]&.name == 'endpoints'
|
208
|
+
|
209
|
+
handle_waiting cpee, instance, uuid, @p[0].value, selfurl, cblist
|
210
|
+
handle_starting cpee, instance, @p[0].value
|
173
211
|
|
174
212
|
send = {
|
175
213
|
'CPEE-INSTANCE' => instance,
|
176
214
|
'CPEE-INSTANCE-URL' => File.join(cpee,instance),
|
177
215
|
'CPEE-INSTANCE-UUID' => uuid,
|
178
|
-
'CPEE-BEHAVIOR' => @p[
|
216
|
+
'CPEE-BEHAVIOR' => @p[0].value
|
179
217
|
}
|
180
218
|
@headers << Riddl::Header.new('CPEE-INSTANTIATION',JSON::generate(send))
|
181
219
|
Riddl::Parameter::Complex.new('instance','application/json',JSON::generate(send))
|
@@ -291,7 +329,11 @@ module CPEE
|
|
291
329
|
run InstantiateXML, opts[:cpee], false if post 'xml'
|
292
330
|
end
|
293
331
|
on resource 'url' do
|
294
|
-
run InstantiateUrl, opts[:cpee], opts[:self], opts[:cblist] if post 'url'
|
332
|
+
run InstantiateUrl, opts[:cpee], opts[:self], opts[:cblist], false if post 'url'
|
333
|
+
run InstantiateUrl, opts[:cpee], opts[:self], opts[:cblist], true if post 'url_info'
|
334
|
+
end
|
335
|
+
on resource 'git' do
|
336
|
+
run InstantiateGit, opts[:cpee], opts[:self], opts[:cblist] if post 'git'
|
295
337
|
end
|
296
338
|
on resource 'instance' do
|
297
339
|
run HandleInstance, opts[:cpee] if post 'instance'
|
data/lib/instantiation.xml
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
<parameter name="init" type="string"/>
|
17
17
|
</optional>
|
18
18
|
</message>
|
19
|
-
<message name="
|
19
|
+
<message name="url_info">
|
20
20
|
<parameter name="info" type="string"/>
|
21
21
|
<parameter name="behavior" type="string">
|
22
22
|
<choice>
|
@@ -34,6 +34,42 @@
|
|
34
34
|
<parameter name="endpoints" type="string"/>
|
35
35
|
</optional>
|
36
36
|
</message>
|
37
|
+
<message name="url">
|
38
|
+
<parameter name="behavior" type="string">
|
39
|
+
<choice>
|
40
|
+
<value>fork_ready</value>
|
41
|
+
<value>fork_running</value>
|
42
|
+
<value>wait_ready</value>
|
43
|
+
<value>wait_running</value>
|
44
|
+
</choice>
|
45
|
+
</parameter>
|
46
|
+
<parameter name="url" type="string"/>
|
47
|
+
<optional>
|
48
|
+
<parameter name="init" type="string"/>
|
49
|
+
</optional>
|
50
|
+
<optional>
|
51
|
+
<parameter name="endpoints" type="string"/>
|
52
|
+
</optional>
|
53
|
+
</message>
|
54
|
+
<message name="git">
|
55
|
+
<parameter name="behavior" type="string">
|
56
|
+
<choice>
|
57
|
+
<value>fork_ready</value>
|
58
|
+
<value>fork_running</value>
|
59
|
+
<value>wait_ready</value>
|
60
|
+
<value>wait_running</value>
|
61
|
+
</choice>
|
62
|
+
</parameter>
|
63
|
+
<parameter name="repo" type="string"/>
|
64
|
+
<parameter name="branch" type="string"/>
|
65
|
+
<parameter name="path" type="string"/>
|
66
|
+
<optional>
|
67
|
+
<parameter name="init" type="string"/>
|
68
|
+
</optional>
|
69
|
+
<optional>
|
70
|
+
<parameter name="endpoints" type="string"/>
|
71
|
+
</optional>
|
72
|
+
</message>
|
37
73
|
<message name="instance">
|
38
74
|
<parameter name="behavior" type="string">
|
39
75
|
<choice>
|
@@ -65,6 +101,10 @@
|
|
65
101
|
</resource>
|
66
102
|
<resource relative="url">
|
67
103
|
<post in="url" out="result"/>
|
104
|
+
<post in="url_info" out="result"/>
|
105
|
+
</resource>
|
106
|
+
<resource relative="git">
|
107
|
+
<post in="git" out="result"/>
|
68
108
|
</resource>
|
69
109
|
<resource relative="callback">
|
70
110
|
<resource>
|
data/server/dev.pid
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
7174
|
data/tools/cpee
CHANGED
@@ -33,11 +33,11 @@ ARGV.options { |opt|
|
|
33
33
|
opt.on("Options:")
|
34
34
|
opt.on("--help", "-h", "This text") { puts opt; exit }
|
35
35
|
opt.on("")
|
36
|
-
opt.on(wrap("[archive DIR URL] save properties from all finished instances listed at URL into DIR. Examples:\ncpee archive ./archive http://localhost:9298/\ncpee archive ./archive http://localhost:9298/1
|
36
|
+
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/*"))
|
37
37
|
opt.on("")
|
38
|
-
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"))
|
38
|
+
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
39
|
opt.on("")
|
40
|
-
opt.on(wrap("[start URL] stopped processes are started; all others are not touched. Examples:\ncpee start http://localhost:9298/1-200"))
|
40
|
+
opt.on(wrap("[start URL] stopped processes are started; all others are not touched. Examples:\ncpee start http://localhost:9298/1\ncpee start http://localhost:9298/1-200\ncpee start http://localhost:9298/*"))
|
41
41
|
opt.on("")
|
42
42
|
opt.on(wrap("[delete! URL] DANGER ZONE. Vanishes forever. Not in archive. Examples:\ncpee delete! http://localhost:9298/1/"))
|
43
43
|
opt.on("")
|
@@ -107,10 +107,23 @@ elsif command == 'inst'
|
|
107
107
|
puts 'Directory already exists.'
|
108
108
|
end
|
109
109
|
elsif command == 'archive'
|
110
|
+
p2 = File.join(p2,'*') if p2 =~ /([a-zA-Z]|\/)$/
|
110
111
|
base = File.dirname(p2)
|
111
112
|
names = []
|
112
113
|
if File.basename(p2) =~ /(\d+)-(\d+)/
|
113
114
|
names = ($1.to_i..$2.to_i).to_a
|
115
|
+
elsif File.basename(p2) == '*'
|
116
|
+
res = Typhoeus.get(File.join(base))
|
117
|
+
if res.success?
|
118
|
+
XML::Smart.string(res.response_body) do |doc|
|
119
|
+
doc.find('//instance/@id').each do |ele|
|
120
|
+
names << ele.value
|
121
|
+
end
|
122
|
+
end
|
123
|
+
names.reverse!
|
124
|
+
else
|
125
|
+
exit
|
126
|
+
end
|
114
127
|
else
|
115
128
|
names << File.basename(p2)
|
116
129
|
end
|
@@ -147,10 +160,23 @@ elsif command == 'archive'
|
|
147
160
|
end
|
148
161
|
end
|
149
162
|
elsif command == 'abandon'
|
163
|
+
p1 = File.join(p1,'*') if p1 =~ /([a-zA-Z]|\/)$/
|
150
164
|
base = File.dirname(p1)
|
151
165
|
names = []
|
152
166
|
if File.basename(p1) =~ /(\d+)-(\d+)/
|
153
167
|
names = ($1.to_i..$2.to_i).to_a
|
168
|
+
elsif File.basename(p1) == '*'
|
169
|
+
res = Typhoeus.get(File.join(base))
|
170
|
+
if res.success?
|
171
|
+
XML::Smart.string(res.response_body) do |doc|
|
172
|
+
doc.find('//instance/@id').each do |ele|
|
173
|
+
names << ele.value
|
174
|
+
end
|
175
|
+
end
|
176
|
+
names.reverse!
|
177
|
+
else
|
178
|
+
exit
|
179
|
+
end
|
154
180
|
else
|
155
181
|
names << File.basename(p1)
|
156
182
|
end
|
@@ -160,18 +186,27 @@ elsif command == 'abandon'
|
|
160
186
|
case res.response_body
|
161
187
|
when "ready", "stopped" then
|
162
188
|
Typhoeus.put(File.join(base,name.to_s,'properties','values','state','/'), headers: {'Content-Type' => 'application/x-www-form-urlencoded'}, body: "value=abandoned")
|
163
|
-
when "running" then
|
164
|
-
Typhoeus.put(File.join(base,name.to_s,'properties','values','state','/'), headers: {'Content-Type' => 'application/x-www-form-urlencoded'}, body: "value=stopped")
|
165
|
-
sleep 1
|
166
|
-
Typhoeus.put(File.join(base,name.to_s,'properties','values','state','/'), headers: {'Content-Type' => 'application/x-www-form-urlencoded'}, body: "value=abandoned")
|
167
189
|
end
|
168
190
|
end
|
169
191
|
end
|
170
192
|
elsif command == 'start'
|
193
|
+
p1 = File.join(p1,'*') if p1 =~ /([a-zA-Z]|\/)$/
|
171
194
|
base = File.dirname(p1)
|
172
195
|
names = []
|
173
196
|
if File.basename(p1) =~ /(\d+)-(\d+)/
|
174
197
|
names = ($1.to_i..$2.to_i).to_a
|
198
|
+
elsif File.basename(p1) == '*'
|
199
|
+
res = Typhoeus.get(File.join(base))
|
200
|
+
if res.success?
|
201
|
+
XML::Smart.string(res.response_body) do |doc|
|
202
|
+
doc.find('//instance/@id').each do |ele|
|
203
|
+
names << ele.value
|
204
|
+
end
|
205
|
+
end
|
206
|
+
names.reverse!
|
207
|
+
else
|
208
|
+
exit
|
209
|
+
end
|
175
210
|
else
|
176
211
|
names << File.basename(p1)
|
177
212
|
end
|
@@ -180,13 +215,16 @@ elsif command == 'start'
|
|
180
215
|
if res.success?
|
181
216
|
case res.response_body
|
182
217
|
when "stopped" then
|
183
|
-
Typhoeus.
|
218
|
+
keep_alive = Typhoeus.get(File.join(base,name.to_s,'properties','values','attributes','keep_alive','/'))
|
219
|
+
if keep_alive.success?
|
220
|
+
Typhoeus.put(File.join(base,name.to_s,'properties','values','state','/'), headers: {'Content-Type' => 'application/x-www-form-urlencoded'}, body: "value=running")
|
221
|
+
end
|
184
222
|
end
|
185
223
|
end
|
186
224
|
end
|
187
225
|
elsif command == 'delete!'
|
188
226
|
Typhoeus.delete(File.join(p1,'/'))
|
189
|
-
|
227
|
+
elsif command == 'new'
|
190
228
|
if !File.exists?(p1)
|
191
229
|
FileUtils.cp_r("#{curpath}/server/",p1)
|
192
230
|
FileUtils.mkdir("#{p1}/instances") rescue nil
|
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.
|
4
|
+
version: 1.5.11
|
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-
|
14
|
+
date: 2019-11-07 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: riddl
|
@@ -287,6 +287,7 @@ files:
|
|
287
287
|
- log/trace_sic.yaml
|
288
288
|
- log/xes_xml.rb
|
289
289
|
- log/xes_yaml.rb
|
290
|
+
- server/dev.pid
|
290
291
|
- server/dev.rb
|
291
292
|
- server/handlerwrappers/default.rb
|
292
293
|
- server/handlerwrappers/soap.rb
|
@@ -303,7 +304,6 @@ files:
|
|
303
304
|
- server/resources/topics.xml
|
304
305
|
- server/resources/transformation.xml
|
305
306
|
- server/resources/transformation_dslx.xsl
|
306
|
-
- server/server.pid
|
307
307
|
- server/server.rb
|
308
308
|
- test/callback.rb
|
309
309
|
- tools/cpee
|
data/server/server.pid
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
29054
|