[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