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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f90d17cb996ce84af9f3f816732c153a3e10dfefb20aac6aaae26dd1290d464
4
- data.tar.gz: bac5d187473b38d1794492d709ac177e6b9de336a9ba9d3972f8c5c6644b3021
3
+ metadata.gz: 83ef7b632e188a043549854b155956023fb53dff74994c6f5c433b5fa6109662
4
+ data.tar.gz: d3365db939bc5ec15b5b13128684e2ce26153f99f72ae7f96016c8c3fa83dcf5
5
5
  SHA512:
6
- metadata.gz: 7be6532682b79a04cfbc2d5d27c471a106f7b094d94d24c4ddbb6d2ebe999a2766cd2e243c8a5c7deabb0cfcf3a374d765fc569dee47c2ffba63678244dde0e6
7
- data.tar.gz: d0ca2d3aa5323b3714c5c94a0574a2c17e1ce14e5d901d59e85300c34175d491273ceca9e8e4a80a06b3a92f32e3d17d92c37d42532b695695a0f26e137b88ab
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.6"
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>/dash/events</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__,'moma.xml'))
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
- stage = [@p[0]&.value] || ['draft']
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
- stage = [@p[0]&.value] || ['draft']
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, nname + '.xml'), File.join('.', where, name + '.xml')
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 = nname + '.dir'
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.join(nname + '.dir'), File.join(name + '.dir')
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
- stage = @p[0]&.value || 'draft'
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.multi do |multi|
738
- multi.decr(File.join(engine,'running'))
739
- multi.incr(File.join(engine,'stopped'))
740
- multi.set(File.join(prefix,'state'),content['state'])
741
- multi.set(File.join(prefix,'cpu'),0)
742
- multi.set(File.join(prefix,'mem'),0)
743
- multi.set(File.join(prefix,'time'),Time.now.to_i)
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
- receivers.each do |conn|
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
- receivers.each do |conn|
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
- receivers.each do |conn|
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
- receivers.each do |conn|
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
- interface 'events' do
901
- run StatReceive, opts[:redis], opts[:stat_receivers] if post 'event'
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
- interface 'implementation' do
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
- require 'rubygems'
3
- require 'cpee-model-management/implementation'
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
@@ -1,4 +1,5 @@
1
1
  :port: 9316
2
+ :workers: 1
2
3
  :models: models
3
4
  :location: https://cpee.org/design/server/
4
5
  :instantiate: https://cpee.org/flow/start/
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
- xaxis: {
170
- range: [count[iname]-value_count,count[iname]],
171
- showticklabels: false,
172
- fixedrange: true
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.6
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
@@ -1,6 +0,0 @@
1
- <choice>
2
- <value>draft</value>
3
- <value>development</value>
4
- <value>production</value>
5
- <value>archive</value>
6
- </choice>