cpee 2.1.32 → 2.1.33
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cpee.gemspec +2 -2
- data/lib/cpee/implementation.rb +52 -0
- data/lib/cpee/message.rb +20 -0
- data/server/executionhandlers/ruby/connection.rb +7 -1
- data/server/resources/topics.xml +1 -0
- metadata +15 -19
- data/server/routing/end.pid +0 -1
- data/server/routing/forward-events.pid +0 -1
- data/server/routing/forward-votes.pid +0 -1
- data/server/routing/persist.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: 682e529161147c9cefe172e0428a514f6a0f0ab1da0e584584d2a40cdf1e8b31
|
4
|
+
data.tar.gz: fd3509bbf881ad2325ca56a785224b5528af1b8c925fb8572e6f07f8542b214e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e33966fe123d62a6da0a1cdd50cf2fc991a0f2646fcf1d7214d2ca11784ccd9a2dfb0e5d27c272d36b1eedf95135bb64e2d3c799caba374abbc8345deeef674
|
7
|
+
data.tar.gz: 24885c7f3c35c86c204048c5db47ae5ddb79bc2b29d1aaa619d2f2155efbfb607c205bf319e5360e8bbf71bb2f071ba412492a11a34dc673e4d13daf5386f432
|
data/cpee.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee"
|
3
|
-
s.version = "2.1.
|
3
|
+
s.version = "2.1.33"
|
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.org). If you just need workflow execution, without a rest service exposing it, then use WEEL."
|
@@ -24,9 +24,9 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_runtime_dependency 'riddl', '~> 0.114'
|
25
25
|
s.add_runtime_dependency 'weel', '~> 1.99', '>= 1.99.99'
|
26
26
|
s.add_runtime_dependency 'highline', '~> 2.0'
|
27
|
-
s.add_runtime_dependency 'json', '~>2.1'
|
28
27
|
s.add_runtime_dependency 'redis', '~> 4.1'
|
29
28
|
s.add_runtime_dependency 'rubyzip', '~>2'
|
30
29
|
s.add_runtime_dependency 'charlock_holmes', '~>0'
|
31
30
|
s.add_runtime_dependency 'mimemagic', '~>0'
|
31
|
+
s.add_runtime_dependency 'get_process_mem', '~>0.2'
|
32
32
|
end
|
data/lib/cpee/implementation.rb
CHANGED
@@ -68,6 +68,9 @@ module CPEE
|
|
68
68
|
opts[:watchdog_start_off] ||= false
|
69
69
|
opts[:infinite_loop_stop] ||= 10000
|
70
70
|
|
71
|
+
opts[:dashing_frequency] ||= 3
|
72
|
+
opts[:dashing_target] ||= nil
|
73
|
+
|
71
74
|
### set redis_cmd to nil if you want to do global
|
72
75
|
### at least redis_path or redis_url and redis_db have to be set if you do global
|
73
76
|
opts[:redis_path] ||= 'redis.sock' # use e.g. /tmp/redis.sock for global stuff. Look it up in your redis config
|
@@ -114,6 +117,55 @@ module CPEE
|
|
114
117
|
EM.add_periodic_timer(opts[:sse_keepalive_frequency]) do
|
115
118
|
CPEE::Notifications::sse_heartbeat(opts)
|
116
119
|
end
|
120
|
+
|
121
|
+
if opts[:dashing_target]
|
122
|
+
cpu_last = 0
|
123
|
+
idl_last = 0
|
124
|
+
EM.add_periodic_timer(opts[:dashing_frequency]) do
|
125
|
+
src = `cat /proc/stat | head -n 1`.split("\n")
|
126
|
+
srm = `cat /proc/meminfo`.split("\n")
|
127
|
+
sc = {}
|
128
|
+
sm = {}
|
129
|
+
src.each do |e|
|
130
|
+
x = e.split(' ')
|
131
|
+
sc[x[0]] = x[1..-1].map{|r| r.to_i}
|
132
|
+
end
|
133
|
+
srm.each do |e|
|
134
|
+
x = e.split(/\s+/)
|
135
|
+
sm[x[0].chop] = x[1].to_i
|
136
|
+
end
|
137
|
+
scc = 0
|
138
|
+
sci = 0
|
139
|
+
sc.each do |_,e|
|
140
|
+
scc = e[0..4].sum
|
141
|
+
sci = e[3]
|
142
|
+
end
|
143
|
+
cpu_delta = scc - cpu_last
|
144
|
+
cpu_idle = sci - idl_last
|
145
|
+
cpu_used = cpu_delta - cpu_idle
|
146
|
+
cpu_usage = '%.2f' % (100 * cpu_used / cpu_delta.to_f)
|
147
|
+
mem_tot = '%.1f' % (sm['MemTotal']/1024.0)
|
148
|
+
mem_fre = '%.1f' % (sm['MemFree']/1024.0)
|
149
|
+
mem_ava = '%.1f' % (sm['MemAvailable']/1024.0)
|
150
|
+
mem_buc = '%.1f' % ((sm['Buffers'] + sm['Cached'] + sm['SReclaimable'])/1024.0)
|
151
|
+
mem_usd = '%.1f' % ((sm['MemTotal'] - sm['MemFree'] - sm['Buffers'] - sm['Cached'] - sm['SReclaimable'])/1024.0)
|
152
|
+
|
153
|
+
# puts "CPU usage at #{cpu_usage}%"
|
154
|
+
# puts "Mem usage at #{mem_tot}/#{mem_fre}/#{mem_usd}/#{mem_buc}/#{mem_ava}"
|
155
|
+
content = {}
|
156
|
+
content['cpu_usage'] = cpu_usage
|
157
|
+
content['mem_total'] = mem_tot
|
158
|
+
content['mem_free'] = mem_fre
|
159
|
+
content['mem_available'] = mem_ava
|
160
|
+
content['mem_bufferedandcached'] = mem_buc
|
161
|
+
content['mem_used'] = mem_usd
|
162
|
+
CPEE::Message::send_url(:event,'node/resource_utilization',File.join(opts[:url],'/'),content,File.join(opts[:dashing_target],'/dash/events'))
|
163
|
+
|
164
|
+
# Keep this as last for our next read
|
165
|
+
idl_last = sci
|
166
|
+
cpu_last = scc
|
167
|
+
end
|
168
|
+
end
|
117
169
|
end
|
118
170
|
|
119
171
|
cleanup do
|
data/lib/cpee/message.rb
CHANGED
@@ -39,6 +39,26 @@ module CPEE
|
|
39
39
|
)
|
40
40
|
end
|
41
41
|
|
42
|
+
def self::send_url(type, event, cpee, content={}, backend)
|
43
|
+
topic = ::File::dirname(event)
|
44
|
+
name = ::File::basename(event)
|
45
|
+
client = Riddl::Client.new(backend)
|
46
|
+
payload = {
|
47
|
+
WHO => cpee,
|
48
|
+
'topic' => topic,
|
49
|
+
'type' => type,
|
50
|
+
'name' => name,
|
51
|
+
'timestamp' => Time.now.xmlschema(3),
|
52
|
+
'content' => content
|
53
|
+
}
|
54
|
+
client = Riddl::Client.new(backend)
|
55
|
+
client.post [
|
56
|
+
Riddl::Parameter::Simple::new('type',type),
|
57
|
+
Riddl::Parameter::Simple::new('topic',topic),
|
58
|
+
Riddl::Parameter::Simple::new('event',name),
|
59
|
+
Riddl::Parameter::Complex::new('notification','application/json',JSON::generate(payload))
|
60
|
+
]
|
61
|
+
end
|
42
62
|
end
|
43
63
|
|
44
64
|
end
|
@@ -15,6 +15,7 @@
|
|
15
15
|
require 'charlock_holmes'
|
16
16
|
require 'mimemagic'
|
17
17
|
require 'base64'
|
18
|
+
require 'get_process_mem'
|
18
19
|
|
19
20
|
class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
20
21
|
def self::loop_guard(arguments,id,count) # {{{
|
@@ -192,6 +193,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
192
193
|
|
193
194
|
def inform_activity_done # {{{
|
194
195
|
@controller.notify("activity/done", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position)
|
196
|
+
@controller.notify("status/resource_utilization", :mib => GetProcessMem.new.mb, **Process.times.to_h)
|
195
197
|
end # }}}
|
196
198
|
def inform_activity_manipulate # {{{
|
197
199
|
@controller.notify("activity/manipulating", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position)
|
@@ -311,10 +313,14 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
311
313
|
end
|
312
314
|
|
313
315
|
def callback(result=nil,options={})
|
314
|
-
|
316
|
+
recv = structurize_result(result)
|
317
|
+
@controller.notify("activity/receiving", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv, :annotations => @anno)
|
315
318
|
@guard_files += result
|
316
319
|
@handler_returnValue = simplify_result(result)
|
317
320
|
@handler_returnOptions = options
|
321
|
+
if options['CPEE_EVENT']
|
322
|
+
@controller.notify("task/#{headers['CPEE_EVENT'].gsub(/[^\w_-]/,'')}", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv)
|
323
|
+
end
|
318
324
|
if options['CPEE_UPDATE']
|
319
325
|
if options['CPEE_UPDATE_STATUS']
|
320
326
|
@controller.notify("activity/status", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :status => options['CPEE_UPDATE_STATUS'])
|
data/server/resources/topics.xml
CHANGED
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.
|
4
|
+
version: 2.1.33
|
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: 2022-
|
13
|
+
date: 2022-04-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: riddl
|
@@ -61,49 +61,49 @@ dependencies:
|
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '2.0'
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
64
|
+
name: redis
|
65
65
|
requirement: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '4.1'
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
76
|
+
version: '4.1'
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
|
-
name:
|
78
|
+
name: rubyzip
|
79
79
|
requirement: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
83
|
+
version: '2'
|
84
84
|
type: :runtime
|
85
85
|
prerelease: false
|
86
86
|
version_requirements: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: '
|
90
|
+
version: '2'
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
92
|
+
name: charlock_holmes
|
93
93
|
requirement: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
97
|
+
version: '0'
|
98
98
|
type: :runtime
|
99
99
|
prerelease: false
|
100
100
|
version_requirements: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
104
|
+
version: '0'
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
|
-
name:
|
106
|
+
name: mimemagic
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
@@ -117,19 +117,19 @@ dependencies:
|
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0'
|
119
119
|
- !ruby/object:Gem::Dependency
|
120
|
-
name:
|
120
|
+
name: get_process_mem
|
121
121
|
requirement: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
125
|
+
version: '0.2'
|
126
126
|
type: :runtime
|
127
127
|
prerelease: false
|
128
128
|
version_requirements: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: '0'
|
132
|
+
version: '0.2'
|
133
133
|
description: see http://cpee.org
|
134
134
|
email: juergen.mangler@gmail.com
|
135
135
|
executables:
|
@@ -664,13 +664,9 @@ files:
|
|
664
664
|
- server/resources/states.xml
|
665
665
|
- server/resources/topics.xml
|
666
666
|
- server/resources/transformation.xml
|
667
|
-
- server/routing/end.pid
|
668
667
|
- server/routing/end.rb
|
669
|
-
- server/routing/forward-events.pid
|
670
668
|
- server/routing/forward-events.rb
|
671
|
-
- server/routing/forward-votes.pid
|
672
669
|
- server/routing/forward-votes.rb
|
673
|
-
- server/routing/persist.pid
|
674
670
|
- server/routing/persist.rb
|
675
671
|
- server/server.conf
|
676
672
|
- server/server.rb
|
data/server/routing/end.pid
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2206017
|
@@ -1 +0,0 @@
|
|
1
|
-
2206021
|
@@ -1 +0,0 @@
|
|
1
|
-
2206025
|
data/server/routing/persist.pid
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2206029
|