[rhmessaging-commits] rhmessaging commits: r1074 - mgmt/cumin/python/cumin.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Mon Oct 15 15:35:52 EDT 2007


Author: justi9
Date: 2007-10-15 15:35:52 -0400 (Mon, 15 Oct 2007)
New Revision: 1074

Modified:
   mgmt/cumin/python/cumin/model.py
   mgmt/cumin/python/cumin/server.py
   mgmt/cumin/python/cumin/server.strings
Log:
Introduces server config properties into the server view.  Adds a form
for editing properties.



Modified: mgmt/cumin/python/cumin/model.py
===================================================================
--- mgmt/cumin/python/cumin/model.py	2007-10-15 19:35:06 UTC (rev 1073)
+++ mgmt/cumin/python/cumin/model.py	2007-10-15 19:35:52 UTC (rev 1074)
@@ -105,7 +105,10 @@
 
     def get_server_group_types(self):
         return self.get_index(self.server_group_type).values()
-    
+
+    def get_config_property(self, id):
+        return self.get_index(self.config_property).get(id)
+        
     def get_virtual_host(self, id):
         return self.get_index(self.virtual_host).get(id)
 

Modified: mgmt/cumin/python/cumin/server.py
===================================================================
--- mgmt/cumin/python/cumin/server.py	2007-10-15 19:35:06 UTC (rev 1073)
+++ mgmt/cumin/python/cumin/server.py	2007-10-15 19:35:52 UTC (rev 1074)
@@ -51,6 +51,9 @@
         self.vhost = VirtualHostFrame(app, "vhost")
         self.add_mode(self.vhost)
 
+        self.prop = ServerConfigPropertyForm(app, "prop")
+        self.add_mode(self.prop)
+
     def get_object(self, session, object):
         return self.param.get(session)
 
@@ -64,6 +67,12 @@
         self.vhost.set_virtual_host(session, vhost)
         return self.show_mode(session, self.vhost)
 
+    def show_config_property(self, session, prop):
+        self.prop.set_config_property(session, prop)
+        frame = self.show_mode(session, self.prop)
+        return self.page().set_current_frame(session, frame)
+
+    # XXX need to set frames in these
     def show_queue(self, session, queue):
         vhost = self.show_virtual_host(session, queue.virtual_host)
         return vhost.show_queue(session, queue)
@@ -85,6 +94,69 @@
     def render_none(self, session, group):
         return none()
 
+class ServerConfigPropertySet(ItemSet):
+    def get_items(self, session, server):
+        return csorted(server.config_property_items())
+
+    def render_item_name(self, session, prop):
+        return prop.name
+
+    def render_item_value(self, session, prop):
+        return prop.value
+
+    def render_item_edit_href(self, session, prop):
+        branch = session.branch()
+        frame = self.page().show_server(branch, prop.get_server())
+        frame.show_config_property(branch, prop)
+        return branch.marshal()
+
+class ConfigPropertyParameter(Parameter):
+    def do_unmarshal(self, string):
+        return self.app.model.get_config_property(int(string))
+
+    def do_marshal(self, prop):
+        return str(prop.id)
+
+class ServerConfigPropertyForm(CuminForm):
+    def __init__(self, app, name):
+        super(ServerConfigPropertyForm, self).__init__(app, name)
+
+        self.param = ConfigPropertyParameter(app, "param")
+        self.add_parameter(self.param)
+
+        self.source = Parameter(app, "source")
+        self.add_parameter(self.source)
+
+        self.profile = RadioInput(app, "profile", self)
+        self.profile.set_parameter(self.source)
+        self.profile.set_value("profile")
+        self.add_child(self.profile)
+
+        self.server = RadioInput(app, "server", self)
+        self.server.set_parameter(self.source)
+        self.server.set_value("server")
+        self.add_child(self.server)
+
+        self.local = RadioInput(app, "local", self)
+        self.local.set_parameter(self.source)
+        self.local.set_value("local")
+        self.add_child(self.local)
+
+    def get_object(self, session, object):
+        return self.param.get(session)
+
+    def set_config_property(self, session, prop):
+        return self.param.set(session, prop)
+
+    def process_cancel(self, session, prop):
+        branch = session.branch()
+        frame = self.page().show_server(branch, prop.get_server())
+        frame.show_view(branch)
+        session.set_redirect(branch.marshal())
+
+    def render_title(self, session, prop):
+        return "Edit Property '%s'" % prop.name
+
 class ServerView(Widget):
     def __init__(self, app, name):
         super(ServerView, self).__init__(app, name)
@@ -122,7 +194,7 @@
         def get_items(self, session, server):
             return sorted(server.virtual_host_items(), cmp, lambda x: x.name)
 
-    class ConfigTab(Widget):
+    class ConfigTab(ServerConfigPropertySet):
         def render_title(self, session, server):
             return "Configuration"
 
@@ -284,4 +356,3 @@
 
     def render_title(self, session, group):
         return "Edit Group '%s'" % group.name
-

Modified: mgmt/cumin/python/cumin/server.strings
===================================================================
--- mgmt/cumin/python/cumin/server.strings	2007-10-15 19:35:06 UTC (rev 1073)
+++ mgmt/cumin/python/cumin/server.strings	2007-10-15 19:35:52 UTC (rev 1074)
@@ -15,6 +15,67 @@
   <td>0 errors, 0 warnings</td>
 </tr>
 
+[ServerConfigPropertySet.html]
+<ul class="actions">
+  <li><a href="">Apply Current Values to This Server</a></li>
+</ul>
+
+<table class="mobjects">
+  <tr>
+    <th>Property</th>
+    <th>Configured Value</th>
+    <th>Actual Value</th>
+    <th>Profile Value</th>
+    <th></th>
+  </tr>
+
+  {items}
+</table>
+
+[ServerConfigPropertySet.item_html]
+<tr>
+  <td>{item_name}</td>
+  <td>{item_value}</td>
+  <td></td>
+  <td></td>
+  <td><a class="action" href="{item_edit_href}">Edit</a></td>
+</tr>
+
+[ServerConfigPropertyForm.html]
+<form id="{id}" class="mform" method="post" action="?">
+  <div class="head">
+    <h1>{title}</h1>
+  </div>
+  <div class="body">
+    <span class="legend">Value</span>
+    <fieldset>
+      <div class="field">
+        {profile} Use profile value
+      </div>
+      <div class="field">
+        {server} Use current server value
+      </div>
+      <div class="field">
+        {local} Set a custom value
+      </div>
+    </fieldset>
+
+    {hidden_inputs}
+  </div>
+  <div class="foot">
+    <div style="display: block; float: left;"><button>Help</button></div>
+    {cancel}
+    {submit}
+  </div>
+</form>
+<script defer="defer">
+(function() {
+    var elem = wooly.doc().elem("{id}").node.elements[1];
+    elem.focus();
+    elem.select();
+}())
+</script>
+
 [ServerView.html]
 <div class="oblock">
   <div class="mstatus green" id="{id}">
@@ -37,31 +98,6 @@
   {tabs}
 </div>
 
-[ConfigTab.html]
-<ul class="actions">
-  <li><a href="">Edit This Configuration</a></li>
-</ul>
-
-<pre class="code">
-server "server00" {
-    include "/usr/local/cluster/common.conf";
-
-    vhost "default" {
-        store: bdb;
-        transaction: journal;
-    }
-
-    vhost "devel" {
-        max-queue-depth: 10000;
-        store: memory;
-        transaction: memory;
-    }
-
-    vhost "test" {
-    }
-}
-</pre>
-
 [ServerBrowser.css]
 .ServerBrowser.groups {
   float: left;




More information about the rhmessaging-commits mailing list