</ul>
</li>
<li class="treeview{%if path_info.startswith('/rbd')%} active{%endif%}">
- <a href="#"><i class="fa fa-hdd-o"></i> <span>Block</span>
+ <a href="#">
+ <i class="fa fa-hdd-o"></i> <span>Block</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu menu-open">
- <li rv-each-pool="rbd_pools">
- <a rv-href="pool.url">{pool.name}</a>
+ <li class="treeview{%if path_info.startswith('/rbd_pool')%} active menu-open{%endif%}">
+ <a href="#">
+ <i class="fa fa-dot-circle-o"></i> <span>Pools</span>
+ <span class="pull-right-container">
+ <i class="fa fa-angle-left pull-right"></i>
+ </span>
+ </a>
+ <ul class="treeview-menu">
+ <li rv-each-pool="rbd_pools">
+ <a rv-href="pool.url"><i class="fa fa-circle-o"></i> {pool.name}</a>
+ </li>
+ </ul>
</li>
<li class="ceph-none-found" rv-hide="rbd_pools | length">None found</li>
</ul>
rbd_pools = sorted([
{
"name": name,
- "url": "/rbd/{0}/".format(name)
+ "url": "/rbd_pool/{0}/".format(name)
}
for name in data
], key=lambda k: k['name'])
def clients_data(self, fs_id):
return self._clients(int(fs_id))
- def _rbd(self, pool_name):
+ def _rbd_pool(self, pool_name):
rbd_ls = global_instance().rbd_ls.get(pool_name, None)
if rbd_ls is None:
rbd_ls = RbdLs(global_instance(), pool_name)
return value
@cherrypy.expose
- def rbd(self, pool_name):
- template = env.get_template("rbd.html")
+ def rbd_pool(self, pool_name):
+ template = env.get_template("rbd_pool.html")
toplevel_data = self._toplevel_data()
- images = self._rbd(pool_name)
+ images = self._rbd_pool(pool_name)
content_data = {
"images": images,
"pool_name": pool_name
@cherrypy.expose
@cherrypy.tools.json_out()
- def rbd_data(self, pool_name):
- return self._rbd(pool_name)
+ def rbd_pool_data(self, pool_name):
+ return self._rbd_pool(pool_name)
@cherrypy.expose
def health(self):
+++ /dev/null
-{% extends "base.html" %}
-
-{% block content %}
-
-<script>
- $(document).ready(function(){
- // Pre-populated initial data at page load
- var content_data = {{ content_data }};
-
- var refresh = function() {
- $.get("/rbd_data/" + content_data.pool_name + "/", function(data) {
- content_data.images = data;
- setTimeout(refresh, 5000);
- });
- };
-
- console.log(content_data);
-
- rivets.bind($("div#content"), content_data);
- setTimeout(refresh, 5000);
- });
-</script>
-
-
-<section class="content-header">
- <h1>
- RBD
- </h1>
-</section>
-
-<section class="content">
- <div class="box">
- <div class="box-header">
- <h3 class="box-title">Images</h3>
- </div>
- <div class="box-body">
- <table class="table table-bordered">
- <thead>
- <tr>
- <th>Name</th>
- <th>Size</th>
- <th>Objects</th>
- <th>Object size</th>
- <th>Parent</th>
- </tr>
- </thead>
- <tbody>
- <tr rv-each-image="images">
- <td>{image.name}</td>
- <td>{image.size | dimless_binary}</td>
- <td>{image.num_objs | dimless}</td>
- <td>{image.obj_size | dimless_binary}</td>
- <td>{image.parent}</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
-
-
-</section>
-<!-- /.content -->
-
-{% endblock %}
--- /dev/null
+{% extends "base.html" %}
+
+{% block content %}
+
+<script>
+ $(document).ready(function(){
+ // Pre-populated initial data at page load
+ var content_data = {{ content_data }};
+
+ var refresh = function() {
+ $.get("/rbd_pool_data/" + content_data.pool_name + "/", function(data) {
+ content_data.images = data;
+ setTimeout(refresh, 5000);
+ });
+ };
+
+ console.log(content_data);
+
+ rivets.bind($("div#content"), content_data);
+ setTimeout(refresh, 5000);
+ });
+</script>
+
+
+<section class="content-header">
+ <h1>
+ Block Pool { pool_name }
+ </h1>
+</section>
+
+<section class="content">
+ <div class="box">
+ <div class="box-header">
+ <h3 class="box-title">Images</h3>
+ </div>
+ <div class="box-body">
+ <table class="table table-bordered">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Size</th>
+ <th>Objects</th>
+ <th>Object size</th>
+ <th>Parent</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr rv-each-image="images">
+ <td>{image.name}</td>
+ <td>{image.size | dimless_binary}</td>
+ <td>{image.num_objs | dimless}</td>
+ <td>{image.obj_size | dimless_binary}</td>
+ <td>{image.parent}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+
+
+</section>
+<!-- /.content -->
+
+{% endblock %}