Author: justi9
Date: 2008-04-03 16:19:20 -0400 (Thu, 03 Apr 2008)
New Revision: 1835
Modified:
mgmt/cumin/python/cumin/broker.py
mgmt/cumin/python/cumin/client.py
mgmt/cumin/python/cumin/exchange.py
mgmt/cumin/python/cumin/model.py
mgmt/cumin/python/cumin/page.py
mgmt/cumin/python/cumin/queue.py
mgmt/cumin/python/cumin/stat.py
mgmt/cumin/python/cumin/system.py
mgmt/cumin/python/cumin/widgets.py
mgmt/cumin/python/wooly/__init__.py
mgmt/cumin/python/wooly/forms.py
mgmt/notes/justin-todo.txt
Log:
XXX cleanup
Modified: mgmt/cumin/python/cumin/broker.py
===================================================================
--- mgmt/cumin/python/cumin/broker.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/cumin/broker.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -33,11 +33,6 @@
self.groups = self.BrokerSetGroupInput(app, "groups", self)
self.add_child(self.groups)
- # XXX get rid of this
- self.submit = BooleanParameter(app, "submit")
- self.add_parameter(self.submit)
- self.add_form_parameter(self.submit)
-
self.__unregister = self.Unregister(app, "unregister", self)
self.add_child(self.__unregister)
Modified: mgmt/cumin/python/cumin/client.py
===================================================================
--- mgmt/cumin/python/cumin/client.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/cumin/client.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -23,9 +23,6 @@
self.set_default_column(col)
- #col = self.SessionsColumn(app, "sess")
- #self.add_column(col)
-
col = self.SentColumn(app, "sent")
col.alignment = "right"
self.add_column(col)
@@ -86,19 +83,6 @@
self.frame.show_client(branch, client).show_view(branch)
return fmt_olink(branch, client, name=data["addr"])
- class SessionsColumn(SqlTableColumn):
- def render_title(self, session, data):
- return "Sessions"
-
- def render_content(self, session, data):
- client = Identifiable(data["id"])
- branch = session.branch()
- frame = self.frame.show_client(branch, client)
- frame.show_view(branch).show_sessions(branch)
- # XXX client.sessions won't work
- #return fmt_link(branch.marshal(), client.sessions.count())
- return "XXX"
-
class SentColumn(NullSortColumn, FreshDataOnlyColumn):
def render_title(self, session, data):
return "%s Sent" % self.parent.get_unit_plural(session)
@@ -205,20 +189,16 @@
class ClientStatus(CuminStatus):
def render_frames_from(self, session, client):
- stat = self.app.model.client.get_stat("framesFromClient")
- return fmt_rate(stat.rate(client), "frame", "sec")
+ return self.app.model.client.framesFromClient.rate_html(client)
def render_frames_to(self, session, client):
- stat = self.app.model.client.get_stat("framesToClient")
- return fmt_rate(stat.rate(client), "frame", "sec")
+ return self.app.model.client.framesToClient.rate_html(client)
def render_bytes_from(self, session, client):
- stat = self.app.model.client.get_stat("bytesFromClient")
- return fmt_rate(stat.rate(client), "byte", "sec")
+ return self.app.model.client.bytesFromClient.rate_html(client)
def render_bytes_to(self, session, client):
- stat = self.app.model.client.get_stat("bytesToClient")
- return fmt_rate(stat.rate(client), "byte", "sec")
+ return self.app.model.client.bytesToClient.rate_html(client)
class ClientView(CuminView):
def __init__(self, app, name):
Modified: mgmt/cumin/python/cumin/exchange.py
===================================================================
--- mgmt/cumin/python/cumin/exchange.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/cumin/exchange.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -172,22 +172,22 @@
class ExchangeStatus(CuminStatus):
def render_messages_received(self, session, exchange):
- return
self.app.model.exchange.get_stat("msgReceives").rate_html(exchange)
+ return self.app.model.exchange.msgReceives.rate_html(exchange)
def render_messages_routed(self, session, exchange):
- return
self.app.model.exchange.get_stat("msgRoutes").rate_html(exchange)
+ return self.app.model.exchange.msgRoutes.rate_html(exchange)
def render_messages_dropped(self, session, exchange):
- return self.app.model.exchange.get_stat("msgDrops").value(exchange)
+ return self.app.model.exchange.msgDrops.value(exchange)
def render_bytes_received(self, session, exchange):
- return
self.app.model.exchange.get_stat("byteReceives").rate_html(exchange)
+ return self.app.model.exchange.byteReceives.rate_html(exchange)
def render_bytes_routed(self, session, exchange):
- return
self.app.model.exchange.get_stat("byteRoutes").rate_html(exchange)
+ return self.app.model.exchange.byteRoutes.rate_html(exchange)
def render_bytes_dropped(self, session, exchange):
- return self.app.model.exchange.get_stat("byteDrops").value(exchange)
+ return self.app.model.exchange.byteDrops.value(exchange)
class ExchangeView(CuminView):
def __init__(self, app, name):
@@ -445,17 +445,3 @@
def render_item_name(self, session, producer):
return producer.name
-
- def render_item_messages_produced(self, session, producer):
- return producer.statsCurr.msgsProduced #XXX statify
-
- def render_item_messages_produced_rate(self, session, producer):
- value = producer.statsCurr.msgsProduced #XXX statify
- return fmt_rate(value, "msg", "sec")
-
- def render_item_bytes_produced(self, session, producer):
- return producer.statsCurr.bytesProduced #XXX statify
-
- def render_item_bytes_produced_rate(self, session, producer):
- value = producer.statsCurr.bytesProduced #XXX statify
- return fmt_rate(value, "byte", "sec")
Modified: mgmt/cumin/python/cumin/model.py
===================================================================
--- mgmt/cumin/python/cumin/model.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/cumin/model.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -45,12 +45,6 @@
if cls.mint_class is mint_object.__class__:
return cls
- # XXX get rid of this
- def get_class_by_name(self, name):
- for cls in self.classes:
- if cls.name == name:
- return cls
-
def count_invocations(self, status):
count = 0
@@ -73,8 +67,7 @@
for object in objects:
cls = self.get_class_by_object(object)
- # XXX swap the args
- cls.write_xml(object, writer)
+ cls.write_xml(writer, object)
writer.write("</model>")
@@ -277,7 +270,7 @@
except AttributeError:
pass
- def write_xml(self, object, writer):
+ def write_xml(self, writer, object):
value = self.value_text(object)
rate = self.rate_text(object)
@@ -304,12 +297,6 @@
self.stats.append(stat)
setattr(self, stat.name, stat)
- # XXX get rid of this
- def get_stat(self, name):
- for stat in self.stats:
- if stat.name == name:
- return stat
-
def add_action(self, action):
self.actions.append(action)
setattr(self, action.name, action)
@@ -330,9 +317,9 @@
def write_stat_xml(self, object, writer):
for stat in self.stats:
- stat.write_xml(object, writer)
+ stat.write_xml(writer, object)
- def write_xml(self, object, writer):
+ def write_xml(self, writer, object):
writer.write("<%s id=\"%i\" name=\"%s\">" %
\
(self.name, object.id, self.get_object_name(object)))
Modified: mgmt/cumin/python/cumin/page.py
===================================================================
--- mgmt/cumin/python/cumin/page.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/cumin/page.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -67,10 +67,6 @@
self.__tabs = MainFrameTabs(app, "tabs")
self.add_child(self.__tabs)
- # XXX get rid of this
- self.__object = Attribute(app, "object")
- self.add_attribute(self.__object)
-
self.__view = MainView(app, "view")
self.add_mode(self.__view)
self.set_view_mode(self.__view)
@@ -108,7 +104,6 @@
return branch.marshal()
def render_frames(self, session):
- self.__object.set(session, object)
writer = Writer()
for frame in self.page.get_frames(session):
Modified: mgmt/cumin/python/cumin/queue.py
===================================================================
--- mgmt/cumin/python/cumin/queue.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/cumin/queue.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -195,37 +195,31 @@
class QueueStatus(CuminStatus):
def render_consumers(self, session, queue):
- return self.app.model.queue.get_stat("consumers").value(queue)
+ return self.app.model.queue.consumers.value(queue)
def render_messages_enqueued(self, session, queue):
- stat = self.app.model.queue.get_stat("msgTotalEnqueues")
- return fmt_rate(stat.rate(queue), "msg", "sec")
+ return self.app.model.queue.msgTotalEnqueues.rate_html(queue)
def render_messages_dequeued(self, session, queue):
- stat = self.app.model.queue.get_stat("msgTotalDequeues")
- return fmt_rate(stat.rate(queue), "msg", "sec")
+ return self.app.model.queue.msgTotalDequeues.rate_html(queue)
def render_message_depth(self, session, queue):
- return self.app.model.queue.get_stat("msgDepth").value(queue)
+ return self.app.model.queue.msgDepth.value(queue)
def render_message_depth_accel(self, session, queue):
- stat = self.app.model.queue.get_stat("msgDepth")
- return fmt_rate(stat.rate(queue), "msg", "sec")
+ return self.app.model.queue.msgDepth.rate_html(queue)
def render_bytes_enqueued(self, session, queue):
- stat = self.app.model.queue.get_stat("byteTotalEnqueues")
- return fmt_rate(stat.rate(queue), "byte", "sec")
+ return self.app.model.queue.byteTotalEnqueues.rate_html(queue)
def render_bytes_dequeued(self, session, queue):
- stat = self.app.model.queue.get_stat("byteTotalDequeues")
- return fmt_rate(stat.rate(queue), "byte", "sec")
+ return self.app.model.queue.byteTotalDequeues.rate_html(queue)
def render_byte_depth(self, session, queue):
- return self.app.model.queue.get_stat("byteDepth").value(queue)
+ return self.app.model.queue.byteDepth.value(queue)
def render_byte_depth_accel(self, session, queue):
- stat = self.app.model.queue.get_stat("byteDepth")
- return fmt_rate(stat.rate(queue), "byte", "sec")
+ return self.app.model.queue.byteDepth.rate_html(queue)
class QueueView(CuminView):
def __init__(self, app, name):
@@ -419,14 +413,8 @@
def process_submit(self, session, queue):
if self.validate(session):
- binding = Binding()
+ raise Exception("Not implemented")
- binding.binding_key = self.binding_key.get(session)
-
- # XXX uh huh
- binding.set_queue(queue)
- binding.set_exchange(self.exchanges.get(session))
-
self.process_cancel(session, queue)
def render_title(self, session, queue):
@@ -520,21 +508,16 @@
return consumer.name
def render_item_messages_consumed(self, session, consumer):
- stat = self.app.model.consumer.get_stat("msgsConsumed")
- return stat.value(consumer)
+ return self.app.model.consumer.msgsConsumed.value(consumer)
def render_item_messages_consumed_rate(self, session, consumer):
- stat = self.app.model.consumer.get_stat("msgsConsumed")
- return fmt_rate(stat.rate(consumer), "msg", "sec")
+ return self.app.model.consumer.msgsConsumed.rate_html(consumer)
def render_item_bytes_consumed(self, session, consumer):
- stat = self.app.model.consumer.get_stat("bytesConsumed")
- return stat.value(consumer)
+ return self.app.model.consumer.bytesConsumed.value(consumer)
def render_item_bytes_consumed_rate(self, session, consumer):
- stat = self.app.model.consumer.get_stat("bytesConsumed")
- return fmt_rate(stat.rate(consumer), "byte", "sec")
+ return self.app.model.consumer.bytesConsumed.rate_html(consumer)
def render_item_unacked_messages(self, session, consumer):
- stat = self.app.model.consumer.get_stat("unackedMessages")
- return stat.value(consumer)
+ return self.app.model.consumer.unackedMessages.value(consumer)
Modified: mgmt/cumin/python/cumin/stat.py
===================================================================
--- mgmt/cumin/python/cumin/stat.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/cumin/stat.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -66,10 +66,6 @@
return stat.rate_html(object)
- def render_item_average(self, session, args):
- stat, object = args
- return None #XXX "%0.2f" % (sum(stat.values) /
float(len(stat.values)))
-
class StatValueChart(Widget):
def __init__(self, app, name):
super(StatValueChart, self).__init__(app, name)
@@ -114,7 +110,7 @@
for name in self.stats:
cls = self.app.model.get_class_by_object(object)
- stat = cls.get_stat(name)
+ stat = getattr(cls, name)
self.stats_tmpl.render(writer, session, stat, object)
return writer.to_string()
@@ -175,7 +171,7 @@
chart = LineChart(480, 120)
cls = self.class_.get(session)
- stats = [cls.get_stat(x) for x in self.stats.get(session)]
+ stats = [getattr(cls, x) for x in self.stats.get(session)]
samples = dict()
values = dict()
Modified: mgmt/cumin/python/cumin/system.py
===================================================================
--- mgmt/cumin/python/cumin/system.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/cumin/system.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -20,11 +20,6 @@
col = self.NameColumn(app, "name")
self.add_column(col)
- # XXX get rid of this
- self.submit = BooleanParameter(app, "submit")
- self.add_parameter(self.submit)
- self.add_form_parameter(self.submit)
-
def render_title(self, session, *args):
count = System.select().count()
return "Systems %s" % fmt_count(count)
Modified: mgmt/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/cumin/python/cumin/widgets.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/cumin/widgets.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -463,12 +463,10 @@
return binding.bindingKey
def render_item_messages_matched(self, session, binding):
- stat = self.app.model.binding.get_stat("msgMatched")
- return stat.value(binding)
+ return self.app.model.binding.msgMatched.value(binding)
def render_item_messages_matched_rate(self, session, binding):
- stat = self.app.model.binding.get_stat("msgMatched")
- return fmt_rate(stat.rate(binding), "msg", "sec")
+ return self.app.model.binding.msgMatched.rate_html(binding)
class CheckboxIdColumn(SqlTableColumn):
def __init__(self, app, name, form):
Modified: mgmt/cumin/python/wooly/__init__.py
===================================================================
--- mgmt/cumin/python/wooly/__init__.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/wooly/__init__.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -494,7 +494,8 @@
def set_page(self, page):
self.page = page
- def get(self, key): # XXX we can make this a little faster, no?
+ # This is the biggest hotspot in cumin-bench profiling
+ def get(self, key):
if key in self.values:
value = self.values[key]
elif self.trunk:
@@ -535,41 +536,39 @@
def marshal_url_vars(self, separator=";"):
params = self.get_page().get_saved_parameters(self)
+ vars = list()
- if params: # XXX removing this may make sense; it's an uncommon case
- vars = list()
+ for param in params:
+ key = param.path
- for param in params:
- key = param.path
+ if param.is_collection:
+ collection = self.get(key)
- if param.is_collection:
- collection = self.get(key)
+ if collection:
+ for value in collection:
+ svalue = quote(param.marshal(value))
+ vars.append("%s=%s" % (key, svalue))
+ else:
+ #value = self.get(key)
- if collection:
- for value in collection:
- svalue = quote(param.marshal(value))
- vars.append("%s=%s" % (key, svalue))
+ # Inlined below saving about a second in a
+ # 1000-hit profile
+
+ if key in self.values:
+ value = self.values[key]
+ elif self.trunk:
+ value = self.trunk.get(key)
else:
- #value = self.get(key)
+ value = None
- # Inlined below saving about a second in a
- # 1000-hit profile
-
- if key in self.values:
- value = self.values[key]
- elif self.trunk:
- value = self.trunk.get(key)
- else:
- value = None
+ default = param.get_default(self)
- default = param.get_default(self)
+ if value not in (default, None):
+ svalue = quote(param.marshal(value))
+ vars.append("%s=%s" % (key, svalue))
- if value not in (default, None):
- svalue = quote(param.marshal(value))
- vars.append("%s=%s" % (key, svalue))
+ return separator.join(vars)
- return separator.join(vars)
-
def unmarshal(self, string):
elems = string.split("?")
Modified: mgmt/cumin/python/wooly/forms.py
===================================================================
--- mgmt/cumin/python/wooly/forms.py 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/cumin/python/wooly/forms.py 2008-04-03 20:19:20 UTC (rev 1835)
@@ -153,20 +153,13 @@
self.value = None
- def xxx_set_value(self, value):
- self.value = value
-
- # XXX get rid of this
- def get_value(self, session, *args):
- pass
-
def render_value(self, session, *args):
- return self.get_value(session, *args)
+ return self.value
def render_checked_attr(self, session, *args):
value = self.get(session)
- if value and value == self.get_value(session, *args):
+ if value and value == self.value:
return "checked=\"checked\""
class FormButton(FormInput):
Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt 2008-04-03 12:43:05 UTC (rev 1834)
+++ mgmt/notes/justin-todo.txt 2008-04-03 20:19:20 UTC (rev 1835)
@@ -18,6 +18,8 @@
Deferred
+ * Change the way CuminAction.invoke works
+
* Resolve design questions around view navigation
* Blow up if we try to call set_redirect_url twice in a session