prometheus-splash 0.6.1 → 0.8.3
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/CHANGELOG.md +43 -1
- data/README.md +1 -1
- data/config/splash.yml +45 -5
- data/lib/splash/backends.rb +1 -0
- data/lib/splash/cli.rb +2 -1
- data/lib/splash/cli/commands.rb +125 -5
- data/lib/splash/cli/daemon.rb +41 -1
- data/lib/splash/cli/logs.rb +111 -47
- data/lib/splash/cli/process.rb +112 -52
- data/lib/splash/cli/sequences.rb +2 -0
- data/lib/splash/cli/transfers.rb +213 -0
- data/lib/splash/cli/webadmin.rb +3 -3
- data/lib/splash/commands.rb +85 -19
- data/lib/splash/config.rb +142 -52
- data/lib/splash/constants.rb +7 -3
- data/lib/splash/daemon/metrics.rb +6 -6
- data/lib/splash/daemon/orchestrator.rb +76 -36
- data/lib/splash/daemon/orchestrator/grammar.rb +16 -1
- data/lib/splash/dependencies.rb +6 -1
- data/lib/splash/exiter.rb +1 -1
- data/lib/splash/helpers.rb +12 -3
- data/lib/splash/loggers/cli.rb +2 -10
- data/lib/splash/logs.rb +90 -16
- data/lib/splash/processes.rb +87 -16
- data/lib/splash/transfers.rb +229 -0
- data/lib/splash/webadmin.rb +3 -3
- data/lib/splash/webadmin/api/routes/commands.rb +2 -2
- data/lib/splash/webadmin/api/routes/config.rb +53 -2
- data/lib/splash/webadmin/api/routes/logs.rb +32 -17
- data/lib/splash/webadmin/api/routes/process.rb +4 -4
- data/lib/splash/webadmin/api/routes/sequences.rb +28 -0
- data/lib/splash/webadmin/main.rb +1 -0
- data/lib/splash/webadmin/portal/controllers/commands.rb +2 -0
- data/lib/splash/webadmin/portal/controllers/documentation.rb +3 -1
- data/lib/splash/webadmin/portal/controllers/home.rb +24 -0
- data/lib/splash/webadmin/portal/controllers/logs.rb +44 -1
- data/lib/splash/webadmin/portal/controllers/processes.rb +2 -0
- data/lib/splash/webadmin/portal/controllers/proxy.rb +13 -4
- data/lib/splash/webadmin/portal/controllers/restclient.rb +7 -2
- data/lib/splash/webadmin/portal/controllers/sequences.rb +9 -0
- data/lib/splash/webadmin/portal/init.rb +2 -2
- data/lib/splash/webadmin/portal/public/css/ultragreen.css +6 -0
- data/lib/splash/webadmin/portal/public/favicon.ico +0 -0
- data/lib/splash/webadmin/portal/views/commands.slim +1 -1
- data/lib/splash/webadmin/portal/views/documentation.slim +1 -1
- data/lib/splash/webadmin/portal/views/home.slim +53 -9
- data/lib/splash/webadmin/portal/views/layout.slim +2 -2
- data/lib/splash/webadmin/portal/views/logs.slim +68 -21
- data/lib/splash/webadmin/portal/views/logs_form.slim +24 -0
- data/lib/splash/webadmin/portal/views/nav.slim +1 -1
- data/lib/splash/webadmin/portal/views/not_found.slim +1 -1
- data/lib/splash/webadmin/portal/views/processes.slim +1 -1
- data/lib/splash/webadmin/portal/views/proxy.slim +5 -2
- data/lib/splash/webadmin/portal/views/restclient.slim +7 -4
- data/lib/splash/webadmin/portal/views/restclient_result.slim +24 -20
- data/lib/splash/webadmin/portal/views/sequences.slim +50 -0
- data/prometheus-splash.gemspec +7 -4
- data/ultragreen_roodi_coding_convention.yml +4 -4
- metadata +75 -12
@@ -0,0 +1,9 @@
|
|
1
|
+
WebAdminApp.get '/sequences' do
|
2
|
+
get_menu 3
|
3
|
+
log = get_logger
|
4
|
+
log.call "WEB : sequences, verb : GET, controller : /sequences"
|
5
|
+
url = "http://#{get_config.webadmin_ip}:#{get_config.webadmin_port}/api/sequences/list.yml"
|
6
|
+
raw = RestClient::Request.execute(method: 'GET', url: url,timeout: 10)
|
7
|
+
@data = YAML::load(raw)[:data]
|
8
|
+
slim :sequences, :format => :html
|
9
|
+
end
|
@@ -4,8 +4,8 @@ Dir[File.dirname(__FILE__) + '/helpers/*.rb'].each {|file| require file unless
|
|
4
4
|
Slim::Engine.set_options pretty: true
|
5
5
|
|
6
6
|
def get_menu(current)
|
7
|
-
@menu = ['Logs','Processes','Commands','RestCLIENT','Proxy/Links','Documentation']
|
8
|
-
@menu_icons = {'Logs' => "file-text",'Processes' => "cogs",'Commands' => 'play-circle-o','RestCLIENT' => "server",'Proxy/Links' => 'random','Documetation' => 'medkit'}
|
7
|
+
@menu = ['Logs','Processes','Commands','Sequences','RestCLIENT','Proxy/Links','Documentation']
|
8
|
+
@menu_icons = {'Logs' => "file-text",'Processes' => "cogs",'Commands' => 'play-circle-o','Sequences' => "cubes",'RestCLIENT' => "server",'Proxy/Links' => 'random','Documetation' => 'medkit'}
|
9
9
|
@current_item = nil
|
10
10
|
@current_item = @menu[current] unless current == -1
|
11
11
|
end
|
Binary file
|
@@ -1,4 +1,4 @@
|
|
1
|
-
h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Commands configured in Splash
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Commands configured in Splash
|
2
2
|
|
3
3
|
div.uk-width-medium-1-1
|
4
4
|
div.uk-panel.uk-panel-box
|
@@ -1,12 +1,58 @@
|
|
1
|
-
|
2
|
-
|
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> 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
|
@@ -1,32 +1,79 @@
|
|
1
|
-
h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Logs configured in Splash
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> 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
|
+
});
|
2
38
|
|
3
39
|
div.uk-width-medium-1-1
|
4
40
|
div.uk-panel.uk-panel-box
|
5
41
|
span.uk-text-large.uk-text-bold List of logs monitored
|
6
42
|
br
|
7
|
-
table.uk-table.uk-table-hover.uk-table-striped
|
43
|
+
table#logrecords.uk-table.uk-table-hover.uk-table-striped
|
8
44
|
thead
|
9
45
|
tr
|
10
46
|
th Log record label
|
11
47
|
th Definition
|
12
48
|
th Status
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
49
|
+
th Actions
|
50
|
+
tbody
|
51
|
+
- @data.each do |log|
|
52
|
+
tr id="#{log[:label].to_s}"
|
53
|
+
td <b>Label</b> : #{log[:label]}
|
54
|
+
td
|
55
|
+
ul
|
56
|
+
li <b>File</b> : #{log[:log]}
|
57
|
+
li <b>Pattern</b> : #{log[:pattern]}
|
58
|
+
td
|
59
|
+
- if @result[log[:label]][:status] == :missing
|
60
|
+
div.uk-badge.uk-badge-warning missing
|
61
|
+
- if @result[log[:label]][:status] == :clean
|
62
|
+
div.uk-badge.uk-badge-success success
|
63
|
+
ul
|
64
|
+
li <b>Lines count</b> : #{@result[log[:label]][:lines]}
|
65
|
+
- if @result[log[:label]][:status] == :matched
|
66
|
+
div.uk-badge.uk-badge-danger matched
|
18
67
|
ul
|
19
|
-
li <b>
|
20
|
-
li <b>
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
li <b>Lines count</b> : #{@result[log[:label]][:lines]}
|
32
|
-
li <b class="uk-text-danger">Matchs count : #{@result[log[:label]][:count]} </b>
|
68
|
+
li <b>Lines count</b> : #{@result[log[:label]][:lines]}
|
69
|
+
li <b class="uk-text-danger">Matchs count : #{@result[log[:label]][:count]} </b>
|
70
|
+
td
|
71
|
+
input.delete-log.uk-button.uk-button-mini.uk-button-danger id="#{log[:label].to_s}" value="Delete"
|
72
|
+
br
|
73
|
+
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}';"
|
74
|
+
br
|
75
|
+
input.history-log.uk-button.uk-button-mini.uk-button-primary id="#{log[:label].to_s}" value="History" onclick="location.href='/history/#{log[:label].to_s}';"
|
76
|
+
div.uk-align-right
|
77
|
+
form.uk-form.uk-form-horizontal#query action="/add_modify_log" method="GET"
|
78
|
+
div
|
79
|
+
input.add-log.uk-button type="submit" value="Add new log"
|
@@ -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> 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> 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
|
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
|
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
|
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();
|
@@ -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,4 +1,4 @@
|
|
1
|
-
h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Processes configured in Splash
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Processes configured in Splash
|
2
2
|
|
3
3
|
div.uk-width-medium-1-1
|
4
4
|
div.uk-panel.uk-panel-box
|
@@ -1,7 +1,7 @@
|
|
1
1
|
- if @proxy
|
2
|
-
h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Proxies for Prometheus components
|
2
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Proxies for Prometheus components
|
3
3
|
- else
|
4
|
-
h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Links for Prometheus components
|
4
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Links for Prometheus components
|
5
5
|
div.uk-width-medium-1-1
|
6
6
|
div.uk-panel.uk-panel-box
|
7
7
|
ul.uk-list
|
@@ -11,3 +11,6 @@ div.uk-width-medium-1-1
|
|
11
11
|
li
|
12
12
|
i.uk-icon-hand-o-right
|
13
13
|
a href="#{@pushgateway_url}" Prometheus PushGateway
|
14
|
+
li
|
15
|
+
i.uk-icon-hand-o-right
|
16
|
+
a href="#{@alertmanager_url}" Prometheus Alertmanager
|
@@ -1,4 +1,4 @@
|
|
1
|
-
h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> REST Client
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> REST Client
|
2
2
|
|
3
3
|
div.uk-grid
|
4
4
|
div.uk-width-1-1
|
@@ -7,7 +7,7 @@ div.uk-grid
|
|
7
7
|
<i class="uk-icon-question-circle"></i> Request
|
8
8
|
form.uk-form.uk-form-horizontal#query action="/restclient/query" method="POST"
|
9
9
|
label.uk-form-label for="method" Method
|
10
|
-
select
|
10
|
+
select#method name="method"
|
11
11
|
option GET
|
12
12
|
option POST
|
13
13
|
option DELETE
|
@@ -15,8 +15,11 @@ div.uk-grid
|
|
15
15
|
div
|
16
16
|
label.uk-form-label for="url" Endpoint
|
17
17
|
input.uk-form-width-large#url type="text" placeholder="url" name="url"
|
18
|
-
|
19
|
-
|
18
|
+
div
|
19
|
+
label.uk-form-label for="body" Body
|
20
|
+
textarea.uk-form-large cols="50" name="body" rows="5" placeholder="body"
|
21
|
+
div.uk-align-right
|
22
|
+
input.uk-button.uk-button-small-primary type="submit" value="Send"
|
20
23
|
|
21
24
|
div.uk-grid
|
22
25
|
div.uk-width-1-1
|
@@ -1,28 +1,32 @@
|
|
1
|
-
|
1
|
+
div
|
2
2
|
ul.uk-list
|
3
3
|
li <b>HTTP Method</b> : #{@method}
|
4
4
|
li <b>URL</b> : #{@url}
|
5
5
|
h3 Result :
|
6
6
|
- unless @result == false
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
7
|
+
div.uk-grid.uk-text-small
|
8
|
+
div.uk-width-1-2
|
9
|
+
table.uk-table
|
10
|
+
tr
|
11
|
+
td.uk-width-2-10
|
12
|
+
i.uk-icon-file-o
|
13
|
+
| <b>Body :</b>
|
14
|
+
td.uk-width-8-10.uk-scrollable-text <pre><code>#{@result}</code></pre>
|
15
|
+
div.uk-width-1-2
|
16
|
+
table.uk-table
|
17
|
+
tr
|
18
|
+
td.uk-width-2-10
|
19
|
+
i.uk-icon-dollar
|
20
|
+
| <b>Return code :</b>
|
21
|
+
td.uk-width-8-10 #{@result.code}
|
22
|
+
tr
|
23
|
+
td.uk-width-2-10
|
24
|
+
i.uk-icon-header
|
25
|
+
| <b>Headers :</b>
|
26
|
+
td.uk-width-8-10
|
27
|
+
ul
|
28
|
+
- @result.headers.each do |hkey,value|
|
29
|
+
li <i><b>#{hkey}:</b> #{value}</i>
|
26
30
|
|
27
31
|
- else
|
28
32
|
div.uk-alert.uk-alert-danger
|
@@ -0,0 +1,50 @@
|
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Sequences configured in Splash
|
2
|
+
|
3
|
+
div.uk-width-medium-1-1
|
4
|
+
div.uk-panel.uk-panel-box
|
5
|
+
span.uk-text-large.uk-text-bold List of sequences availables
|
6
|
+
br
|
7
|
+
|
8
|
+
div.uk-accordion(data-uk-accordion)
|
9
|
+
- @data.each do |sequence,content|
|
10
|
+
h3.uk-accordion-title <b>Name</b> : #{sequence}
|
11
|
+
div.uk-accordion-content
|
12
|
+
table.uk-table.uk-table-hover.uk-table-striped
|
13
|
+
thead
|
14
|
+
tr
|
15
|
+
th Options
|
16
|
+
th Definition
|
17
|
+
th Actions
|
18
|
+
tbody
|
19
|
+
tr
|
20
|
+
td
|
21
|
+
dl.uk-description-list-horizontal
|
22
|
+
|
23
|
+
- if content[:options]
|
24
|
+
- if content[:options][:continue]
|
25
|
+
ul
|
26
|
+
li <i class="uk-icon-check-square-o"></i> <b>Continue execution on error</b> : #{content[:options][:continue]}
|
27
|
+
- if content[:schedule]
|
28
|
+
ul
|
29
|
+
li <i class="uk-icon-calendar"></i> <b>Scheduling</b> :
|
30
|
+
<ul>
|
31
|
+
<li> <b><i>Type</b></i> : #{content[:schedule].keys.first}</li>
|
32
|
+
<li> <b><i>Value</b></i> : #{content[:schedule].values.first}</li>
|
33
|
+
</ul>
|
34
|
+
td
|
35
|
+
dl.uk-description-list-horizontal
|
36
|
+
- content[:definition].each_with_index do |step,i|
|
37
|
+
dt <i class="uk-icon-check-square-o"></i> Step #{i+1} :
|
38
|
+
dd #{step[:step]}
|
39
|
+
ul
|
40
|
+
li <i class="uk-icon-cog"></i> <b>Command</b> : #{step[:command]}
|
41
|
+
- if step[:on_host]
|
42
|
+
li <i class="uk-icon-chevron-circle-right"></i> <b>Remote execution target</b> : #{step[:on_host]}
|
43
|
+
- if not step[:callback].nil?
|
44
|
+
li <i class="uk-icon-share-square-o"></i> <b>Execute Callback</b> : #{step[:callback]}
|
45
|
+
- if not step[:trace].nil?
|
46
|
+
li <i class="uk-icon-pencil-square-o"></i> <b>Trace Execution</b> : #{step[:trace]}
|
47
|
+
- if not step[:notify].nil?
|
48
|
+
li <i class="uk-icon-external-link"></i> <b>Notify Execution in Prometheus</b> : #{step[:notify]}
|
49
|
+
|
50
|
+
td
|