prometheus-splash 0.7.0 → 0.8.4

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -1
  3. data/README.md +400 -178
  4. data/config/splash.yml +45 -5
  5. data/lib/splash/backends.rb +8 -1
  6. data/lib/splash/backends/file.rb +1 -1
  7. data/lib/splash/cli.rb +2 -1
  8. data/lib/splash/cli/commands.rb +100 -16
  9. data/lib/splash/cli/config.rb +12 -1
  10. data/lib/splash/cli/daemon.rb +41 -1
  11. data/lib/splash/cli/logs.rb +144 -48
  12. data/lib/splash/cli/process.rb +145 -52
  13. data/lib/splash/cli/transfers.rb +213 -0
  14. data/lib/splash/cli/webadmin.rb +3 -3
  15. data/lib/splash/commands.rb +85 -19
  16. data/lib/splash/config.rb +145 -52
  17. data/lib/splash/config/flush.rb +2 -2
  18. data/lib/splash/constants.rb +7 -3
  19. data/lib/splash/daemon/metrics.rb +6 -6
  20. data/lib/splash/daemon/orchestrator.rb +76 -36
  21. data/lib/splash/daemon/orchestrator/grammar.rb +16 -1
  22. data/lib/splash/dependencies.rb +6 -1
  23. data/lib/splash/exiter.rb +1 -1
  24. data/lib/splash/helpers.rb +12 -3
  25. data/lib/splash/loggers/cli.rb +2 -10
  26. data/lib/splash/logs.rb +94 -16
  27. data/lib/splash/processes.rb +91 -16
  28. data/lib/splash/transfers.rb +229 -0
  29. data/lib/splash/webadmin.rb +3 -3
  30. data/lib/splash/webadmin/api/routes/commands.rb +2 -2
  31. data/lib/splash/webadmin/api/routes/config.rb +95 -2
  32. data/lib/splash/webadmin/api/routes/logs.rb +32 -17
  33. data/lib/splash/webadmin/api/routes/process.rb +21 -9
  34. data/lib/splash/webadmin/api/routes/sequences.rb +2 -2
  35. data/lib/splash/webadmin/main.rb +3 -0
  36. data/lib/splash/webadmin/portal/controllers/commands.rb +2 -0
  37. data/lib/splash/webadmin/portal/controllers/documentation.rb +2 -0
  38. data/lib/splash/webadmin/portal/controllers/home.rb +24 -0
  39. data/lib/splash/webadmin/portal/controllers/logs.rb +57 -1
  40. data/lib/splash/webadmin/portal/controllers/processes.rb +61 -3
  41. data/lib/splash/webadmin/portal/controllers/proxy.rb +12 -3
  42. data/lib/splash/webadmin/portal/controllers/restclient.rb +6 -1
  43. data/lib/splash/webadmin/portal/controllers/sequences.rb +2 -0
  44. data/lib/splash/webadmin/portal/public/css/ultragreen.css +6 -0
  45. data/lib/splash/webadmin/portal/public/favicon.ico +0 -0
  46. data/lib/splash/webadmin/portal/views/commands.slim +1 -1
  47. data/lib/splash/webadmin/portal/views/documentation.slim +1 -1
  48. data/lib/splash/webadmin/portal/views/home.slim +53 -9
  49. data/lib/splash/webadmin/portal/views/layout.slim +2 -2
  50. data/lib/splash/webadmin/portal/views/log_form.slim +24 -0
  51. data/lib/splash/webadmin/portal/views/log_history.slim +24 -0
  52. data/lib/splash/webadmin/portal/views/logs.slim +93 -21
  53. data/lib/splash/webadmin/portal/views/nav.slim +1 -1
  54. data/lib/splash/webadmin/portal/views/not_found.slim +1 -1
  55. data/lib/splash/webadmin/portal/views/process_form.slim +21 -0
  56. data/lib/splash/webadmin/portal/views/process_history.slim +24 -0
  57. data/lib/splash/webadmin/portal/views/processes.slim +73 -3
  58. data/lib/splash/webadmin/portal/views/proxy.slim +5 -2
  59. data/lib/splash/webadmin/portal/views/restclient.slim +7 -4
  60. data/lib/splash/webadmin/portal/views/restclient_result.slim +24 -20
  61. data/lib/splash/webadmin/portal/views/sequences.slim +1 -1
  62. data/prometheus-splash.gemspec +7 -4
  63. data/ultragreen_roodi_coding_convention.yml +4 -4
  64. metadata +71 -8
@@ -1,5 +1,7 @@
1
1
  WebAdminApp.get '/sequences' do
2
2
  get_menu 3
3
+ log = get_logger
4
+ log.call "WEB : sequences, verb : GET, controller : /sequences"
3
5
  url = "http://#{get_config.webadmin_ip}:#{get_config.webadmin_port}/api/sequences/list.yml"
4
6
  raw = RestClient::Request.execute(method: 'GET', url: url,timeout: 10)
5
7
  @data = YAML::load(raw)[:data]
@@ -10,7 +10,13 @@
10
10
  height: 7em;
11
11
  }
12
12
 
13
+ h2 {
14
+ color: green;
15
+ }
13
16
 
17
+ .error {
18
+ color: red;
19
+ }
14
20
 
15
21
  .wrapper {
16
22
  overflow-y:scroll;
@@ -1,4 +1,4 @@
1
- h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Commands configured in Splash
1
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Commands configured in Splash
2
2
 
3
3
  div.uk-width-medium-1-1
4
4
  div.uk-panel.uk-panel-box
@@ -1,3 +1,3 @@
1
- h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medkit "></i>&nbsp;&nbsp;Splash Documentation
1
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medkit "></i>&nbsp;&nbsp;Splash Documentation
2
2
  div
3
3
  == "#{@data}"
@@ -1,12 +1,58 @@
1
- h2 This is Splash
2
- p Choose a activity in the main menu
1
+ javascript:
2
+
3
+
4
+
5
+ $('body').on( 'click','button', function(){
6
+ var tmp = this.id
7
+ $("#stop").prop('disabled', true);
8
+ $("#start").prop('disabled', true);
9
+ var url = "/daemon/" + tmp;
10
+ $("#stop").prop('disabled', true);
11
+ $("#start").prop('disabled', true);
12
+ $.get(url, function( data ) {
13
+
14
+ console.log(data);
15
+ if (data == 'stop') {
16
+ $("#stop").prop('disabled', true);
17
+ $("#start").prop('disabled', false);
18
+ $("#daemon").removeClass('uk-badge-success').addClass('uk-badge-danger');
19
+ $("#daemon").text('OFF');
20
+ }
21
+ if (data == 'start') {
22
+ $("#stop").prop('disabled', false);
23
+ $("#start").prop('disabled', true);
24
+ $("#daemon").removeClass('uk-badge-danger').addClass('uk-badge-success');
25
+ $("#daemon").text('ON');
26
+ }
27
+ });
28
+ });
29
+
30
+ div.uk-grid
31
+ div.uk-width-medium-1-1
32
+ div.uk-panel.uk-panel-box
33
+ div.uk-grid
34
+ div.uk-width-1-3.uk-text-large.uk-text-bold.uk-text-success <i class="uk-icon-cogs uk-icon-justify uk-icon-large"></i>&nbsp;&nbsp;Splash Daemon status
35
+ div.uk-width-1-3
36
+ b Actions :
37
+ div.uk-button-group
38
+ - if @status == false
39
+ button.uk-button(id="start" disabled): i.uk-icon-play
40
+ button.uk-button(id="stop"): i.uk-icon-stop
41
+ - else
42
+ button.uk-button(id="start"): i.uk-icon-play
43
+ button.uk-button(id="stop" disabled): i.uk-icon-stop
44
+ div.uk-width-1-3
45
+ b Status :
46
+ - if @status == false
47
+ div.uk-badge.uk-badge-success.uk-badge-notifications(id="daemon") ON
48
+ - else
49
+ div.uk-badge.uk-badge-danger.uk-badge-notifications(id="daemon") OFF
3
50
 
4
51
 
5
52
  div.uk-grid
6
53
  div.uk-width-medium-1-2
7
54
  div.uk-panel.uk-panel-box
8
- span.uk-text-large.uk-text-bold Global Configuration
9
- br
55
+ span.uk-text-large.uk-text-bold.uk-text-success Global Configuration
10
56
  br
11
57
  span.uk-text-bold <i>Logger and display</i> :
12
58
  ul
@@ -21,8 +67,7 @@ div.uk-grid
21
67
 
22
68
  div.uk-width-medium-1-2
23
69
  div.uk-panel.uk-panel-box
24
- span.uk-text-large.uk-text-bold Transport and Backend
25
- br
70
+ span.uk-text-large.uk-text-bold.uk-text-success Transport and Backend
26
71
  br
27
72
  span.uk-text-bold <i>Backend</i> :
28
73
  ul
@@ -48,7 +93,7 @@ div.uk-grid
48
93
  div.uk-grid
49
94
  div.uk-width-medium-1-2
50
95
  div.uk-panel.uk-panel-box
51
- span.uk-text-large.uk-text-bold Daemon
96
+ span.uk-text-large.uk-text-bold.uk-text-success Daemon
52
97
  br
53
98
  ul
54
99
  li <b>Logs monitoring scheduling: </b> #{@data[:daemon_logmon_scheduling]}
@@ -64,8 +109,7 @@ div.uk-grid
64
109
 
65
110
  div.uk-width-medium-1-2
66
111
  div.uk-panel.uk-panel-box
67
- span.uk-text-large.uk-text-bold Web UI
68
- br
112
+ span.uk-text-large.uk-text-bold.uk-text-success Web UI
69
113
  br
70
114
  span.uk-text-bold <i>Webadmin</i> :
71
115
  ul
@@ -11,8 +11,7 @@ html lang="fr-fr" dir="ltr"
11
11
  link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/uikit.gradient.min.css" integrity="sha512-Vjr6Vz5D/gNvTBfQW581ssADQr1j8fAOU0seE2SxO8UvsCBZBoFQS9Lec3hkmZbpcYnsifkBtdQaHU4x6MylGw==" crossorigin="anonymous"
12
12
  link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/components/sticky.gradient.css" integrity="sha512-BY0A+4FEGeikNxmo9Q30BZMGRDykKHScJlOSeGq0uq+ylGDJD3zAApnktyKv9tzira1p0ow+B7VqIlRR2CBWoA==" crossorigin="anonymous"
13
13
  link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/components/accordion.gradient.min.css" integrity="sha512-Cfd5PRktfT5WA1yUJbYkzjEHvT+9KzqPP1Z1OJud3CFUrkoAc6iIWawoMqPFmtvmxxDNV5RAHfe5DCISV+Gd9A==" crossorigin="anonymous"
14
-
15
-
14
+ link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/components/notify.gradient.min.css" integrity="sha512-HOJctZ/0ww0jFHLHNlNODVEwKf1QxiDKyt3TQZRYZl7e7QSi6whfokIvuMJRoUwykB1SXW4eBeK6MecW4TWFFA==" crossorigin="anonymous"
16
15
 
17
16
  link rel="stylesheet" href="/css/ultragreen.css"
18
17
 
@@ -20,6 +19,7 @@ html lang="fr-fr" dir="ltr"
20
19
  script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/uikit.min.js" integrity="sha512-KI08ZutCgdasDMwp5rPKd9nF8r+eAy/bZH3Rjova6HfkDv1W7J72sNW+K++KvMp3HL7z0cCykV9vixJACHeCew==" crossorigin="anonymous"
21
20
  script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/components/sticky.min.js" integrity="sha512-B21PoHN5PsI7sU3cUcNbitUsXp6Zzp81ZDlKJr1xRXwEh3WSftRmgSOgRYxB8h/SlgW+jazkmOXerT33NB7jGA==" crossorigin="anonymous"
22
21
  script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/components/accordion.min.js" integrity="sha512-7UmYoHJ9tTZiNqlBuUgnr2l82TmZxhiOVXIjiMVP/hPFQJopjEBfVEFPjNdv97OX8K/FIZ4kAXSE+SRTfUkPMg==" crossorigin="anonymous"
22
+ script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/components/notify.min.js" integrity="sha512-gaUF+WYo5jZ2OjLCBfhz+4NAtt0YHDtcxulSv6/+1xDP9QysfsqljFadHN6sWkLvyXzKtQ7efofABRJfWOVwtw==" crossorigin="anonymous"
23
23
 
24
24
 
25
25
  body
@@ -0,0 +1,24 @@
1
+ - unless @data.empty?
2
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Modify Splash log monitoring : #{@data[:label]}
3
+ - else
4
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Add new Splash log monitoring
5
+
6
+ script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js"
7
+
8
+ form.uk-form.uk-form-horizontal#query action="/save_log" method="POST"
9
+ label.uk-form-label for="label" Label
10
+ <input class="uk-form-width-large" id="label" type="text" placeholder="label" name="label" value="#{@data[:label].to_s}" required>
11
+ div &nbsp;
12
+ label.uk-form-label for="pattern" Pattern
13
+ <input class="uk-form-width-large" id="pattern" type="text" placeholder="pattern" name="pattern" value="#{@data[:pattern]}" required>
14
+ div &nbsp;
15
+ label.uk-form-label for="log" Log file
16
+ <input class="uk-form-width-large" id="log" type="text" placeholder="log" name="log" value="#{@data[:log]}" required>
17
+ div &nbsp;
18
+ - unless @data.empty?
19
+ input type="hidden" name="update" value="true"
20
+ input type="hidden" name="old_label" value="#{@data[:old_label].to_s}"
21
+ div.uk-align-right
22
+ input.uk-button.uk-button-small-primary type="submit" value="Submit"
23
+ javascript:
24
+ $("#query").validate();
@@ -0,0 +1,24 @@
1
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;History for log #{@label} monitoring
2
+
3
+
4
+ -
5
+ div.uk-width-medium-1-1
6
+ div.uk-panel.uk-panel-box
7
+ span.uk-text-large.uk-text-bold List of records
8
+ br
9
+ table#logrecords.uk-table.uk-table-hover.uk-table-striped
10
+ thead
11
+ tr
12
+ th Date
13
+ th File
14
+ th Status
15
+ th Nb Errors
16
+ th Full Nb of lines
17
+ tbody
18
+ - @data.each do |key|
19
+ tr
20
+ td #{key.keys.first}
21
+ td #{key[key.keys.first][:file]}
22
+ td #{key[key.keys.first][:status]}
23
+ td #{key[key.keys.first][:errors]}
24
+ td #{key[key.keys.first][:lines]}
@@ -1,32 +1,104 @@
1
- h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Logs configured in Splash
1
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Logs configured in Splash
2
+
3
+
4
+ - unless @log_saved.nil?
5
+ javascript:
6
+ UIkit.notify("Log record #{@log_saved} saved", {status:'success'});
7
+ - unless @log_failed.nil?
8
+ javascript:
9
+ UIkit.notify("Log record #{@log_saved} not saved", {status:'danger'});
10
+
11
+
12
+ javascript:
13
+ $(document).on( 'click','input.delete-log',function(){
14
+ var id = this.id;
15
+ var url = "/api/config/deletelog/" + id + ".json";
16
+ UIkit.modal.confirm('Are you sure?', function(){
17
+ console.debug(url)
18
+ $.ajax({
19
+ url: url,
20
+ type: 'DELETE',
21
+ success: function( data ) {
22
+ console.debug(data)
23
+ if (data['status'] == 'success') {
24
+ $('table#logrecords tr#' + id).remove();
25
+ UIkit.notify("Deleting log for " + id + " done", {status:'success'});
26
+ }
27
+ else
28
+ {
29
+ UIkit.notify("Deleting log for " + id + " failed !", {status:'danger'});
30
+ }
31
+ },
32
+ error: function(e) {
33
+ UIkit.notify("Deleting log for " + id + " failed !", {status:'danger'});
34
+ }
35
+ });
36
+ });
37
+ });
38
+
39
+ $(document).on( 'click','input.monitor-log',function(){
40
+ var url = "/api/logs/monitor.json";
41
+ UIkit.modal.confirm('Are you sure?', function(){
42
+ console.debug(url)
43
+ $.ajax({
44
+ url: url,
45
+ type: 'POST',
46
+ success: function( data ) {
47
+ console.debug(data)
48
+ if (data['status'] == 'success') {
49
+ UIkit.notify("Forced monitoring done", {status:'success'});
50
+ }
51
+ else
52
+ {
53
+ UIkit.notify("Forced monitoring failed !", {status:'danger'});
54
+ }
55
+ },
56
+ error: function(e) {
57
+ UIkit.notify("Forced monitoring failed !", {status:'danger'});
58
+ }
59
+ });
60
+ });
61
+ });
2
62
 
3
63
  div.uk-width-medium-1-1
4
64
  div.uk-panel.uk-panel-box
5
65
  span.uk-text-large.uk-text-bold List of logs monitored
6
66
  br
7
- table.uk-table.uk-table-hover.uk-table-striped
67
+ table#logrecords.uk-table.uk-table-hover.uk-table-striped
8
68
  thead
9
69
  tr
10
70
  th Log record label
11
71
  th Definition
12
72
  th Status
13
- tbody
14
- - @data.each do |log|
15
- tr
16
- td <b>Label</b> : #{log[:label]}
17
- td
73
+ th Actions
74
+ tbody
75
+ - @data.each do |log|
76
+ tr id="#{log[:label].to_s}"
77
+ td <b>Label</b> : #{log[:label]}
78
+ td
79
+ ul
80
+ li <b>File</b> : #{log[:log]}
81
+ li <b>Pattern</b> : #{log[:pattern]}
82
+ td
83
+ - if @result[log[:label]][:status] == :missing
84
+ div.uk-badge.uk-badge-warning missing
85
+ - if @result[log[:label]][:status] == :clean
86
+ div.uk-badge.uk-badge-success success
87
+ ul
88
+ li <b>Lines count</b> : #{@result[log[:label]][:lines]}
89
+ - if @result[log[:label]][:status] == :matched
90
+ div.uk-badge.uk-badge-danger matched
18
91
  ul
19
- li <b>File</b> : #{log[:log]}
20
- li <b>Pattern</b> : #{log[:pattern]}
21
- td
22
- - if @result[log[:label]][:status] == :missing
23
- div.uk-badge.uk-badge-warning missing
24
- - if @result[log[:label]][:status] == :clean
25
- div.uk-badge.uk-badge-success success
26
- ul
27
- li <b>Lines count</b> : #{@result[log[:label]][:lines]}
28
- - if @result[log[:label]][:status] == :matched
29
- div.uk-badge.uk-badge-danger matched
30
- ul
31
- li <b>Lines count</b> : #{@result[log[:label]][:lines]}
32
- li <b class="uk-text-danger">Matchs count : #{@result[log[:label]][:count]} </b>
92
+ li <b>Lines count</b> : #{@result[log[:label]][:lines]}
93
+ li <b class="uk-text-danger">Matchs count : #{@result[log[:label]][:count]} </b>
94
+ td
95
+ input.delete-log.uk-button.uk-button-mini.uk-button-danger id="#{log[:label].to_s}" value="Delete"
96
+ br
97
+ input.modify-log.uk-button.uk-button-mini.uk-button-primary id="#{log[:label].to_s}" value="Modify" onclick="location.href='/add_modify_log/#{log[:label].to_s}';"
98
+ br
99
+ input.history-log.uk-button.uk-button-mini.uk-button-primary id="#{log[:label].to_s}" value="History" onclick="location.href='/get_log_history/#{log[:label].to_s}';"
100
+ div.uk-align-right
101
+ form.uk-form.uk-form-horizontal#query action="/add_modify_log" method="GET"
102
+ div &nbsp;
103
+ input.monitor-log.uk-button value="Force monitoring"&nbsp;
104
+ input.add-log.uk-button type="submit" value="Add new log"
@@ -3,7 +3,7 @@ nav.uk-navbar.uk-navbar-attached(data-uk-sticky)
3
3
  ul.uk-navbar-nav.uk-hidden-small
4
4
  - for item in @menu
5
5
  li class=( (item == @current_item)? "uk-active" : "uk-inactive")
6
- a href="/#{item.downcase}" title="Access to #{item.capitalize}" <i class="uk-icon-#{@menu_icons[item]}"></i> #{item.capitalize}
6
+ a.uk-navbar-nav-subtitle href="/#{item.downcase}" title="Access to #{item.capitalize}" <i class="uk-icon-#{@menu_icons[item]}"></i><div> #{item.capitalize}</div>
7
7
  a.uk-navbar-toggle.uk-visible-small(href="#offcanvas" data-uk-offcanvas)
8
8
  div.uk-navbar-brand.uk-navbar-left.uk-visible-small
9
9
  <i class="uk-icon-arrow-left"></i> Menu
@@ -1,3 +1,3 @@
1
- h2 404 : Page not found
1
+ h2.uk-text-danger 404 : Page not found
2
2
  p Ressource or page #{@path} not found
3
3
  p Please click <a href='/'>here</a> to return home
@@ -0,0 +1,21 @@
1
+ - unless @data.empty?
2
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Modify Splash process monitoring : #{@data[:process]}
3
+ - else
4
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Add new Splash process monitoring
5
+
6
+ script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js"
7
+
8
+ form.uk-form.uk-form-horizontal#query action="/save_process" method="POST"
9
+ label.uk-form-label for="process" Process
10
+ <input class="uk-form-width-large" id="process" type="text" placeholder="process" name="process" value="#{@data[:process].to_s}" required>
11
+ div &nbsp;
12
+ label.uk-form-label for="patterns" Patterns
13
+ <input class="uk-form-width-large" id="patterns" type="text" placeholder="patterns" name="patterns" value="#{@data[:patterns]}" required>
14
+ div &nbsp;
15
+ - unless @data.empty?
16
+ input type="hidden" name="update" value="true"
17
+ input type="hidden" name="old_process" value="#{@data[:old_process].to_s}"
18
+ div.uk-align-right
19
+ input.uk-button.uk-button-small-primary type="submit" value="Submit"
20
+ javascript:
21
+ $("#query").validate();
@@ -0,0 +1,24 @@
1
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;History for process #{@process} monitoring
2
+
3
+
4
+ -
5
+ div.uk-width-medium-1-1
6
+ div.uk-panel.uk-panel-box
7
+ span.uk-text-large.uk-text-bold List of records
8
+ br
9
+ table#logrecords.uk-table.uk-table-hover.uk-table-striped
10
+ thead
11
+ tr
12
+ th Date
13
+ th Process
14
+ th Status
15
+ th % CPU
16
+ th % MEM
17
+ tbody
18
+ - @data.each do |key|
19
+ tr
20
+ td #{key.keys.first}
21
+ td #{key[key.keys.first][:process]}
22
+ td #{key[key.keys.first][:status]}
23
+ td #{key[key.keys.first][:cpu]}
24
+ td #{key[key.keys.first][:mem]}
@@ -1,10 +1,69 @@
1
- h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Processes configured in Splash
1
+ h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Processes configured in Splash
2
+
3
+ - unless @process_saved.nil?
4
+ javascript:
5
+ UIkit.notify("Process record #{@process_saved} saved", {status:'success'});
6
+ - unless @process_failed.nil?
7
+ javascript:
8
+ UIkit.notify("Process record #{@process_saved} not saved", {status:'danger'});
9
+
10
+
11
+ javascript:
12
+ $(document).on( 'click','input.delete-process',function(){
13
+ var id = this.id;
14
+ var url = "/api/config/deleteprocess/" + id + ".json";
15
+ UIkit.modal.confirm('Are you sure?', function(){
16
+ console.debug(url)
17
+ $.ajax({
18
+ url: url,
19
+ type: 'DELETE',
20
+ success: function( data ) {
21
+ console.debug(data)
22
+ if (data['status'] == 'success') {
23
+ $('table#processrecords tr#' + id).remove();
24
+ UIkit.notify("Deleting process for " + id + " done", {status:'success'});
25
+ }
26
+ else
27
+ {
28
+ UIkit.notify("Deleting process for " + id + " failed !", {status:'danger'});
29
+ }
30
+ },
31
+ error: function(e) {
32
+ UIkit.notify("Deleting process for " + id + " failed !", {status:'danger'});
33
+ }
34
+ });
35
+ });
36
+ });
37
+
38
+ $(document).on( 'click','input.monitor-process',function(){
39
+ var url = "/api/processes/monitor.json";
40
+ UIkit.modal.confirm('Are you sure?', function(){
41
+ console.debug(url)
42
+ $.ajax({
43
+ url: url,
44
+ type: 'POST',
45
+ success: function( data ) {
46
+ console.debug(data)
47
+ if (data['status'] == 'success') {
48
+ UIkit.notify("Forced monitoring done", {status:'success'});
49
+ }
50
+ else
51
+ {
52
+ UIkit.notify("Forced monitoring failed !", {status:'danger'});
53
+ }
54
+ },
55
+ error: function(e) {
56
+ UIkit.notify("Forced monitoring failed !", {status:'danger'});
57
+ }
58
+ });
59
+ });
60
+ });
2
61
 
3
62
  div.uk-width-medium-1-1
4
63
  div.uk-panel.uk-panel-box
5
64
  span.uk-text-large.uk-text-bold List of processes monitored
6
65
  br
7
- table.uk-table.uk-table-hover.uk-table-striped
66
+ table#processrecords.uk-table.uk-table-hover.uk-table-striped
8
67
  thead
9
68
  tr
10
69
  th Process record
@@ -12,7 +71,7 @@ div.uk-width-medium-1-1
12
71
  th Status
13
72
  tbody
14
73
  - @data.each do |process|
15
- tr
74
+ tr id="#{process[:process].to_s}"
16
75
  td <b>Process</b> : #{process[:process]}
17
76
  td
18
77
  span.uk-text-bold Patterns
@@ -27,3 +86,14 @@ div.uk-width-medium-1-1
27
86
  ul
28
87
  li <b>CPU usage</b> : #{@result[process[:process]][:cpu]}
29
88
  li <b>MEM usage</b> : #{@result[process[:process]][:mem]}
89
+ td
90
+ input.delete-process.uk-button.uk-button-mini.uk-button-danger id="#{process[:process].to_s}" value="Delete"
91
+ br
92
+ input.modify-process.uk-button.uk-button-mini.uk-button-primary id="#{process[:process].to_s}" value="Modify" onclick="location.href='/add_modify_process/#{process[:process].to_s}';"
93
+ br
94
+ input.history-process.uk-button.uk-button-mini.uk-button-primary id="#{process[:process].to_s}" value="History" onclick="location.href='/get_process_history/#{process[:process].to_s}';"
95
+ div.uk-align-right
96
+ form.uk-form.uk-form-horizontal#query action="/add_modify_process" method="GET"
97
+ div &nbsp;
98
+ input.monitor-process.uk-button value="Force monitoring"&nbsp;
99
+ input.add-process.uk-button type="submit" value="Add new process"