forked from theforeman/foreman
-
Notifications
You must be signed in to change notification settings - Fork 1
/
dashboard_helper.rb
41 lines (36 loc) · 1.34 KB
/
dashboard_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
module DashboardHelper
def count_reports(hosts)
interval = Setting[:puppet_interval] / 10
counter = []
labels = []
start =Time.now.utc - Setting[:puppet_interval].minutes
(1..(Setting[:puppet_interval] / interval)).each do
now = start + interval.minutes
counter << hosts.run_distribution(start, now-1.second).count
labels << "#{time_ago_in_words(start.getlocal)}"
start = now
end
{:labels => labels, :counter =>counter}
end
def render_overview report, options = {}
data = [[:Active, report[:active_hosts]],
[:Error, report[:bad_hosts]],
[:OK, report[:ok_hosts]],
[:'Out of sync', report[:out_of_sync_hosts]],
[:'No report', report[:reports_missing]],
[:'Notification disabled', report[:disabled_hosts]]]
pie_chart 'overview', 'Puppet Clients Activity Overview', data, options
end
def render_run_distribution data, options = {}
bar_chart "run_distribution",
"Run Distribution in the last #{Setting[:puppet_interval]} minutes",
"Number Of Clients",
data[:labels],
data[:counter],
options
end
def searchable_links name, search
search += " and #{params[:search]}" unless params[:search].blank?
link_to name, hosts_path(:search => search)
end
end