cpee-model-management 1.2.6 → 1.2.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 +4 -4
- data/cpee-model-management.gemspec +2 -2
- data/lib/cpee-model-management/dashing.rb +30 -0
- data/lib/cpee-model-management/{moma.xml → dashing.xml} +1 -7
- data/lib/cpee-model-management/implementation.rb +78 -46
- data/lib/cpee-model-management/implementation.xml +4 -12
- data/server/moma +7 -2
- data/server/moma.conf +1 -0
- data/server/redis.rdb +0 -0
- data/ui/js/stats.js +9 -9
- metadata +9 -3
- data/lib/cpee-model-management/stages +0 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 83ef7b632e188a043549854b155956023fb53dff74994c6f5c433b5fa6109662
|
|
4
|
+
data.tar.gz: d3365db939bc5ec15b5b13128684e2ce26153f99f72ae7f96016c8c3fa83dcf5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cc91173a38fdaba1cfc641ad04ca7d3dab86e083f0706aba4ca463eeeca769af5ebc9f0c87122d8fbe1032e7a5af6d6290f4d1e641f1aad8385cbdfdd525cdac
|
|
7
|
+
data.tar.gz: 28a16db51dfefcb19720c849a73a17fdf70709d8c3a08189c4145cb09251a3500b7c0f142a71b3c7be720ad87be77aa63c77e05e52c55b14d5185c304f2828eb
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = "cpee-model-management"
|
|
3
|
-
s.version = "1.2.
|
|
3
|
+
s.version = "1.2.8"
|
|
4
4
|
s.platform = Gem::Platform::RUBY
|
|
5
5
|
s.license = "LGPL-3.0"
|
|
6
6
|
s.summary = "(Lifecycle) manage your process models in a directory or git repo."
|
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
|
20
20
|
s.email = 'juergen.mangler@gmail.com'
|
|
21
21
|
s.homepage = 'http://cpee.org/'
|
|
22
22
|
|
|
23
|
-
s.add_runtime_dependency 'riddl', '~> 1.0'
|
|
23
|
+
s.add_runtime_dependency 'riddl', '~> 1.0', '>=1.0.12'
|
|
24
24
|
s.add_runtime_dependency 'json', '~> 2.1'
|
|
25
25
|
s.add_runtime_dependency 'cpee', '~> 2.1', '>= 2.1.114'
|
|
26
26
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
require_relative 'implementation'
|
|
3
|
+
|
|
4
|
+
options = {
|
|
5
|
+
:host => 'localhost',
|
|
6
|
+
:port => 9317,
|
|
7
|
+
:secure => false
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
Riddl::Server.new(File.join(__dir__,'dashing.xml'), options) do |opts|
|
|
11
|
+
accessible_description true
|
|
12
|
+
cross_site_xhr true
|
|
13
|
+
|
|
14
|
+
### set redis_cmd to nil if you want to do global
|
|
15
|
+
### at least redis_path or redis_url and redis_db have to be set if you do global
|
|
16
|
+
opts[:redis_db] ||= 0
|
|
17
|
+
opts[:redis_url] ||= 'unix://redis.sock' # sadly we have to do this for now
|
|
18
|
+
opts[:redis_unixsocket] ||= true
|
|
19
|
+
opts[:redis_cmd] ||= 'redis-server --port #redis_port# --unixsocket #redis_path# --unixsocketperm 600 --pidfile #redis_pid# --dir #redis_db_dir# --dbfilename #redis_db_name# --databases 1 --save 900 1 --save 300 10 --save 60 10000 --rdbcompression yes -- daemonize yes --protected-mode no'
|
|
20
|
+
opts[:redis_pid] ||= 'redis.pid' # use e.g. /var/run/redis.pid if you do global. Look it up in your redis config
|
|
21
|
+
opts[:redis_db_name] ||= 'redis.rdb' # use e.g. /var/lib/redis.rdb for global stuff. Look it up in your redis config
|
|
22
|
+
|
|
23
|
+
startup do
|
|
24
|
+
CPEE::redis_connect opts, 'Server Main'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
interface 'events' do
|
|
28
|
+
run CPEE::ModelManagement::StatReceive, opts[:redis], opts[:stat_receivers] if post 'event'
|
|
29
|
+
end
|
|
30
|
+
end.loop!
|
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
<declaration xmlns="http://riddl.org/ns/declaration/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
|
|
2
|
-
<interface name="implementation">
|
|
3
|
-
<xi:include href="implementation.xml"/>
|
|
4
|
-
</interface>
|
|
5
2
|
<interface name="events">
|
|
6
3
|
<xi:include href="http://www.riddl.org/ns/common-patterns/notifications-consumer/2.0/consumer.xml"/>
|
|
7
4
|
</interface>
|
|
8
5
|
|
|
9
6
|
<facade>
|
|
10
7
|
<tile>
|
|
11
|
-
<layer name="implementation">
|
|
12
|
-
<apply-to>/</apply-to>
|
|
13
|
-
</layer>
|
|
14
8
|
<layer name="events">
|
|
15
|
-
<apply-to
|
|
9
|
+
<apply-to>/</apply-to>
|
|
16
10
|
</layer>
|
|
17
11
|
</tile>
|
|
18
12
|
</facade>
|
|
@@ -31,7 +31,7 @@ require 'digest/sha1'
|
|
|
31
31
|
module CPEE
|
|
32
32
|
module ModelManagement
|
|
33
33
|
|
|
34
|
-
SERVER = File.expand_path(File.join(__dir__,'
|
|
34
|
+
SERVER = File.expand_path(File.join(__dir__,'implementation.xml'))
|
|
35
35
|
|
|
36
36
|
def self::git_mv(models,old,new)
|
|
37
37
|
cdir = Dir.pwd
|
|
@@ -184,7 +184,9 @@ module CPEE
|
|
|
184
184
|
where = @a[0] == :main ? '' : @r.map{ |d| Riddl::Protocols::Utils::unescape(d) }.join('/')
|
|
185
185
|
views = @a[1]
|
|
186
186
|
models = @a[2]
|
|
187
|
-
|
|
187
|
+
templates = @a[3]
|
|
188
|
+
default_view = @a[4]
|
|
189
|
+
stage = templates.keys.include?(@p[0]&.value) ? [@p[0]&.value] : [default_view]
|
|
188
190
|
stage << views[stage[0]] if views && views[stage[0]]
|
|
189
191
|
|
|
190
192
|
names = Dir.glob(File.join(models,where,'*.dir')).map do |f|
|
|
@@ -206,7 +208,9 @@ module CPEE
|
|
|
206
208
|
def response
|
|
207
209
|
views = @a[0]
|
|
208
210
|
models = @a[1]
|
|
209
|
-
|
|
211
|
+
templates = @a[2]
|
|
212
|
+
default_view = @a[3]
|
|
213
|
+
stage = templates.keys.include?(@p[0]&.value) ? [@p[0]&.value] : [default_view]
|
|
210
214
|
stage << views[stage[0]] if views && views[stage[0]]
|
|
211
215
|
|
|
212
216
|
names = Dir.glob(File.join(models,'*.dir/*.xml')).map do |f|
|
|
@@ -234,8 +238,9 @@ module CPEE
|
|
|
234
238
|
conns = @a[1]
|
|
235
239
|
themes = @a[2]
|
|
236
240
|
models = @a[3]
|
|
241
|
+
default_view = @a[4]
|
|
237
242
|
name = File.basename(@r.last,'.xml')
|
|
238
|
-
nstage = @p[0].value
|
|
243
|
+
nstage = themes.keys.include?(@p[0]&.value) ? @p[0].value : default_view
|
|
239
244
|
fname = File.join(models,where,name + '.xml')
|
|
240
245
|
|
|
241
246
|
dn = CPEE::ModelManagement::get_dn @h['DN']
|
|
@@ -299,7 +304,7 @@ module CPEE
|
|
|
299
304
|
end
|
|
300
305
|
File.write(fname + '.attrs',JSON::pretty_generate(attrs))
|
|
301
306
|
|
|
302
|
-
CPEE::ModelManagement::op author, 'mv', models, File.join('.', where,
|
|
307
|
+
CPEE::ModelManagement::op author, 'mv', models, File.join('.', where, File.basename(fnname)), File.join('.', where, name + '.xml')
|
|
303
308
|
CPEE::ModelManagement::notify conns, 'rename', models, fnname, fname
|
|
304
309
|
nil
|
|
305
310
|
end
|
|
@@ -330,7 +335,7 @@ module CPEE
|
|
|
330
335
|
XML::Smart::modify(f) do |doc|
|
|
331
336
|
doc.register_namespace 'p', 'http://cpee.org/ns/properties/2.0'
|
|
332
337
|
doc.find('/p:testset/p:attributes/p:design_dir').each do |ele|
|
|
333
|
-
ele.text =
|
|
338
|
+
ele.text = File.basename(fnname,'.dir')
|
|
334
339
|
end
|
|
335
340
|
attrs = doc.find('/p:testset/p:attributes/*').map do |e|
|
|
336
341
|
[e.qname.name,e.text]
|
|
@@ -339,7 +344,7 @@ module CPEE
|
|
|
339
344
|
File.write(f + '.attrs',JSON::pretty_generate(attrs))
|
|
340
345
|
end
|
|
341
346
|
|
|
342
|
-
CPEE::ModelManagement::op author, 'mv', models, File.
|
|
347
|
+
CPEE::ModelManagement::op author, 'mv', models, File.basename(fnname), name + '.dir'
|
|
343
348
|
CPEE::ModelManagement::notify conns, 'rename', models, fnname, fname
|
|
344
349
|
nil
|
|
345
350
|
end
|
|
@@ -381,9 +386,11 @@ module CPEE
|
|
|
381
386
|
views = @a[1]
|
|
382
387
|
conns = @a[2]
|
|
383
388
|
templates = @a[3]
|
|
389
|
+
default_view = @a[5]
|
|
384
390
|
if @p.first.name == 'stage'
|
|
385
391
|
where = @a[0] == :main ? '' : @r.map{ |d| Riddl::Protocols::Utils::unescape(d) }.join('/')
|
|
386
392
|
stage = @p.shift.value
|
|
393
|
+
stage = templates.keys.include?(stage) ? stage : default_view
|
|
387
394
|
name = @p[0].value
|
|
388
395
|
source = templates[stage] ? templates[stage] : 'testset.xml'
|
|
389
396
|
fname = File.join(models,where,name + '.xml')
|
|
@@ -470,7 +477,8 @@ module CPEE
|
|
|
470
477
|
views = @a[3]
|
|
471
478
|
force = @a[4]
|
|
472
479
|
models = @a[5]
|
|
473
|
-
|
|
480
|
+
default_view = @a[6]
|
|
481
|
+
stage = cock.keys.include?(@p[0]&.value) ? @p[0].value : default_view
|
|
474
482
|
|
|
475
483
|
fname = File.join(models,where,name + '.xml')
|
|
476
484
|
|
|
@@ -667,7 +675,6 @@ module CPEE
|
|
|
667
675
|
class StatReceive < Riddl::Implementation #{{{
|
|
668
676
|
def response
|
|
669
677
|
redis = @a[0]
|
|
670
|
-
receivers = @a[1]
|
|
671
678
|
topic = @p[1].value
|
|
672
679
|
event_name = @p[2].value
|
|
673
680
|
notification = JSON.parse(@p[3].value.read)
|
|
@@ -734,13 +741,16 @@ module CPEE
|
|
|
734
741
|
end
|
|
735
742
|
end
|
|
736
743
|
elsif %w{stopped}.include?(content['state'])
|
|
737
|
-
redis.
|
|
738
|
-
|
|
739
|
-
multi
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
+
oldstate = redis.get(File.join(prefix,'state'))
|
|
745
|
+
if oldstate && oldstate != 'stopped' # stopped can be repeated when reloading instance, any other state before is either fine or can not happen
|
|
746
|
+
redis.multi do |multi|
|
|
747
|
+
multi.decr(File.join(engine,'running'))
|
|
748
|
+
multi.incr(File.join(engine,'stopped'))
|
|
749
|
+
multi.set(File.join(prefix,'state'),content['state'])
|
|
750
|
+
multi.set(File.join(prefix,'cpu'),0)
|
|
751
|
+
multi.set(File.join(prefix,'mem'),0)
|
|
752
|
+
multi.set(File.join(prefix,'time'),Time.now.to_i)
|
|
753
|
+
end
|
|
744
754
|
end
|
|
745
755
|
elsif %w{running}.include?(content['state'])
|
|
746
756
|
oldstate = redis.get(File.join(prefix,'state'))
|
|
@@ -762,9 +772,7 @@ module CPEE
|
|
|
762
772
|
File.join(prefix,'time'),
|
|
763
773
|
File.join(prefix,'parent')
|
|
764
774
|
)
|
|
765
|
-
|
|
766
|
-
conn.send JSON::generate(:topic => topic, :event => event_name, :engine => engine, :uuid => notification['instance-uuid'], :url => url, :author => author, :path => path.to_s, :name => name, :state => content['state'], :time => time, :parent => parent.to_s)
|
|
767
|
-
end
|
|
775
|
+
redis.publish 'forward', JSON::generate(:topic => topic, :event => event_name, :engine => engine, :uuid => notification['instance-uuid'], :url => url, :author => author, :path => path.to_s, :name => name, :state => content['state'], :time => time, :parent => parent.to_s)
|
|
768
776
|
elsif topic == 'task' && event_name == 'instantiation'
|
|
769
777
|
redis.multi do |multi|
|
|
770
778
|
multi.rpush(File.join(engine,notification['instance-uuid'],'children'),content['received']['CPEE-INSTANCE-UUID'])
|
|
@@ -780,18 +788,14 @@ module CPEE
|
|
|
780
788
|
File.join(prefix,'time'),
|
|
781
789
|
File.join(prefix,'parent')
|
|
782
790
|
)
|
|
783
|
-
|
|
784
|
-
conn.send JSON::generate(:topic => 'state', :event => 'change', :engine => engine, :uuid => content['received']['CPEE-INSTANCE-UUID'], :url => url, :author => author, :path => path.to_s, :name => name, :state => state, :time => time, :parent => parent.to_s)
|
|
785
|
-
end
|
|
791
|
+
redis.publish 'forward', JSON::generate(:topic => 'state', :event => 'change', :engine => engine, :uuid => content['received']['CPEE-INSTANCE-UUID'], :url => url, :author => author, :path => path.to_s, :name => name, :state => state, :time => time, :parent => parent.to_s)
|
|
786
792
|
elsif topic == 'status' && event_name == 'resource_utilization'
|
|
787
793
|
redis.multi do |multi|
|
|
788
794
|
multi.set(File.join(prefix,'name'),attr['info'])
|
|
789
795
|
multi.set(File.join(prefix,'cpu'),content['utime'] + content['stime'])
|
|
790
796
|
multi.set(File.join(prefix,'mem'),content['mib'])
|
|
791
797
|
end
|
|
792
|
-
|
|
793
|
-
conn.send JSON::generate(:topic => topic, :event => event_name, :engine => engine, :uuid => notification['instance-uuid'], :cpu => content['utime'] + content['stime'], :mem => content['mib'])
|
|
794
|
-
end
|
|
798
|
+
redis.publish 'forward', JSON::generate(:topic => topic, :event => event_name, :engine => engine, :uuid => notification['instance-uuid'], :cpu => content['utime'] + content['stime'], :mem => content['mib'])
|
|
795
799
|
elsif topic == 'node' && event_name == 'resource_utilization'
|
|
796
800
|
redis.multi do |multi|
|
|
797
801
|
multi.set(File.join(engine,'cpu_usage'),content['cpu_usage'])
|
|
@@ -799,9 +803,7 @@ module CPEE
|
|
|
799
803
|
multi.set(File.join(engine,'mem_total'),content['mem_total'])
|
|
800
804
|
multi.set(File.join(engine,'mem_available'),content['mem_available'])
|
|
801
805
|
end
|
|
802
|
-
|
|
803
|
-
conn.send JSON::generate(:topic => topic, :event => event_name, :engine => engine, :cpu_usage => content['cpu_usage'], :mem_free => content['mem_free'], :mem_total => content['mem_total'], :mem_available => content['mem_available'])
|
|
804
|
-
end
|
|
806
|
+
redis.publish 'forward', JSON::generate(:topic => topic, :event => event_name, :engine => engine, :cpu_usage => content['cpu_usage'], :mem_free => content['mem_free'], :mem_total => content['mem_total'], :mem_available => content['mem_available'])
|
|
805
807
|
end
|
|
806
808
|
end
|
|
807
809
|
end #}}}
|
|
@@ -866,11 +868,36 @@ module CPEE
|
|
|
866
868
|
end
|
|
867
869
|
end #}}}
|
|
868
870
|
|
|
871
|
+
def self::service_handler(opts,cmd,out) #{{{
|
|
872
|
+
1.upto opts[:workers] do |i|
|
|
873
|
+
s = File.join(__dir__,'dashing.rb')
|
|
874
|
+
next if File.exist?(s + '.lock')
|
|
875
|
+
pid = (File.read(s + '.pid').to_i rescue nil)
|
|
876
|
+
if (pid.nil? || !(Process.kill(0, pid) rescue false))
|
|
877
|
+
params = "-p #{opts[:port].to_i + i} -o basepath=#{File.realpath(opts[:basepath])} #{cmd} 1>/dev/null 2>&1"
|
|
878
|
+
system "#{s} #{params} 1>/dev/null 2>&1"
|
|
879
|
+
puts "➡ Service #{File.basename(s)} (#{params}) #{out} ..."
|
|
880
|
+
end
|
|
881
|
+
end
|
|
882
|
+
end #}}}
|
|
883
|
+
def self::sse_stat_distributor(opts) #{{{
|
|
884
|
+
conn = opts[:redis_dyn].call "Server SSE"
|
|
885
|
+
conn.subscribe('forward') do |on|
|
|
886
|
+
on.message do |what, message|
|
|
887
|
+
opts[:stat_receivers].each do |conn|
|
|
888
|
+
conn.send message
|
|
889
|
+
end
|
|
890
|
+
end
|
|
891
|
+
end
|
|
892
|
+
conn.close
|
|
893
|
+
end #}}}
|
|
869
894
|
|
|
870
895
|
def self::implementation(opts)
|
|
871
896
|
opts[:management_receivers] = []
|
|
872
897
|
opts[:stat_receivers] = []
|
|
873
898
|
|
|
899
|
+
opts[:workers] = 1
|
|
900
|
+
|
|
874
901
|
### set redis_cmd to nil if you want to do global
|
|
875
902
|
### at least redis_path or redis_url and redis_db have to be set if you do global
|
|
876
903
|
opts[:redis_db] ||= 0
|
|
@@ -880,13 +907,15 @@ module CPEE
|
|
|
880
907
|
opts[:redis_pid] ||= 'redis.pid' # use e.g. /var/run/redis.pid if you do global. Look it up in your redis config
|
|
881
908
|
opts[:redis_db_name] ||= 'redis.rdb' # use e.g. /var/lib/redis.rdb for global stuff. Look it up in your redis config
|
|
882
909
|
|
|
883
|
-
CPEE::redis_connect opts, 'Server Main'
|
|
884
|
-
|
|
885
910
|
opts[:sse_keepalive_frequency] ||= 10
|
|
886
911
|
|
|
912
|
+
CPEE::redis_connect opts, 'Server Main'
|
|
887
913
|
Proc.new do
|
|
888
914
|
|
|
889
915
|
parallel do
|
|
916
|
+
EM.defer do ### catch all sse connections
|
|
917
|
+
CPEE::ModelManagement::sse_stat_distributor(opts)
|
|
918
|
+
end
|
|
890
919
|
EM.add_periodic_timer(opts[:sse_keepalive_frequency]) do
|
|
891
920
|
opts[:management_receivers].each do |sse|
|
|
892
921
|
sse.send_with_id('heartbeat', '42') unless sse&.closed?
|
|
@@ -897,22 +926,25 @@ module CPEE
|
|
|
897
926
|
end
|
|
898
927
|
end
|
|
899
928
|
|
|
900
|
-
|
|
901
|
-
|
|
929
|
+
startup do
|
|
930
|
+
CPEE::ModelManagement::service_handler(opts,'restart','started')
|
|
931
|
+
end
|
|
932
|
+
cleanup do
|
|
933
|
+
CPEE::ModelManagement::service_handler(opts,'stop','stopped')
|
|
902
934
|
end
|
|
903
935
|
|
|
904
|
-
|
|
905
|
-
run GetList, :main, opts[:views], opts[:models] if get 'stage'
|
|
906
|
-
run GetListFull, opts[:views], opts[:models] if get 'full'
|
|
936
|
+
on resource do
|
|
937
|
+
run GetList, :main, opts[:views], opts[:models], opts[:templates], opts[:default_view] if get 'stage'
|
|
938
|
+
run GetListFull, opts[:views], opts[:models], opts[:templates], opts[:default_view] if get 'full'
|
|
907
939
|
run GetStages, opts[:themes] if get 'stages'
|
|
908
|
-
run Create, :main, opts[:views], opts[:management_receivers], opts[:templates], opts[:models] if post 'item'
|
|
940
|
+
run Create, :main, opts[:views], opts[:management_receivers], opts[:templates], opts[:models], opts[:default_view] if post 'item'
|
|
909
941
|
run CreateDir, :main, opts[:management_receivers], opts[:models] if post 'dir'
|
|
910
942
|
on resource 'management' do
|
|
911
943
|
run ManagementSend, opts[:management_receivers] if sse
|
|
912
944
|
end
|
|
913
945
|
on resource '[a-zA-Z0-9öäüÖÄÜ _-]+\.dir' do
|
|
914
|
-
run GetList, :sub, opts[:views], opts[:models] if get 'stage'
|
|
915
|
-
run Create, :sub, opts[:views], opts[:management_receivers], opts[:templates], opts[:models] if post 'item'
|
|
946
|
+
run GetList, :sub, opts[:views], opts[:models], opts[:templates], opts[:default_view] if get 'stage'
|
|
947
|
+
run Create, :sub, opts[:views], opts[:management_receivers], opts[:templates], opts[:models], opts[:default_view]if post 'item'
|
|
916
948
|
run DeleteDir, opts[:management_receivers], opts[:models] if delete
|
|
917
949
|
run RenameDir, opts[:management_receivers], opts[:models] if put 'name'
|
|
918
950
|
run CreateDir, :sub, opts[:management_receivers], opts[:models] if post 'dir'
|
|
@@ -922,13 +954,13 @@ module CPEE
|
|
|
922
954
|
run PutItem, :sub, opts[:management_receivers], opts[:models] if put 'content'
|
|
923
955
|
run RenameItem, :sub, opts[:management_receivers], opts[:models] if put 'name'
|
|
924
956
|
run MoveItem, :sub, opts[:management_receivers], opts[:models] if put 'movedir'
|
|
925
|
-
run Create, :sub, opts[:views], opts[:management_receivers], opts[:templates], opts[:models] if put 'dupdir'
|
|
926
|
-
run ShiftItem, :sub, opts[:management_receivers], opts[:themes], opts[:models] if put 'newstage'
|
|
957
|
+
run Create, :sub, opts[:views], opts[:management_receivers], opts[:templates], opts[:models], opts[:default_view]if put 'dupdir'
|
|
958
|
+
run ShiftItem, :sub, opts[:management_receivers], opts[:themes], opts[:models], opts[:default_view] if put 'newstage'
|
|
927
959
|
on resource 'open' do
|
|
928
|
-
run OpenItem, :sub, opts[:instantiate], opts[:cockpit], opts[:views], false, opts[:models] if get 'stage'
|
|
960
|
+
run OpenItem, :sub, opts[:instantiate], opts[:cockpit], opts[:views], false, opts[:models], opts[:default_view] if get 'stage'
|
|
929
961
|
end
|
|
930
962
|
on resource 'open-new' do
|
|
931
|
-
run OpenItem, :sub, opts[:instantiate], opts[:cockpit], opts[:views], true, opts[:models] if get 'stage'
|
|
963
|
+
run OpenItem, :sub, opts[:instantiate], opts[:cockpit], opts[:views], true, opts[:models], opts[:default_view] if get 'stage'
|
|
932
964
|
end
|
|
933
965
|
end
|
|
934
966
|
end
|
|
@@ -938,13 +970,13 @@ module CPEE
|
|
|
938
970
|
run PutItem, :main, opts[:management_receivers], opts[:models] if put 'content'
|
|
939
971
|
run RenameItem, :main, opts[:management_receivers], opts[:models] if put 'name'
|
|
940
972
|
run MoveItem, :main, opts[:management_receivers], opts[:models] if put 'movedir'
|
|
941
|
-
run Create, :main, opts[:views], opts[:management_receivers], opts[:templates], opts[:models] if put 'dupdir'
|
|
942
|
-
run ShiftItem, :main, opts[:management_receivers], opts[:themes], opts[:models] if put 'newstage'
|
|
973
|
+
run Create, :main, opts[:views], opts[:management_receivers], opts[:templates], opts[:models], opts[:default_view]if put 'dupdir'
|
|
974
|
+
run ShiftItem, :main, opts[:management_receivers], opts[:themes], opts[:models], opts[:default_view] if put 'newstage'
|
|
943
975
|
on resource 'open' do
|
|
944
|
-
run OpenItem, :main, opts[:instantiate], opts[:cockpit], opts[:views], false, opts[:models] if get 'stage'
|
|
976
|
+
run OpenItem, :main, opts[:instantiate], opts[:cockpit], opts[:views], false, opts[:models], opts[:default_view] if get 'stage'
|
|
945
977
|
end
|
|
946
978
|
on resource 'open-new' do
|
|
947
|
-
run OpenItem, :main, opts[:instantiate], opts[:cockpit], opts[:views], true, opts[:models] if get 'stage'
|
|
979
|
+
run OpenItem, :main, opts[:instantiate], opts[:cockpit], opts[:views], true, opts[:models], opts[:default_view] if get 'stage'
|
|
948
980
|
end
|
|
949
981
|
end
|
|
950
982
|
on resource 'dash' do
|
|
@@ -15,9 +15,7 @@
|
|
|
15
15
|
<parameter name="instance" mimetype="application/json"/>
|
|
16
16
|
</message>
|
|
17
17
|
<message name="item">
|
|
18
|
-
<parameter name="stage" type="string"
|
|
19
|
-
<xi:include href="stages"/>
|
|
20
|
-
</parameter>
|
|
18
|
+
<parameter name="stage" type="string"/>
|
|
21
19
|
<parameter name="new" type="string">
|
|
22
20
|
<param name="pattern">[a-zA-Z0-9öäüÖÄÜ _-]+</param>
|
|
23
21
|
</parameter>
|
|
@@ -51,23 +49,17 @@
|
|
|
51
49
|
<parameter name="stages" type="string"/>
|
|
52
50
|
</message>
|
|
53
51
|
<message name="newstage">
|
|
54
|
-
<parameter name="stage" type="string"
|
|
55
|
-
<xi:include href="stages"/>
|
|
56
|
-
</parameter>
|
|
52
|
+
<parameter name="stage" type="string"/>
|
|
57
53
|
</message>
|
|
58
54
|
<message name="stage">
|
|
59
55
|
<optional>
|
|
60
|
-
<parameter name="stage" type="string"
|
|
61
|
-
<xi:include href="stages"/>
|
|
62
|
-
</parameter>
|
|
56
|
+
<parameter name="stage" type="string"/>
|
|
63
57
|
</optional>
|
|
64
58
|
</message>
|
|
65
59
|
<message name="full">
|
|
66
60
|
<parameter name="full" type="string"/>
|
|
67
61
|
<optional>
|
|
68
|
-
<parameter name="stage" type="string"
|
|
69
|
-
<xi:include href="stages"/>
|
|
70
|
-
</parameter>
|
|
62
|
+
<parameter name="stage" type="string"/>
|
|
71
63
|
</optional>
|
|
72
64
|
</message>
|
|
73
65
|
<message name="list">
|
data/server/moma
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/ruby
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
if File.exist?(File.join(__dir__,'..','lib','cpee-model-management','implementation.rb'))
|
|
3
|
+
require_relative File.join(__dir__,'..','lib','cpee-model-management','implementation')
|
|
4
|
+
elsif File.exist?(File.join(Dir.home,'Projects','cpee-model-management','lib','cpee-model-management','implementation.rb'))
|
|
5
|
+
require_relative File.join(Dir.home, 'Projects','cpee-model-management','lib','cpee-model-management','implementation')
|
|
6
|
+
else
|
|
7
|
+
require 'cpee-model-management/implementation'
|
|
8
|
+
end
|
|
4
9
|
|
|
5
10
|
options = {
|
|
6
11
|
:host => 'localhost',
|
data/server/moma.conf
CHANGED
data/server/redis.rdb
CHANGED
|
Binary file
|
data/ui/js/stats.js
CHANGED
|
@@ -163,15 +163,15 @@ function instances_init(ename) {
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
function resource_paint(iname,data,count) {
|
|
166
|
-
count[iname]
|
|
167
|
-
Plotly.extendTraces('resource_utilization_plot_' + iname, {y: [[data.cpu_usage], [(data.mem_total-data.mem_available)/data.mem_total * 100]]}, [0,1])
|
|
168
|
-
Plotly.relayout('resource_utilization_plot_' + iname, {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
});
|
|
166
|
+
count[iname]++;
|
|
167
|
+
Plotly.extendTraces('resource_utilization_plot_' + iname, {y: [[data.cpu_usage], [(data.mem_total-data.mem_available)/data.mem_total * 100]]}, [0,1], value_count)
|
|
168
|
+
// Plotly.relayout('resource_utilization_plot_' + iname, {
|
|
169
|
+
// xaxis: {
|
|
170
|
+
// range: [count[iname]-value_count,count[iname]],
|
|
171
|
+
// showticklabels: false,
|
|
172
|
+
// fixedrange: true
|
|
173
|
+
// }
|
|
174
|
+
// });
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
function stats_init() {
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cpee-model-management
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Juergen eTM Mangler
|
|
@@ -16,6 +16,9 @@ dependencies:
|
|
|
16
16
|
- - "~>"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
18
|
version: '1.0'
|
|
19
|
+
- - ">="
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: 1.0.12
|
|
19
22
|
type: :runtime
|
|
20
23
|
prerelease: false
|
|
21
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -23,6 +26,9 @@ dependencies:
|
|
|
23
26
|
- - "~>"
|
|
24
27
|
- !ruby/object:Gem::Version
|
|
25
28
|
version: '1.0'
|
|
29
|
+
- - ">="
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: 1.0.12
|
|
26
32
|
- !ruby/object:Gem::Dependency
|
|
27
33
|
name: json
|
|
28
34
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -71,10 +77,10 @@ files:
|
|
|
71
77
|
- Rakefile
|
|
72
78
|
- cpee-model-management.gemspec
|
|
73
79
|
- lib/cpee-model-management/commit.rb
|
|
80
|
+
- lib/cpee-model-management/dashing.rb
|
|
81
|
+
- lib/cpee-model-management/dashing.xml
|
|
74
82
|
- lib/cpee-model-management/implementation.rb
|
|
75
83
|
- lib/cpee-model-management/implementation.xml
|
|
76
|
-
- lib/cpee-model-management/moma.xml
|
|
77
|
-
- lib/cpee-model-management/stages
|
|
78
84
|
- server/model.xml
|
|
79
85
|
- server/moma
|
|
80
86
|
- server/moma.conf
|