Author: croberts
Date: 2011-05-24 02:39:26 +0000 (Tue, 24 May 2011)
New Revision: 4779
Modified:
trunk/cumin/model/rosemary.xml
trunk/cumin/python/cumin/grid/dashboard.py
trunk/cumin/python/cumin/grid/negotiator.py
trunk/cumin/python/cumin/grid/scheduler.py
trunk/cumin/python/cumin/objectselector.py
trunk/rosemary/python/rosemary/util.py
Log:
Addressing BZ
https://bugzilla.redhat.com/show_bug.cgi?id=700540 to make the uptime
display human-readable.
Modified: trunk/cumin/model/rosemary.xml
===================================================================
--- trunk/cumin/model/rosemary.xml 2011-05-23 20:24:43 UTC (rev 4778)
+++ trunk/cumin/model/rosemary.xml 2011-05-24 02:39:26 UTC (rev 4779)
@@ -308,6 +308,7 @@
<statistic name="MonitorSelfAge">
<title>Up-time</title>
+ <formatter>fmt_timestamp_ddhhmmss</formatter>
</statistic>
<statistic name="MonitorSelfImageSize">
@@ -444,6 +445,7 @@
<statistic name="MonitorSelfAge">
<title>Up-time</title>
+ <formatter>fmt_timestamp_ddhhmmss</formatter>
</statistic>
</class>
@@ -536,6 +538,7 @@
<statistic name="MonitorSelfAge">
<title>Up-time</title>
+ <formatter>fmt_timestamp_ddhhmmss</formatter>
</statistic>
</class>
</package>
Modified: trunk/cumin/python/cumin/grid/dashboard.py
===================================================================
--- trunk/cumin/python/cumin/grid/dashboard.py 2011-05-23 20:24:43 UTC (rev 4778)
+++ trunk/cumin/python/cumin/grid/dashboard.py 2011-05-24 02:39:26 UTC (rev 4779)
@@ -13,7 +13,7 @@
from cumin.sqladapter import ObjectSqlAdapter
from cumin.stat import StatSet, PieChartPage, StatFlashChart
from cumin.objectselector import ObjectSelector, MonitorSelfStatColumn,
ObjectTableColumn, ObjectTable,\
- ObjectLinkColumn, CsvStatsExporter, ExportButton
+ ObjectLinkColumn, CsvStatsExporter, ExportButton, MonitorSelfAgeColumn
from cumin.util import rgb_to_string
from negotiator import NegotiatorAttribute
@@ -877,7 +877,8 @@
col = ObjectLinkColumn(app, "name", cls.Name, cls._id, frame)
self.add_column(col)
- self.add_attribute_column(cls.MonitorSelfAge)
+ stat = MonitorSelfAgeColumn(app, "monitorSelfAge", cls.MonitorSelfAge)
+ self.add_column(stat)
self.add_attribute_column(cls.JobSubmissionRate)
self.add_attribute_column(cls.JobStartRate)
@@ -995,10 +996,10 @@
col.static_header = static
self.add_column(col)
- stat = ObjectTableColumn(app, cls.MonitorSelfAge.name, cls.MonitorSelfAge)
+ stat = MonitorSelfAgeColumn(app, "monitorSelfAge", cls.MonitorSelfAge)
stat.static_header = static
self.add_column(stat)
-
+
stat = MonitorSelfStatColumn(app, cls.MonitorSelfRegisteredSocketCount.name,
cls.MonitorSelfRegisteredSocketCount)
stat.static_header = static
self.add_column(stat)
Modified: trunk/cumin/python/cumin/grid/negotiator.py
===================================================================
--- trunk/cumin/python/cumin/grid/negotiator.py 2011-05-23 20:24:43 UTC (rev 4778)
+++ trunk/cumin/python/cumin/grid/negotiator.py 2011-05-24 02:39:26 UTC (rev 4779)
@@ -3,7 +3,7 @@
from cumin.objectframe import ObjectFrame, ObjectFrameTask,\
ObjectFrameTaskFeedbackForm
from cumin.objectselector import ObjectSelector, ObjectLinkColumn,\
- MonitorSelfStatColumn, ObjectTable
+ MonitorSelfStatColumn, ObjectTable, MonitorSelfAgeColumn
from wooly import Widget, Attribute, Parameter
from parsley.stringex import rpartition
from cumin.parameters import RosemaryObjectParameter
@@ -39,7 +39,7 @@
self.add_attribute_column(cls.Machine)
self.add_attribute_column(cls.System)
- stat = MonitorSelfStatColumn(app, cls.MonitorSelfAge.name, cls.MonitorSelfAge)
+ stat = MonitorSelfAgeColumn(app, cls.MonitorSelfAge.name, cls.MonitorSelfAge)
self.add_column(stat)
stat = MonitorSelfStatColumn(app, cls.MonitorSelfCPUUsage.name,
cls.MonitorSelfCPUUsage)
self.add_column(stat)
Modified: trunk/cumin/python/cumin/grid/scheduler.py
===================================================================
--- trunk/cumin/python/cumin/grid/scheduler.py 2011-05-23 20:24:43 UTC (rev 4778)
+++ trunk/cumin/python/cumin/grid/scheduler.py 2011-05-24 02:39:26 UTC (rev 4779)
@@ -9,7 +9,7 @@
from submitter import SubmitterFrame, SubmitterSelector
from submission import PoolSubmissionSelector
from cumin.objectselector import ObjectSelectorTable, ObjectSelector,\
- ObjectLinkColumn, MonitorSelfStatColumn, ObjectTable
+ ObjectLinkColumn, MonitorSelfStatColumn, ObjectTable, MonitorSelfAgeColumn
from cumin.grid.submission import SubmissionFrame
strings = StringCatalog(__file__)
@@ -90,7 +90,7 @@
self.add_attribute_column(cls.TotalRunningJobs)
self.add_attribute_column(cls.TotalHeldJobs)
- stat = MonitorSelfStatColumn(app, cls.MonitorSelfAge.name, cls.MonitorSelfAge)
+ stat = MonitorSelfAgeColumn(app, cls.MonitorSelfAge.name, cls.MonitorSelfAge)
self.add_column(stat)
stat = MonitorSelfStatColumn(app, cls.MonitorSelfCPUUsage.name,
cls.MonitorSelfCPUUsage)
self.add_column(stat)
Modified: trunk/cumin/python/cumin/objectselector.py
===================================================================
--- trunk/cumin/python/cumin/objectselector.py 2011-05-23 20:24:43 UTC (rev 4778)
+++ trunk/cumin/python/cumin/objectselector.py 2011-05-24 02:39:26 UTC (rev 4779)
@@ -548,7 +548,14 @@
if parts[0] == "Monitor" and parts[1] == "self":
return " ".join(parts[2:])
return title
-
+
+class MonitorSelfAgeColumn(ObjectTableColumn):
+ def render_cell_content(self, session, record):
+ mins, secs = divmod(self.field.get_content(session, record), 60)
+ hours, mins = divmod(mins, 60)
+ days = hours / 24
+ return '%02d:%02d:%02d:%02d' % (days, hours, mins, secs)
+
class ExportButton(Widget):
def __init__(self, app, name, args, exporter, file_name):
super(ExportButton, self).__init__(app, name)
Modified: trunk/rosemary/python/rosemary/util.py
===================================================================
--- trunk/rosemary/python/rosemary/util.py 2011-05-23 20:24:43 UTC (rev 4778)
+++ trunk/rosemary/python/rosemary/util.py 2011-05-24 02:39:26 UTC (rev 4779)
@@ -14,4 +14,10 @@
return value and value or "Default exchange"
def fmt_kbmb(value):
- return fmt_bytes(value * 1024)
\ No newline at end of file
+ return fmt_bytes(value * 1024)
+
+def fmt_timestamp_ddhhmmss(value):
+ mins, secs = divmod(value, 60)
+ hours, mins = divmod(mins, 60)
+ days = hours / 24
+ return '%02d:%02d:%02d:%02d' % (days, hours, mins, secs)
\ No newline at end of file