[rhmessaging-commits] rhmessaging commits: r1618 - in mgmt/cumin/python: wooly and 1 other directory.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Tue Jan 29 07:34:41 EST 2008
Author: justi9
Date: 2008-01-29 07:34:41 -0500 (Tue, 29 Jan 2008)
New Revision: 1618
Modified:
mgmt/cumin/python/cumin/client.py
mgmt/cumin/python/cumin/model.py
mgmt/cumin/python/cumin/page.py
mgmt/cumin/python/cumin/queue.py
mgmt/cumin/python/wooly/tables.py
Log:
Interim check in of a "jobs" ui, for displaying the status of the
users actions.
Modified: mgmt/cumin/python/cumin/client.py
===================================================================
--- mgmt/cumin/python/cumin/client.py 2008-01-28 20:57:09 UTC (rev 1617)
+++ mgmt/cumin/python/cumin/client.py 2008-01-29 12:34:41 UTC (rev 1618)
@@ -221,11 +221,9 @@
self.page().set_redirect_url(session, branch.marshal())
def process_item(self, session, id):
- try:
- client = Client.get(id)
- client.close(self.app.model.data, client.managedBroker, doit)
- except Exception, e:
- self.add_error(session, e)
+ client = Client.get(id)
+ action = self.app.model.client.close
+ action.invoke(client)
def render_item_content(self, session, id):
return "Close Client %s" % Client.get(id).address
@@ -334,11 +332,9 @@
self.page().set_redirect_url(session, branch.marshal())
def process_item(self, session, id):
- try:
- session_ = Session.get(id)
- session_.detach(self.app.model.data, session_.managedBroker, doit)
- except Exception, e:
- self.add_error(session, e)
+ session_ = Session.get(id)
+ action = self.app.model.session.detach
+ action.invoke(session_)
def render_item_content(self, session, id):
return "Detach Session '%s'" % Session.get(id).name
@@ -355,11 +351,9 @@
self.page().set_redirect_url(session, branch.marshal())
def process_item(self, session, id):
- try:
- session_ = Session.get(id)
- session_.close(self.app.model.data, session_.managedBroker, doit)
- except Exception, e:
- self.add_error(session, e)
+ session_ = Session.get(id)
+ action = self.app.model.session.close
+ action.invoke(session_)
def render_item_content(self, session, id):
return "Close Session '%s'" % Session.get(id).name
Modified: mgmt/cumin/python/cumin/model.py
===================================================================
--- mgmt/cumin/python/cumin/model.py 2008-01-28 20:57:09 UTC (rev 1617)
+++ mgmt/cumin/python/cumin/model.py 2008-01-29 12:34:41 UTC (rev 1618)
@@ -19,6 +19,8 @@
self.client = CuminClient(self)
self.session = CuminSession(self)
+ self.action_invocations = set()
+
def check(self):
self.data.check()
@@ -46,17 +48,24 @@
self.mint_stats_class = None
self.stats = list()
+ self.actions = list()
self.model.add_class(self)
def add_stat(self, stat):
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)
+
def get_object_name(self, object):
return object.name
@@ -81,6 +90,42 @@
writer.write("</%s>" % self.name)
+class CuminAction(object):
+ def __init__(self, cls, name):
+ self.model = cls.model
+ self.cumin_class = cls
+ self.name = name
+ self.title = None
+
+ self.cumin_class.add_action(self)
+
+ def invoke(self, object):
+ invoc = CuminActionInvocation(self)
+
+ def callback(status, args):
+ invoc.status = status
+ invoc.args = args
+ invoc.show()
+
+ self.do_invoke(object, callback)
+
+ self.model.action_invocations.add(invoc)
+
+ return invoc
+
+ def do_invoke(self, object, callback):
+ pass
+
+class CuminActionInvocation(object):
+ def __init__(self, action):
+ self.action = action
+ self.when = datetime.now()
+ self.error = None
+ self.args = None
+
+ def show(self):
+ print "action", self.action.name, self.when, self.error, self.args
+
class CuminStat(object):
def __init__(self, cls, name, type):
self.model = cls.model
@@ -360,6 +405,15 @@
stat.unit = "byte"
stat.categories = ("byte", "persistent")
+ self.Purge(self, "purge")
+
+ class Purge(CuminAction):
+ def get_title(self, session):
+ return "Purge"
+
+ def do_invoke(self, object, callback):
+ object.purge(self.model.data, object.managedBroker, callback)
+
class CuminExchange(CuminClass):
def __init__(self, model):
super(CuminExchange, self).__init__(model, "exchange", Exchange)
@@ -448,9 +502,18 @@
stat.unit = "frame"
stat.categories = ("general")
+ self.Close(self, "close")
+
def get_object_name(self, client):
return client.address
+ class Close(CuminAction):
+ def get_title(self, session):
+ return "Close"
+
+ def do_invoke(self, object, callback):
+ object.close(self.model.data, object.managedBroker, callback)
+
class CuminSession(CuminClass):
def __init__(self, model):
super(CuminSession, self).__init__(model, "session", Session)
@@ -470,3 +533,38 @@
stat = CuminStat(self, "attached", "bool")
stat.title = "Attached"
stat.categories = ("general")
+
+ self.Close(self, "close")
+ self.Detach(self, "detach")
+ self.ResetLifespan(self, "resetLifespan")
+ self.SolicitAck(self, "solicitAck")
+
+ class Close(CuminAction):
+ def get_title(self, session):
+ return "Close"
+
+ def do_invoke(self, object, callback):
+ object.close(self.model.data, object.managedBroker, callback)
+
+ class Detach(CuminAction):
+ def get_title(self, session):
+ return "Detach"
+
+ def do_invoke(self, object, callback):
+ object.detach(self.model.data, object.managedBroker, callback)
+
+ class ResetLifespan(CuminAction):
+ def get_title(self, session):
+ return "Reset Lifespan"
+
+ def do_invoke(self, object, callback):
+ object.resetLifespan(self.model.data, object.managedBroker,
+ callback)
+
+ class SolicitAck(CuminAction):
+ def get_title(self, session):
+ return "Solicit Acknowledgment"
+
+ def do_invoke(self, object, callback):
+ object.solicitAck(self.model.data, object.managedBroker,
+ callback)
Modified: mgmt/cumin/python/cumin/page.py
===================================================================
--- mgmt/cumin/python/cumin/page.py 2008-01-28 20:57:09 UTC (rev 1617)
+++ mgmt/cumin/python/cumin/page.py 2008-01-29 12:34:41 UTC (rev 1618)
@@ -164,6 +164,43 @@
object = frame.get_object(session, self.object.get(session))
return frame.render_title(session, object)
+class ActionInvocationSet(ItemTable):
+ def __init__(self, app, name):
+ super(ActionInvocationSet, self).__init__(app, name)
+
+ col = self.ActionColumn(app, "action")
+ self.add_column(col)
+
+ col = self.WhenColumn(app, "when")
+ self.add_column(col)
+
+ col = self.StatusColumn(app, "status")
+ self.add_column(col)
+
+ class ActionColumn(ItemTableColumn):
+ def get_title(self, session, object):
+ return "Action"
+
+ def render_content(self, session, item):
+ return item.action.name
+
+ class WhenColumn(ItemTableColumn):
+ def get_title(self, session, object):
+ return "When"
+
+ def render_content(self, session, item):
+ return fmt_datetime(item.when)
+
+ class StatusColumn(ItemTableColumn):
+ def get_title(self, session, object):
+ return "Status"
+
+ def render_content(self, session, item):
+ return item.error
+
+ def do_get_items(self, session, object):
+ return sorted_by(self.app.model.action_invocations, "when")
+
class MainView(TabSet):
def __init__(self, app, name):
super(MainView, self).__init__(app, name)
@@ -173,6 +210,7 @@
#self.add_tab(BrokerProfileSet(app, "profiles"))
#self.add_tab(BrokerClusterSet(app, "clusters"))
#self.add_tab(self.TagTab(app, "tags"))
+ self.add_tab(self.ActionTab(app, "actions"))
def show_broker_group(self, session, group):
mode = self.show_mode(session, self.brokers)
@@ -185,3 +223,7 @@
class TagTab(Widget):
def get_title(self, session, model):
return "Tags"
+
+ class ActionTab(ActionInvocationSet):
+ def get_title(self, session, model):
+ return "Actions"
Modified: mgmt/cumin/python/cumin/queue.py
===================================================================
--- mgmt/cumin/python/cumin/queue.py 2008-01-28 20:57:09 UTC (rev 1617)
+++ mgmt/cumin/python/cumin/queue.py 2008-01-29 12:34:41 UTC (rev 1618)
@@ -481,11 +481,9 @@
self.page().set_redirect_url(session, branch.marshal())
def process_item(self, session, id):
- try:
- queue = Queue.get(id)
- queue.purge(self.app.model.data, queue.managedBroker, doit)
- except Exception, e:
- self.add_error(session, e)
+ queue = Queue.get(id)
+ action = self.app.model.queue.purge
+ action.invoke(queue)
def render_item_content(self, session, id):
return "Purge Queue '%s'" % Queue.get(id).name
Modified: mgmt/cumin/python/wooly/tables.py
===================================================================
--- mgmt/cumin/python/wooly/tables.py 2008-01-28 20:57:09 UTC (rev 1617)
+++ mgmt/cumin/python/wooly/tables.py 2008-01-29 12:34:41 UTC (rev 1618)
@@ -78,16 +78,11 @@
column, object = args
return column.get_class_attr(session)
- def render_cells(self, session, data):
- data_map = dict()
-
- for col, datum in zip(self.columns, data):
- data_map[col.name] = datum
-
+ def render_cells(self, session, item):
writer = Writer()
for col in self.columns:
- writer.write(col.render(session, data_map))
+ writer.write(col.render(session, item))
return writer.to_string()
@@ -239,15 +234,6 @@
return cursor
- def render_items(self, session, object):
- writer = Writer()
- cursor = self.get_items(session, object)
-
- for row in cursor:
- self.item_tmpl.render(session, row, writer)
-
- return writer.to_string()
-
def render_cells(self, session, data):
data_map = dict()
More information about the rhmessaging-commits
mailing list