[rhmessaging-commits] rhmessaging commits: r971 - in mgmt/cumin/python: wooly and 1 other directory.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Mon Oct 8 16:01:52 EDT 2007


Author: justi9
Date: 2007-10-08 16:01:52 -0400 (Mon, 08 Oct 2007)
New Revision: 971

Modified:
   mgmt/cumin/python/cumin/
   mgmt/cumin/python/cumin/cluster.py
   mgmt/cumin/python/cumin/cluster.strings
   mgmt/cumin/python/cumin/demo.py
   mgmt/cumin/python/cumin/exchange.py
   mgmt/cumin/python/cumin/page.py
   mgmt/cumin/python/cumin/page.strings
   mgmt/cumin/python/cumin/queue.py
   mgmt/cumin/python/cumin/queue.strings
   mgmt/cumin/python/cumin/server.py
   mgmt/cumin/python/cumin/server.strings
   mgmt/cumin/python/cumin/virtualhost.py
   mgmt/cumin/python/wooly/
   mgmt/cumin/python/wooly/server.py
   mgmt/cumin/python/wooly/widgets.py
   mgmt/cumin/python/wooly/widgets.strings
Log:
A batch commit of the work I did before I got commit access :).

 * Marks pyc files ignored in the cumin and wooly dirs

 * Adds dummy status blocks to the cluster and server views

 * Makes status block styling more general, not queue status specific

 * Fills out the server group nav

 * Adds servers to server groups in the demo data




Property changes on: mgmt/cumin/python/cumin
___________________________________________________________________
Name: svn:ignore
   + *.pyc


Modified: mgmt/cumin/python/cumin/cluster.py
===================================================================
--- mgmt/cumin/python/cumin/cluster.py	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/cluster.py	2007-10-08 20:01:52 UTC (rev 971)
@@ -14,7 +14,7 @@
         return "Clusters (%i)" % len(model.get_clusters())
 
     def get_items(self, session, model):
-        return sorted(model.get_clusters())
+        return sorted(model.get_clusters(), cmp, lambda x: x.name)
 
     def render_item_href(self, session, cluster):
         branch = session.branch()
@@ -62,14 +62,17 @@
         self.tabs = TabSet(app, "tabs")
         self.add_child(self.tabs)
 
-        self.tabs.add_child(self.Servers(app, "servers"))
+        self.tabs.add_child(self.ClusterServers(app, "servers"))
 
     def render_title(self, session, cluster):
         return "Cluster '%s'" % cluster.name
 
-    class Servers(ServerSet):
+    def render_name(self, session, cluster):
+        return cluster.name
+
+    class ClusterServers(ServerSet):
         def render_title(self, session, cluster):
             return "Servers (%i)" % len(cluster.server_items())
 
         def get_items(self, session, cluster):
-            return sorted(cluster.server_items())
+            return sorted(cluster.server_items(), cmp, lambda x: x.name)

Modified: mgmt/cumin/python/cumin/cluster.strings
===================================================================
--- mgmt/cumin/python/cumin/cluster.strings	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/cluster.strings	2007-10-08 20:01:52 UTC (rev 971)
@@ -13,6 +13,39 @@
 
 [ClusterView.html]
 <div class="oblock">
+  <div class="mstatus green" id="{id}">
+    <h2>Cluster Status</h2>
+
+    <div>0 errors, 0 warnings</div>
+  </div>
+
   <h1>{title}</h1>
+
+  <dl class="properties">
+    <dt>Name</dt><dd>{name}</dd>
+  </dl>
+
+  <ul class="actions">
+    <li><a href="">Add Server</a></li>
+    <li><a href="">Shutdown Servers in Cluster</a></li>
+  </ul>
+
   {tabs}
 </div>
+
+[ClusterServers.html]
+<table class="ClusterServers mobjects">
+  <tr>
+    <th>Name</th>
+    <th>Status</th>
+    <th></th>
+  </tr>
+{items}
+</table>
+
+[ClusterServers.item_html]
+<tr>
+  <td><a href="{item_href}">{item_name}</a></td>
+  <td>0 errors, 0 warnings</td>
+  <td><a class="action" href="">Remove</a></td>
+</tr>

Modified: mgmt/cumin/python/cumin/demo.py
===================================================================
--- mgmt/cumin/python/cumin/demo.py	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/demo.py	2007-10-08 20:01:52 UTC (rev 971)
@@ -4,6 +4,9 @@
 
 from model import *
 
+def fmt(str_, int_):
+    return "%s%02i" % (str_, int_)
+
 class DemoData(object):
     def __init__(self, model):
         self.model = model
@@ -34,14 +37,19 @@
 
         for cluster_count in range(3):
             cluster = Cluster(self.model)
-            cluster.name = "cluster" + str(cluster_count)
+            cluster.name = fmt("cluster", cluster_count)
             clusters.append(cluster)
 
         for server_count in range(12):
             server = Server(self.model)
-            server.name = "server" + str(server_count)
+            server.name = fmt("server", server_count)
             server.set_cluster(clusters[server_count % 3])
 
+            if server_count % 2:
+                sgroups["East Coast"].add_server(server)
+            else:
+                sgroups["West Coast"].add_server(server)
+
             vhost = VirtualHost(self.model)
             vhost.name = "default"
             server.add_virtual_host(vhost)
@@ -66,7 +74,7 @@
 
                 for queue_count in range(10):
                     queue = Queue(self.model)
-                    queue.name = "queue" + str(queue_count)
+                    queue.name = fmt("queue", queue_count)
                     vhost.add_queue(queue)
 
     def start_updates(self):

Modified: mgmt/cumin/python/cumin/exchange.py
===================================================================
--- mgmt/cumin/python/cumin/exchange.py	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/exchange.py	2007-10-08 20:01:52 UTC (rev 971)
@@ -24,7 +24,7 @@
         self.set_parameter(param)
 
     def get_items(self, session, vhost):
-        return sorted(vhost.exchange_items())
+        return sorted(vhost.exchange_items(), cmp, lambda x: x.name)
 
     def render_item_value(self, session, exchange):
         return exchange.id
@@ -40,7 +40,7 @@
         return "Exchanges (%s)" % len(vhost.exchange_items())
 
     def get_items(self, session, vhost):
-        return sorted(vhost.exchange_items())
+        return sorted(vhost.exchange_items(), cmp, lambda x: x.name)
 
     def render_item_href(self, session, exchange):
         branch = session.branch()
@@ -142,7 +142,8 @@
         return "Bindings (%i)" % len(exchange.binding_items())
 
     def get_items(self, session, exchange):
-        return sorted(exchange.binding_items())
+        return sorted(exchange.binding_items(), cmp,
+                      lambda x: x.get_queue().name)
 
     def render_item_href(self, session, binding):
         branch = session.branch()

Modified: mgmt/cumin/python/cumin/page.py
===================================================================
--- mgmt/cumin/python/cumin/page.py	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/page.py	2007-10-08 20:01:52 UTC (rev 971)
@@ -38,6 +38,9 @@
     def show_server(self, session, server):
         return self.main.show_server(session, server)
 
+    def show_server_group(self, session, sgroup):
+        return self.main.show_server_group(session, sgroup)
+
     def show_cluster(self, session, cluster):
         return self.main.show_cluster(session, cluster)
 
@@ -91,6 +94,9 @@
         self.server = ServerFrame(app, "server")
         self.add_child(self.server)
 
+        self.sgroup = ServerGroupFrame(app, "sgroup")
+        self.add_child(self.sgroup)
+
         self.cluster = ClusterFrame(app, "cluster")
         self.add_child(self.cluster)
 
@@ -104,6 +110,10 @@
         self.server.set_server(session, server)
         return self.show_mode(session, self.server)
 
+    def show_server_group(self, session, sgroup):
+        self.sgroup.set_server_group(session, sgroup)
+        return self.show_mode(session, self.sgroup)
+
     def show_cluster(self, session, cluster):
         self.cluster.set_cluster(session, cluster)
         return self.show_mode(session, self.cluster)

Modified: mgmt/cumin/python/cumin/page.strings
===================================================================
--- mgmt/cumin/python/cumin/page.strings	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/page.strings	2007-10-08 20:01:52 UTC (rev 971)
@@ -274,6 +274,33 @@
   content: url(resource?name=radio-button-checked.png);
 }
 
+.mstatus {
+  float: right;
+  margin: 1em;
+  padding: 0.75em 1em;
+  width: 15em;
+}
+
+.mstatus h2 {
+  font-weight: bold;
+  margin: 0 0 0.5em 0;
+}
+
+.mstatus.red {
+  border: 1px solid #c99;
+  background-color: #fcc;
+}
+
+.mstatus.yellow {
+  border: 1px solid #cc9;
+  background-color: #ffc;
+}
+
+.mstatus.green {
+  border: 1px solid #9c9;
+  background-color: #cfc;
+}
+
 [CuminPage.html]
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Modified: mgmt/cumin/python/cumin/queue.py
===================================================================
--- mgmt/cumin/python/cumin/queue.py	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/queue.py	2007-10-08 20:01:52 UTC (rev 971)
@@ -32,7 +32,7 @@
         return "Queues (%s)" % len(vhost.queue_items())
 
     def get_items(self, session, vhost):
-        return sorted(vhost.queue_items())
+        return sorted(vhost.queue_items(), cmp, lambda x: x.name)
 
     def render_item_href(self, session, queue):
         branch = session.branch()
@@ -200,7 +200,8 @@
         return "Bindings (%i)" % len(queue.binding_items())
 
     def get_items(self, session, queue):
-        return sorted(queue.binding_items())
+        return sorted(queue.binding_items(), cmp,
+                      lambda x: x.get_exchange().name)
 
     def render_item_href(self, session, binding):
         branch = session.branch()
@@ -393,7 +394,8 @@
 
     class Exchanges(ExchangeInputSet):
         def get_items(self, session, queue):
-            return sorted(queue.virtual_host.exchange_items())
+            return sorted(queue.virtual_host.exchange_items(), cmp,
+                          lambda x: x.name)
 
 class QueueBindingRemove(CuminConfirmForm):
     def on_confirm(self, session, binding):

Modified: mgmt/cumin/python/cumin/queue.strings
===================================================================
--- mgmt/cumin/python/cumin/queue.strings	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/queue.strings	2007-10-08 20:01:52 UTC (rev 971)
@@ -66,34 +66,6 @@
 }())
 </script>
 
-[QueueStatus.css]
-.QueueStatus {
-  float: right;
-  margin: 1em;
-  padding: 0.75em 1em;
-  width: 15em;
-}
-
-.QueueStatus h2 {
-  font-weight: bold;
-  margin: 0 0 0.5em 0;
-}
-
-.QueueStatus.red {
-  border: 1px solid #c99;
-  background-color: #fcc;
-}
-
-.QueueStatus.yellow {
-  border: 1px solid #cc9;
-  background-color: #ffc;
-}
-
-.QueueStatus.green {
-  border: 1px solid #9c9;
-  background-color: #cfc;
-}
-
 [QueueStatus.html]
 <script defer="defer">
 (function() {
@@ -108,11 +80,11 @@
         var warnings = wcount + " " + (wcount == "1" && "warning" || "warnings");
 
         if (ecount != "0") {
-            elem.node.className = "QueueStatus red";
+            elem.node.className = "QueueStatus mstatus red";
         } else if (wcount != "0") {
-            elem.node.className = "QueueStatus yellow";
+            elem.node.className = "QueueStatus mstatus yellow";
         } else {
-            elem.node.className = "QueueStatus green";
+            elem.node.className = "QueueStatus mstatus green";
         }
 
         var divs = elem.elems("div");
@@ -123,7 +95,7 @@
     wooly.setIntervalUpdate("{id}", "{url}", updateStatus, 3000);
 }())
 </script>
-<div class="{class}" id="{id}">
+<div class="{class} mstatus" id="{id}">
   <h2>Queue Status</h2>
 
   <div>{message_info}</div>

Modified: mgmt/cumin/python/cumin/server.py
===================================================================
--- mgmt/cumin/python/cumin/server.py	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/server.py	2007-10-08 20:01:52 UTC (rev 971)
@@ -11,7 +11,7 @@
         return "Servers (%i)" % len(model.get_servers())
 
     def get_items(self, session, model):
-        return sorted(model.get_servers())
+        return sorted(model.get_servers(), cmp, lambda x: x.name)
 
     def render_item_href(self, session, server):
         branch = session.branch()
@@ -98,20 +98,18 @@
     def render_title(self, session, server):
         return "Server '%s'" % server.name
 
+    def render_name(self, session, server):
+        return server.name
+
     class ServerLog(Widget):
         def render_title(self, session, server):
             return "Log Messages"
 
-class ServerGroupTree(Widget):
-    def __init__(self, app, name):
-        super(ServerGroupTree, self).__init__(app, name)
-
-        self.item_tmpl = Template(self, "item_html")
-
+class ServerGroupTree(ItemTree):
     def render_title(self, session, model):
         return "Server Groups (%i)" % len(model.get_server_groups())
 
-    def get_root_items(self, session, model):
+    def get_items(self, session, model):
         roots = list()
 
         for group in model.get_server_groups():
@@ -123,24 +121,60 @@
     def get_child_items(self, session, group):
         return group.child_items()
 
-    def render_root_items(self, session, model):
-        roots = self.get_root_items(session, model)
+    def render_item_href(self, session, group):
+        branch = session.branch()
+        self.page().show_server_group(branch, group).show_view(branch)
+        return branch.marshal()
 
-        if roots:
-            writer = Writer()
+    def render_item_name(self, session, group):
+        return group.name
 
-            for root in roots:
-                self.item_tmpl.render(session, root, writer)
+class ServerGroupParameter(Parameter):
+    def do_unmarshal(self, string):
+        return self.app.model.get_server_group(int(string))
 
-            return writer.to_string()
+    def do_marshal(self, group):
+        return str(group.id)
 
-    def render_child_items(self, session, object):
-        writer = Writer()
-        
-        for child in self.get_child_items(session, object):
-            self.item_tmpl.render(session, child, writer)
+class ServerGroupFrame(CuminFrame):
+    def __init__(self, app, name):
+        super(ServerGroupFrame, self).__init__(app, name)
 
-        return writer.to_string()
+        self.param = ServerGroupParameter(app, "id")
+        self.add_parameter(self.param)
+        self.set_object_attribute(self.param)
 
-    def render_item_name(self, session, group):
-        return group.name
+        self.view = ServerGroupView(app, "view")
+        self.add_child(self.view)
+
+    def set_server_group(self, session, group):
+        self.param.set(session, group)
+
+    def show_view(self, session):
+        self.show_mode(session, self.view)
+
+    def render_title(self, session, group):
+        return "Server Group '%s'" % group.name
+
+class ServerGroupView(Widget):
+    def __init__(self, app, name):
+        super(ServerGroupView, self).__init__(app, name)
+
+        self.tabs = TabSet(app, "tabs")
+        self.add_child(self.tabs)
+
+        self.tabs.add_child(self.Servers(app, "servers"))
+
+    def render_title(self, session, group):
+        return "Server Group '%s'" % group.name
+
+    def render_parent_groups(self, session, group):
+        return ", ".join([i.name for i in group.parent_items()]) \
+               or "<em>None</em>"
+
+    class Servers(ServerSet):
+        def get_items(self, session, group):
+            return sorted(group.server_items(), cmp, lambda x: x.name)
+
+        def render_title(self, session, group):
+            return "Servers (%i)" % len(group.server_items())

Modified: mgmt/cumin/python/cumin/server.strings
===================================================================
--- mgmt/cumin/python/cumin/server.strings	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/server.strings	2007-10-08 20:01:52 UTC (rev 971)
@@ -17,8 +17,18 @@
 
 [ServerView.html]
 <div class="oblock">
+  <div class="mstatus green" id="{id}">
+    <h2>Server Status</h2>
+
+    <div>0 errors, 0 warnings</div>
+  </div>
+
   <h1>{title}</h1>
 
+  <dl class="properties">
+    <dt>Name</dt><dd>{name}</dd>
+  </dl>
+
   <ul class="actions">
     <li><a href="">Shutdown</a></li>
   </ul>
@@ -37,8 +47,24 @@
 }
 
 [ServerGroupTree.html]
-<ul class="ServerGroupTree">{root_items}</ul>
+<ul class="ServerGroupTree">{items}</ul>
 
 [ServerGroupTree.item_html]
-<li><a href="">{item_name}</a></li>
+<li><a href="{item_href}">{item_name}</a></li>
 <ul>{child_items}</ul>
+
+[ServerGroupView.html]
+<div class="oblock">
+  <h1>{title}</h1>
+
+  <dl class="properties">
+    <dt>Parent Groups</dt><dd>{parent_groups}</dd>
+  </dl>
+
+  <ul class="actions">
+    <li><a href="">Add Server</a></li>
+    <li><a href="">Shutdown All Servers in Group</a></li>
+  </ul>
+
+  {tabs}
+</div>

Modified: mgmt/cumin/python/cumin/virtualhost.py
===================================================================
--- mgmt/cumin/python/cumin/virtualhost.py	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/cumin/virtualhost.py	2007-10-08 20:01:52 UTC (rev 971)
@@ -13,7 +13,7 @@
         return "Virtual Hosts (%i)" % len(server.virtual_host_items())
 
     def get_items(self, session, server):
-        return sorted(server.virtual_host_items())
+        return sorted(server.virtual_host_items(), cmp, lambda x: x.name)
 
     def render_item_href(self, session, vhost):
         branch = session.branch()


Property changes on: mgmt/cumin/python/wooly
___________________________________________________________________
Name: svn:ignore
   + *.pyc


Modified: mgmt/cumin/python/wooly/server.py
===================================================================
--- mgmt/cumin/python/wooly/server.py	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/wooly/server.py	2007-10-08 20:01:52 UTC (rev 971)
@@ -19,8 +19,12 @@
         server.app = self.app
 
         print "Cumin server started on port %s" % (self.port)
-        server.serve_forever()
 
+        try:
+            server.serve_forever()
+        except KeyboardInterrupt:
+            pass
+
     class RequestHandler(BaseHTTPRequestHandler):
         http_date = "%a, %d %b %Y %H:%M:%S %Z"
 

Modified: mgmt/cumin/python/wooly/widgets.py
===================================================================
--- mgmt/cumin/python/wooly/widgets.py	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/wooly/widgets.py	2007-10-08 20:01:52 UTC (rev 971)
@@ -145,3 +145,19 @@
 
     def render_item_content(self, session, item):
         return None
+
+class ItemTree(ItemSet):
+    def get_items(self, session, object):
+        """Get the root items"""
+        pass
+    
+    def get_child_items(self, session, object):
+        pass
+
+    def render_child_items(self, session, object):
+        writer = Writer()
+        
+        for child in self.get_child_items(session, object):
+            self.item_tmpl.render(session, child, writer)
+
+        return writer.to_string()

Modified: mgmt/cumin/python/wooly/widgets.strings
===================================================================
--- mgmt/cumin/python/wooly/widgets.strings	2007-10-08 19:45:47 UTC (rev 970)
+++ mgmt/cumin/python/wooly/widgets.strings	2007-10-08 20:01:52 UTC (rev 971)
@@ -58,3 +58,10 @@
 
 [ItemSet.item_html]
 <li>{item_content}</li>
+
+[ItemTree.html]
+<ul class="ItemTree">{items}</ul>
+
+[ItemTree.item_html]
+<li>{item_content}</li>
+<ul>{child_items}</ul>




More information about the rhmessaging-commits mailing list