Author: justi9
Date: 2010-07-07 17:34:03 -0400 (Wed, 07 Jul 2010)
New Revision: 4086
Modified:
mgmt/newdata/cumin/python/cumin/grid/submission.py
mgmt/newdata/cumin/python/cumin/messaging/brokergroup.py
mgmt/newdata/cumin/python/cumin/objecttask.py
mgmt/newdata/cumin/python/cumin/objecttask.strings
Log:
Improved task invocation display
Modified: mgmt/newdata/cumin/python/cumin/grid/submission.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/submission.py 2010-07-07 14:42:36 UTC (rev 4085)
+++ mgmt/newdata/cumin/python/cumin/grid/submission.py 2010-07-07 21:34:03 UTC (rev 4086)
@@ -89,6 +89,8 @@
ad["!!descriptors"] = descriptors
+ invoc.description = "Create submission '%s'" % description
+
self.qmf_call(invoc, scheduler, "SubmitJob", ad)
class SubmissionAddForm(ObjectTaskForm):
Modified: mgmt/newdata/cumin/python/cumin/messaging/brokergroup.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/messaging/brokergroup.py 2010-07-07 14:42:36 UTC (rev
4085)
+++ mgmt/newdata/cumin/python/cumin/messaging/brokergroup.py 2010-07-07 21:34:03 UTC (rev
4086)
@@ -134,6 +134,9 @@
cursor.close()
conn.commit()
+
+ invoc.description = "Add broker group '%s'" % name
+
invoc.end()
class BrokerGroupAddForm(BrokerGroupForm):
Modified: mgmt/newdata/cumin/python/cumin/objecttask.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/objecttask.py 2010-07-07 14:42:36 UTC (rev 4085)
+++ mgmt/newdata/cumin/python/cumin/objecttask.py 2010-07-07 21:34:03 UTC (rev 4086)
@@ -141,9 +141,9 @@
pass
class TaskInvocation(object):
- PENDING = "pending"
- FAILED = "failed"
- OK = "ok"
+ PENDING = "Pending"
+ FAILED = "Failed"
+ OK = "OK"
def __init__(self, task, login_session):
self.task = task
@@ -159,17 +159,24 @@
self.status = None
self.exception = None
+ self.description = None
self.status_code = None
self.output_args = None
self.dismissed = False
- def get_summary(self, session):
+ def get_description(self, session):
+ if self.description:
+ return self.description
+
+ return self.task.get_description(session)
+
+ def get_status(self, session):
if self.exception:
return str(self.exception)
- return "%s %r" % (self.status, self.output_args)
+ return self.status
def end(self):
log.debug("Ending %s", self.task)
@@ -184,16 +191,18 @@
log.info("Ended %s", self.task)
-class TaskInvocationSet(ItemSet):
+class TaskInvocationSet(Widget):
def __init__(self, app, name):
super(TaskInvocationSet, self).__init__(app, name)
- self.html_class = TaskInvocationSet.__name__
self.update_enabled = True
self.dismiss = IntegerParameter(app, "dismiss")
self.add_parameter(self.dismiss)
+ self.item_widget = TaskInvocationItem(app, "item")
+ self.add_child(self.item_widget)
+
def get_items(self, session):
login = session.client_session.attributes["login_session"]
return [x for x in login.task_invocations if not x.dismissed]
@@ -218,23 +227,34 @@
if items:
return super(TaskInvocationSet, self).do_render(session)
- def render_item_content(self, session, item):
- description = item.task.get_description(session)
+ def render_items(self, session):
+ writer = Writer()
+
+ for item in self.get_items(session):
+ writer.write(self.item_widget.render(session, item))
+
+ return writer.to_string()
+
+class TaskInvocationItem(Widget):
+ def render_icon_href(self, session, item):
+ return "resource?name=add-20.png"
+
+ def render_message(self, session, item):
+ description = item.get_description(session)
description = xml_escape(description)
if not description:
description = ""
- summary = item.get_summary(session)
+ status = item.get_status(session)
- # XXX oh honey
+ return "%s: %s" % (description, status)
+ def render_dismiss_href(self, session, item):
branch = session.branch()
- self.dismiss.set(branch, id(item))
- link = fmt_link(branch.marshal(), "Dismiss")
+ self.parent.dismiss.set(branch, id(item))
+ return branch.marshal()
- return ": ".join((description, summary, link))
-
class SelectionTask(Task):
def __init__(self, app, selector):
super(SelectionTask, self).__init__(app)
Modified: mgmt/newdata/cumin/python/cumin/objecttask.strings
===================================================================
--- mgmt/newdata/cumin/python/cumin/objecttask.strings 2010-07-07 14:42:36 UTC (rev 4085)
+++ mgmt/newdata/cumin/python/cumin/objecttask.strings 2010-07-07 21:34:03 UTC (rev 4086)
@@ -8,6 +8,19 @@
width: 80%;
}
+ul.TaskInvocationSet a.dismiss {
+ float: right;
+}
+
+[TaskInvocationSet.html]
+<ul id="{id}" class="{class}">{items}</ul>
+
+[TaskInvocationItem.html]
+<li>
+ <a class="dismiss" href="{dismiss_href}">Dismiss</a>
+ {message}
+</li>
+
[SelectionList.css]
ul.SelectionList {
list-style: none;