1 {% extends
"base.html" %}
6 $(document).ready(function(){
7 // Pre-populated initial data at page load
8 var content_data = {{ content_data }};
10 var refresh = function() {
11 $.get(
"/osd/list_data/", function(data) {
12 content_data.osds_by_server = data;
13 $('.inlinesparkline').sparkline();
14 setTimeout(refresh,
5000);
18 rivets.formatters.colored_up_in = function(osd){
21 result +=
"<span style='color:#00bb00;'>up</span>";
23 result +=
"<span style='color:#bb0000;'>down</span>";
29 result +=
"<span style='color:#00bb00;'>in</span>";
31 result +=
"<span style='color:#bb0000;'>out</span>";
37 rivets.formatters.sparkline_data = function(time_series) {
39 for (var i =
1; i < time_series.length; ++i) {
40 var delta_v = time_series[i][
1] - time_series[i -
1][
1];
41 var delta_t = time_series[i][
0] - time_series[i -
1][
0];
42 result += (delta_v / delta_t +
",");
47 rivets.bind($(
"div#content"), content_data);
48 $('.inlinesparkline').sparkline();
49 setTimeout(refresh,
5000);
53 <section class=
"content-header">
59 <section class=
"content">
61 <div class=
"box-body">
63 <table class=
"table table-condensed table-bordered">
78 <tbody rv-each-server=
"osds_by_server">
79 <tr rv-each-osd=
"server.1">
80 <td rv-if=
"osd.first" rv-rowspan=
"server.1 | length">{server
.0}
</td>
81 <td><a rv-href=
"osd.url">{osd.id}
</a></td>
82 <td rv-html=
"osd | colored_up_in"></td>
83 <td>{osd.stats.numpg}
</td>
84 <td>{osd.stats.stat_bytes_used | dimless_binary} / {osd.stats.stat_bytes | dimless_binary}
</td>
85 <td>{osd.stats.op_out_bytes | dimless_binary}/s
<span class=
"inlinesparkline" rv-html=
"osd.stats_history.op_out_bytes | sparkline_data"></span></td>
86 <td>{osd.stats.op_in_bytes | dimless_binary}/s
<span class=
"inlinesparkline" rv-html=
"osd.stats_history.op_in_bytes | sparkline_data"></span></td>
87 <td>{osd.stats.op_r | dimless}/s
</td>
88 <td>{osd.stats.op_w | dimless}/s
</td>