rhmessaging commits: r4256 - mgmt/newdata/cumin/python/cumin/messaging.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-09-07 10:56:35 -0400 (Tue, 07 Sep 2010)
New Revision: 4256
Modified:
mgmt/newdata/cumin/python/cumin/messaging/brokerlink.py
Log:
Fix for BZ 630858: Python exception when displaying broker link page.
The frame name was wrong.
Modified: mgmt/newdata/cumin/python/cumin/messaging/brokerlink.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/messaging/brokerlink.py 2010-09-06 14:48:32 UTC (rev 4255)
+++ mgmt/newdata/cumin/python/cumin/messaging/brokerlink.py 2010-09-07 14:56:35 UTC (rev 4256)
@@ -49,7 +49,7 @@
self.add_reference_filter(self.vhost, cls.vhostRef)
- frame = "main.messaging.broker.brokerlink"
+ frame = "main.messaging.broker.link"
col = ObjectLinkColumn(app, "name", cls.host, cls._id, frame)
self.add_column(col)
15 years, 7 months
rhmessaging commits: r4255 - in mgmt/newdata: rosemary/python/rosemary and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2010-09-06 10:48:32 -0400 (Mon, 06 Sep 2010)
New Revision: 4255
Modified:
mgmt/newdata/cumin/python/cumin/main.py
mgmt/newdata/cumin/python/cumin/model.py
mgmt/newdata/cumin/python/cumin/stat.py
mgmt/newdata/rosemary/python/rosemary/model.py
mgmt/newdata/rosemary/python/rosemary/sqloperation.py
Log:
For bz623189, to provide data continuity of samples between agent
restarts.
Sample data is now keyed by qmf agent and object id, not by the local
database ids used for objects. The latter change as agents come and
go.
This change requires a schema reload.
Modified: mgmt/newdata/cumin/python/cumin/main.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/main.py 2010-09-03 20:23:44 UTC (rev 4254)
+++ mgmt/newdata/cumin/python/cumin/main.py 2010-09-06 14:48:32 UTC (rev 4255)
@@ -54,6 +54,8 @@
self.operator_email = None
self.update_interval = 10
+ # self.model.sql_logging_enabled = True
+
def check(self):
log.info("Checking %s", self)
Modified: mgmt/newdata/cumin/python/cumin/model.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/model.py 2010-09-03 20:23:44 UTC (rev 4254)
+++ mgmt/newdata/cumin/python/cumin/model.py 2010-09-06 14:48:32 UTC (rev 4255)
@@ -458,21 +458,27 @@
class SamplesSqlAdapter(SqlAdapter):
qmf_update_col = '_qmf_update_time'
- _parent_id_col = "_parent_id"
- def __init__(self, app, table, parent_id):
+ def __init__(self, app, table, agent_id, object_id):
super(SamplesSqlAdapter, self).__init__(app, table)
- self.parent_id = parent_id
+ assert ";" not in agent_id
+ assert ";" not in object_id
+ col = self.table._qmf_agent_id
+ filter = SqlComparisonFilter(col, "'%s'" % agent_id)
+ self.query.add_filter(filter)
+
+ col = self.table._qmf_object_id
+ filter = SqlComparisonFilter(col, "'%s'" % object_id)
+ self.query.add_filter(filter)
+
def get_sql_options(self, options):
return options
def avg_samples(self, stat, secs, interval, secs2):
- table = self.table
- stat_col = table._columns_by_name[stat.name]
- updated_col = table._columns_by_name[self.qmf_update_col]
- parent_col = table._columns_by_name[self._parent_id_col]
+ stat_col = self.table._columns_by_name[stat.name]
+ updated_col = self.table._columns_by_name[self.qmf_update_col]
max_col = "max(%s) as interval_end" % updated_col.identifier
value_col = "cast(avg(%s) as integer) as value" % stat_col.identifier
@@ -484,10 +490,6 @@
columns.append(dev_col)
self.columns = columns
- self.query.filters = list()
- filter = SqlComparisonFilter(parent_col, self.parent_id, "=")
- self.query.add_filter(filter)
-
when = "now() - interval '%i seconds'" % int(secs + secs2)
filter = SqlComparisonFilter(updated_col, when, ">=")
self.query.add_filter(filter)
@@ -504,25 +506,18 @@
samples = self.get_data({}, options)
return samples
-
def samples(self, stat, secs, interval, method, secs2=0, delta=False):
if method == "avg":
return self.avg_samples(stat, secs, interval, secs2)
- table = self.table
- stat_col = table._columns_by_name[stat.name]
- updated_col = table._columns_by_name[self.qmf_update_col]
- parent_col = table._columns_by_name[self._parent_id_col]
+ stat_col = self.table._columns_by_name[stat.name]
+ updated_col = self.table._columns_by_name[self.qmf_update_col]
columns = list()
columns.append(updated_col.identifier)
columns.append(stat_col.identifier)
self.columns = columns
- self.query.filters = list()
- filter = SqlComparisonFilter(parent_col, self.parent_id, "=")
- self.query.add_filter(filter)
-
if not delta:
when = "now() - interval '%i seconds'" % int(secs + secs2)
filter = SqlComparisonFilter(updated_col, when, ">=")
Modified: mgmt/newdata/cumin/python/cumin/stat.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/stat.py 2010-09-03 20:23:44 UTC (rev 4254)
+++ mgmt/newdata/cumin/python/cumin/stat.py 2010-09-06 14:48:32 UTC (rev 4255)
@@ -108,7 +108,8 @@
object = self.object.get(session)
params = list()
- params.append("id=%i" % object._id)
+ params.append("agent=%s" % object._qmf_agent_id)
+ params.append("object=%s" % object._qmf_object_id)
params.append("chart_id=%s" % self.render_id(session, None))
params.append("duration=%s" % self.duration.get(session))
params.append("rpkg=%s" % object._class._package._name)
@@ -233,12 +234,13 @@
self.rosemary_package = Parameter(app, "rpkg")
self.add_parameter(self.rosemary_package)
- self.id = IntegerParameter(app, "id")
- self.add_parameter(self.id)
+ self.agent_id = StringParameter(app, "agent")
+ self.add_parameter(self.agent_id)
+ self.object_id = StringParameter(app, "object")
+ self.add_parameter(self.object_id)
+
param = Parameter(app, "param")
- self.add_parameter(param)
-
self.stats = ListParameter(app, "stat", param)
self.add_parameter(self.stats)
@@ -279,9 +281,16 @@
rclass = self.rosemary_class.get(session)
rosemary_package = self.app.model._packages_by_name[rpackage]
rosemary_class = rosemary_package._classes_by_name[rclass]
- id = str(self.id.get(session))
- adapter = SamplesSqlAdapter(self.app, rosemary_class.sql_samples_table, id)
+ table = rosemary_class.sql_samples_table
+ agent_id = self.agent_id.get(session)
+ object_id = self.object_id.get(session)
+
+ assert agent_id
+ assert object_id
+
+ adapter = SamplesSqlAdapter(self.app, table, agent_id, object_id)
+
stats = [getattr(rosemary_class, x) for x in self.stats.get(session)]
return (adapter, stats)
Modified: mgmt/newdata/rosemary/python/rosemary/model.py
===================================================================
--- mgmt/newdata/rosemary/python/rosemary/model.py 2010-09-03 20:23:44 UTC (rev 4254)
+++ mgmt/newdata/rosemary/python/rosemary/model.py 2010-09-06 14:48:32 UTC (rev 4255)
@@ -263,6 +263,8 @@
self._id.sql_column = self.sql_table.key_column
+ self.add_samples_sql()
+
for hdr in self._headers:
hdr.init()
@@ -286,8 +288,6 @@
ref.init()
def add_sql_entities(self):
- # Main table
-
name = "%s_id_seq" % self._name
self.sql_sequence = SqlSequence(self._package.sql_schema, name)
@@ -299,25 +299,9 @@
name = "%s_pk" % self._name
SqlPrimaryKeyConstraint(self.sql_table, name, (id_col,))
- # Stats table
-
- name = "%s_samples" % self._name
- self.sql_samples_table = SqlTable(self._package.sql_schema, name)
-
- name = "_parent_id"
- parent_col = SqlColumn(self.sql_samples_table, name, sql_int8)
- parent_col.foreign_key_column = id_col
-
- name = "%s_%s_idx" % (self.sql_samples_table._name, parent_col.name)
- index = SqlIndex(self._package.sql_schema, name, (parent_col,))
-
- name = "_qmf_update_time"
- SqlColumn(self.sql_samples_table, name, sql_timestamp)
-
def add_sql_constraints(self):
name = "%s_qmf_id_uq" % self._name
cols = (self._qmf_agent_id.sql_column, self._qmf_object_id.sql_column)
-
SqlUniqueConstraint(self.sql_table, name, cols)
def add_sql_operations(self):
@@ -329,8 +313,20 @@
self.sql_update_object = SqlUpdateObject(self.sql_table)
self.sql_delete_object = SqlDeleteObject(self.sql_table)
- table = self.sql_samples_table
+ def add_samples_sql(self):
+ name = "%s_samples" % self._name
+ table = SqlTable(self._package.sql_schema, name)
+ self.sql_samples_table = table
+
+ agent_col = SqlColumn(table, "_qmf_agent_id", sql_text)
+ object_col = SqlColumn(table, "_qmf_object_id", sql_text)
+
+ name = "%s_qmf_id_idx" % table._name
+ SqlIndex(self._package.sql_schema, name, (agent_col, object_col))
+
+ SqlColumn(table, "_qmf_update_time", sql_timestamp)
+
self.sql_samples_insert = SqlInsertObjectSamples(table)
self.sql_samples_delete = SqlDeleteObjectSamples(table)
@@ -714,7 +710,7 @@
log.debug("Initializing %s", self)
schema = self.cls._package.sql_schema
- name = "%s_%s_index" % (self.cls._name, self.name)
+ name = "%s_%s_idx" % (self.cls._name, self.name)
columns = [x.sql_column for x in self.attributes]
self.sql_index = SqlIndex(schema, name, columns)
Modified: mgmt/newdata/rosemary/python/rosemary/sqloperation.py
===================================================================
--- mgmt/newdata/rosemary/python/rosemary/sqloperation.py 2010-09-03 20:23:44 UTC (rev 4254)
+++ mgmt/newdata/rosemary/python/rosemary/sqloperation.py 2010-09-06 14:48:32 UTC (rev 4255)
@@ -104,8 +104,11 @@
cols = ["\"%s\"" % x for x in names]
vals = ["%%(%s)s" % x for x in names]
- cols.append("\"_parent_id\"")
- vals.append("%(_id)s")
+ cols.append("\"_qmf_agent_id\"")
+ cols.append("\"_qmf_object_id\"")
+
+ vals.append("%(_qmf_agent_id)s")
+ vals.append("%(_qmf_object_id)s")
cols = ", ".join(cols)
vals = ", ".join(vals)
15 years, 7 months
rhmessaging commits: r4254 - in mgmt/newdata/cumin/python/cumin: grid and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-09-03 16:23:44 -0400 (Fri, 03 Sep 2010)
New Revision: 4254
Modified:
mgmt/newdata/cumin/python/cumin/grid/job.py
mgmt/newdata/cumin/python/cumin/grid/job.strings
mgmt/newdata/cumin/python/cumin/model.py
Log:
1st half of fix for BZ 628701: Provide feedback when job info isn't available
This will display the status message returned from the qmf call when GetAds fails on the job details page.
Modified: mgmt/newdata/cumin/python/cumin/grid/job.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/job.py 2010-09-03 19:41:52 UTC (rev 4253)
+++ mgmt/newdata/cumin/python/cumin/grid/job.py 2010-09-03 20:23:44 UTC (rev 4254)
@@ -107,7 +107,8 @@
submission = values["obj"]
results = self.app.model.get_submission_job_summaries(submission)
- rows = self.process_results(results)
+ #TODO: handle error status and create an invok message
+ rows = self.process_results(results.data)
page = rows[first_index:last_index]
return page
@@ -127,7 +128,7 @@
def get_count(self, values):
submission = values["obj"]
results = self.app.model.get_submission_job_summaries(submission)
- return results and len(results) or 0
+ return results.data and len(results.data) or 0
class JobSelector(ObjectSelector):
def __init__(self, app, name, submission):
@@ -304,6 +305,7 @@
def do_get_items(self, session):
ad_list = self.items.get(session)
+ error = False
if not ad_list:
ad_list = list()
@@ -312,14 +314,16 @@
job_id = self.frame.job_id.get(session)
action = QmfCall(self.app, {'JobAd': {}})
- ads = action.execute(job_server, "GetJobAd", job_id).data['JobAd']
+ results = action.execute(job_server, "GetJobAd", job_id)
+ error = results.error
+ ads = results.data['JobAd']
cls = self.app.model.job_meta_data
ad_list = [self.gen_item(x, ads[x], cls, dtype=self.get_type(ads[x])) \
for x in ads if not x.startswith("!!")]
self.items.set(session, ad_list)
- return ad_list
+ return ad_list, error
def get_type(self, value):
if isinstance(value, (int, long)):
@@ -409,6 +413,7 @@
super(JobAdsGroups, self).__init__(app, name)
self.group_tmpl = WidgetTemplate(self, "group_html")
+ self.error_tmpl = WidgetTemplate(self, "error_html")
def render_groups(self, session):
writer = Writer()
@@ -420,14 +425,20 @@
return group
def render_properties(self, session, group):
- items = self.parent.get_group_items(session, group)
+ items, error = self.parent.get_group_items(session, group)
writer = Writer()
- for item in items:
- self.parent.item_renderer.render(writer, session, item)
+ if error:
+ self.error_tmpl.render(writer, session, error.message)
+ else:
+ for item in items:
+ self.parent.item_renderer.render(writer, session, item)
return writer.to_string()
+ def render_error_msg(self, session, msg):
+ return msg
+
class JobAdsViewer(JobAdsSet):
def __init__(self, app, name):
super(JobAdsViewer, self).__init__(app, name)
@@ -453,7 +464,7 @@
def get_group_items(self, session, group):
group_items = list()
- items = self.do_get_items(session)
+ items, error = self.do_get_items(session)
for item in items:
if "property" in item:
property = item["property"]
@@ -463,7 +474,7 @@
if item_group == group:
group_items.append(item)
- return group_items
+ return group_items, error
class JobAdsEditor(JobAdsViewer, CuminForm):
def __init__(self, app, name):
@@ -485,10 +496,10 @@
dtype=ads[x]["type"], error=ads[x],
orig=ads[x]["orig"]) for x in ads]
- items = super(JobAdsEditor, self).do_get_items(session)
+ items, error = super(JobAdsEditor, self).do_get_items(session)
for item in items:
item["path"] = self.ads.path
- return items
+ return items, error
def process_cancel(self, session):
branch = session.branch()
@@ -618,7 +629,7 @@
id = self.frame.id.get(session)
scheduler = self.frame.get_scheduler(session, id)
- ads = self.do_get_items(session)
+ ads, error = self.do_get_items(session)
for ad in ads:
if ad['name'] == "Out":
out_file = ad['value']
Modified: mgmt/newdata/cumin/python/cumin/grid/job.strings
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/job.strings 2010-09-03 19:41:52 UTC (rev 4253)
+++ mgmt/newdata/cumin/python/cumin/grid/job.strings 2010-09-03 20:23:44 UTC (rev 4254)
@@ -22,6 +22,15 @@
{wait}
</div>
+[JobAdsGroups.css]
+div.ads_error {
+ margin: 1em;
+ padding: 1em;
+ background-color: FFEEEE;
+ border: 1px solid red;
+ color: 660000;
+}
+
[JobAdsGroups.html]
<div id="{id}" style="position:relative;">
{groups}
@@ -44,6 +53,8 @@
</tbody>
</table>
+[JobAdsGroups.error_html]
+<div class="ads_error">{error_msg}</div>
[JobAdsViewer.property_html]
<tr>
Modified: mgmt/newdata/cumin/python/cumin/model.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/model.py 2010-09-03 19:41:52 UTC (rev 4253)
+++ mgmt/newdata/cumin/python/cumin/model.py 2010-09-03 20:23:44 UTC (rev 4254)
@@ -104,12 +104,12 @@
self.job_summaries_by_submission[submission._id] = store
for i in range(5):
- if store.data:
+ if store.data or store.status:
break
sleep(1)
- return store.data
+ return store
finally:
self.lock.release()
@@ -1559,10 +1559,10 @@
class QmfException(Exception):
def __init__(self, value):
super(QmfException, self).__init__(value)
- self.value = value
+ self.message = value
def __str__(self):
- return repr(self.value)
+ return repr(self.message)
class QmfCall(object):
def __init__(self, app, default=None, timeout=5):
@@ -1903,6 +1903,7 @@
def __init__(self, model):
self.model = model
self.data = None
+ self.status = None
self.update_thread = self.UpdateThread(self)
@@ -1950,7 +1951,11 @@
def update(self, cursor):
def completion(status, data):
- self.data = data["Limits"]
+ self.status = status
+ try:
+ self.data = data["Limits"]
+ except KeyError:
+ pass
self.model.app.session.call_method \
(completion, self.negotiator, "GetLimits", ())
@@ -1968,7 +1973,11 @@
def update(self, cursor):
def completion(status, data):
- self.data = data["Jobs"]
+ self.status = status
+ try:
+ self.data = data["Jobs"]
+ except KeyError:
+ pass
self.model.app.session.call_method \
(completion, self.submission, "GetJobSummaries", ())
15 years, 8 months
rhmessaging commits: r4253 - in mgmt/newdata: cumin/python/cumin and 2 other directories.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-09-03 15:41:52 -0400 (Fri, 03 Sep 2010)
New Revision: 4253
Modified:
mgmt/newdata/cumin/model/rosemary.xml
mgmt/newdata/cumin/python/cumin/messaging/binding.py
mgmt/newdata/cumin/python/cumin/messaging/exchange.py
mgmt/newdata/cumin/python/cumin/objectframe.py
mgmt/newdata/cumin/python/cumin/widgets.py
mgmt/newdata/rosemary/python/rosemary/model.py
mgmt/newdata/rosemary/python/rosemary/util.py
Log:
Re-fix BZ 537851: Display "Default exchange" when exchange name is empty string.
Extented rosemary.xml to allow specifying a method to use to format a property for display.
Modified: mgmt/newdata/cumin/model/rosemary.xml
===================================================================
--- mgmt/newdata/cumin/model/rosemary.xml 2010-09-02 22:23:10 UTC (rev 4252)
+++ mgmt/newdata/cumin/model/rosemary.xml 2010-09-03 19:41:52 UTC (rev 4253)
@@ -80,6 +80,7 @@
<class name="Exchange">
<property name="name">
<title>Name</title>
+ <formatter>fmt_exchange_name</formatter>
</property>
<statistic name="producerCount">
Modified: mgmt/newdata/cumin/python/cumin/messaging/binding.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/messaging/binding.py 2010-09-02 22:23:10 UTC (rev 4252)
+++ mgmt/newdata/cumin/python/cumin/messaging/binding.py 2010-09-03 19:41:52 UTC (rev 4253)
@@ -115,6 +115,9 @@
def render_header_content(self, session):
return "Exchange"
+ def render_cell_content(self, session, record):
+ return record[self.field.index] or "Default exchange"
+
class Queue(ObjectLinkColumn):
def render_header_content(self, session):
return "Queue"
@@ -419,6 +422,8 @@
def get_exchange(self, session):
exchange_string = self.exchange.get(session)
if exchange_string:
+ if exchange_string == "Default exchange":
+ exchange_string = ""
obj = self.form.object.get(session)
cls = self.app.model.org_apache_qpid_broker.Exchange
vhostid = obj._class._name == "Vhost" and obj._id or obj._vhostRef_id
@@ -528,6 +533,8 @@
if not self.errors.get(session):
queue = self.queue.get(session)
exchange = self.exchange.get(session)
+ if exchange == "Default exchange":
+ exchange = ""
key = self.key.get(session)
arguments = self.bindings.get(session)
obj = self.object.get(session)
Modified: mgmt/newdata/cumin/python/cumin/messaging/exchange.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/messaging/exchange.py 2010-09-02 22:23:10 UTC (rev 4252)
+++ mgmt/newdata/cumin/python/cumin/messaging/exchange.py 2010-09-03 19:41:52 UTC (rev 4253)
@@ -35,14 +35,6 @@
self.remove = ExchangeRemove(app, self)
self.add_binding = ExchangeBindingAdd(app, self)
- def get_title(self, session):
- title = super(ExchangeFrame, self).get_title(session)
-
- if title == "":
- title = "Default exchange"
-
- return title
-
class ExchangeRemove(ObjectFrameTask):
def get_title(self, session):
return "Remove"
@@ -78,7 +70,7 @@
self.vhost = vhost
frame = "main.messaging.broker.exchange"
- col = ObjectLinkColumn(app, "name", cls.name, cls._id, frame)
+ col = self.ExchangeNameColumn(app, "name", cls.name, cls._id, frame)
self.add_column(col)
self.add_attribute_column(cls.producerCount)
@@ -90,10 +82,17 @@
self.remove = ExchangeSelectionRemove(app, self)
+ class ExchangeNameColumn(ObjectLinkColumn):
+ def render_cell_content(self, session, record):
+ return record[self.field.index] or "Default exchange"
+
class ExchangeSelectionRemove(ObjectSelectorTask):
def get_title(self, session):
return "Remove"
+ def get_item_content(self, session, item):
+ return item.name or "Default exchange"
+
def do_invoke(self, invoc, exchange):
session = self.app.model.get_session_by_object(exchange)
session.exchange_delete(exchange=exchange.name)
Modified: mgmt/newdata/cumin/python/cumin/objectframe.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/objectframe.py 2010-09-02 22:23:10 UTC (rev 4252)
+++ mgmt/newdata/cumin/python/cumin/objectframe.py 2010-09-03 19:41:52 UTC (rev 4253)
@@ -93,7 +93,7 @@
for attr in self.get_attributes(session):
name = attr.title
- value = getattr(obj, attr.name, None)
+ value = obj.get_formatted_value(attr.name)
writer.write(self.entry.render(session, name, value))
Modified: mgmt/newdata/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/widgets.py 2010-09-02 22:23:10 UTC (rev 4252)
+++ mgmt/newdata/cumin/python/cumin/widgets.py 2010-09-03 19:41:52 UTC (rev 4253)
@@ -1483,7 +1483,7 @@
def render_value(self, session):
if self.disabled:
field = self.form.object.get(session)
- return fmt_shorten(field.name, pre=36, post=4)
+ return fmt_shorten(field.get_formatted_value("name"), pre=36, post=4)
else:
input_value = self.param.get(session)
return input_value and input_value or ""
Modified: mgmt/newdata/rosemary/python/rosemary/model.py
===================================================================
--- mgmt/newdata/rosemary/python/rosemary/model.py 2010-09-02 22:23:10 UTC (rev 4252)
+++ mgmt/newdata/rosemary/python/rosemary/model.py 2010-09-03 19:41:52 UTC (rev 4253)
@@ -2,7 +2,7 @@
from sqlmodel import *
from sqlquery import *
from sqltype import *
-from util import *
+import util
log = logging.getLogger("rosemary.model")
@@ -506,6 +506,7 @@
self.index = None
self.optional = None
self.unique = None
+ self.formatter = None
self.title = None
self.description = None
@@ -524,7 +525,13 @@
def extend(self, elem):
self.title = elem.findtext("title")
self.unique = elem.get("unique", "n") == "y" and True
+ formatter = elem.findtext("formatter")
+ if formatter:
+ meth = getattr(util, formatter, None)
+ if meth and callable(meth):
+ self.formatter = meth
+
def init(self):
if not self.title:
self.title = generate_title(self.name)
@@ -751,8 +758,16 @@
for attr in ("name", "Name"):
if hasattr(self, attr):
- return getattr(self, attr)
+ return self.get_formatted_value(attr)
+ def get_formatted_value(self, attr):
+ value = getattr(self, attr, None)
+ formatter = None
+ if attr in self._class._properties_by_name:
+ formatter = self._class._properties_by_name[attr].formatter
+ #TODO: handle formatters on statistics and headers as well
+ return formatter and formatter(value) or value
+
def __repr__(self):
name = self.__class__.__name__
args = (name, self._class, self._id, self._sync_time)
Modified: mgmt/newdata/rosemary/python/rosemary/util.py
===================================================================
--- mgmt/newdata/rosemary/python/rosemary/util.py 2010-09-02 22:23:10 UTC (rev 4252)
+++ mgmt/newdata/rosemary/python/rosemary/util.py 2010-09-03 19:41:52 UTC (rev 4253)
@@ -9,3 +9,5 @@
except ImportError:
from elementtree.ElementTree import *
+def fmt_exchange_name(value):
+ return value and value or "Default exchange"
15 years, 8 months
rhmessaging commits: r4252 - mgmt/newdata/cumin/python/cumin.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-09-02 18:23:10 -0400 (Thu, 02 Sep 2010)
New Revision: 4252
Modified:
mgmt/newdata/cumin/python/cumin/stat.py
Log:
Fix for BZ 628738: Use the same opacity in the stacked area charts as the other charts
Modified: mgmt/newdata/cumin/python/cumin/stat.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/stat.py 2010-09-02 19:35:39 UTC (rev 4251)
+++ mgmt/newdata/cumin/python/cumin/stat.py 2010-09-02 22:23:10 UTC (rev 4252)
@@ -967,7 +967,7 @@
self.points = self.Points(app, "points")
self.add_attribute(self.points)
- self.alpha = 1
+ #self.alpha = 1
def get_max_min(self, session, stats, samples):
max_value = 0
15 years, 8 months
rhmessaging commits: r4251 - store/trunk/cpp/lib.
by rhmessaging-commits@lists.jboss.org
Author: aconway
Date: 2010-09-02 15:35:39 -0400 (Thu, 02 Sep 2010)
New Revision: 4251
Modified:
store/trunk/cpp/lib/JournalImpl.cpp
store/trunk/cpp/lib/JournalImpl.h
Log:
Include queue name in journal timer late/overrun warning messages.
Modified: store/trunk/cpp/lib/JournalImpl.cpp
===================================================================
--- store/trunk/cpp/lib/JournalImpl.cpp 2010-09-02 14:59:17 UTC (rev 4250)
+++ store/trunk/cpp/lib/JournalImpl.cpp 2010-09-02 19:35:39 UTC (rev 4251)
@@ -41,8 +41,14 @@
using qpid::management::ManagementAgent;
namespace _qmf = qmf::com::redhat::rhm::store;
+InactivityFireEvent::InactivityFireEvent(JournalImpl* p, const qpid::sys::Duration timeout):
+ qpid::sys::TimerTask(timeout, "JournalInactive:"+p->id()), _parent(p) {}
+
void InactivityFireEvent::fire() { qpid::sys::Mutex::ScopedLock sl(_ife_lock); if (_parent) _parent->flushFire(); }
+GetEventsFireEvent::GetEventsFireEvent(JournalImpl* p, const qpid::sys::Duration timeout):
+ qpid::sys::TimerTask(timeout, "JournalGetEvents:"+p->id()), _parent(p) {}
+
void GetEventsFireEvent::fire() { qpid::sys::Mutex::ScopedLock sl(_gefe_lock); if (_parent) _parent->getEventsFire(); }
JournalImpl::JournalImpl(qpid::sys::Timer& timer_,
Modified: store/trunk/cpp/lib/JournalImpl.h
===================================================================
--- store/trunk/cpp/lib/JournalImpl.h 2010-09-02 14:59:17 UTC (rev 4250)
+++ store/trunk/cpp/lib/JournalImpl.h 2010-09-02 19:35:39 UTC (rev 4251)
@@ -52,8 +52,7 @@
qpid::sys::Mutex _ife_lock;
public:
- InactivityFireEvent(JournalImpl* p, const qpid::sys::Duration timeout):
- qpid::sys::TimerTask(timeout,"JournalInactive"), _parent(p) {}
+ InactivityFireEvent(JournalImpl* p, const qpid::sys::Duration timeout);
virtual ~InactivityFireEvent() {}
void fire();
inline void cancel() { qpid::sys::Mutex::ScopedLock sl(_ife_lock); _parent = 0; }
@@ -65,8 +64,7 @@
qpid::sys::Mutex _gefe_lock;
public:
- GetEventsFireEvent(JournalImpl* p, const qpid::sys::Duration timeout):
- qpid::sys::TimerTask(timeout,"JournalGetEvents"), _parent(p) {}
+ GetEventsFireEvent(JournalImpl* p, const qpid::sys::Duration timeout);
virtual ~GetEventsFireEvent() {}
void fire();
inline void cancel() { qpid::sys::Mutex::ScopedLock sl(_gefe_lock); _parent = 0; }
15 years, 8 months
rhmessaging commits: r4250 - mgmt/newdata/cumin/python/cumin.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-09-02 10:59:17 -0400 (Thu, 02 Sep 2010)
New Revision: 4250
Modified:
mgmt/newdata/cumin/python/cumin/stat.py
Log:
Fix for BZ 628735: Fix code that creates deviated values from raw values.
Modified: mgmt/newdata/cumin/python/cumin/stat.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/stat.py 2010-09-01 19:06:10 UTC (rev 4249)
+++ mgmt/newdata/cumin/python/cumin/stat.py 2010-09-02 14:59:17 UTC (rev 4250)
@@ -391,9 +391,14 @@
samples[stat] = adapter.samples(stat, duration, interval, method)
# take stddev into account for max and min y values
- deviated_values = [(nvl(x[1],0) + float(nvl(x[2],0))/2,
- nvl(x[1],0) - float(nvl(x[2],0))/2)
- for x in samples[stat] for stat in stats]
+ deviated_values = list()
+ for stat in stats:
+ for x in samples[stat]:
+ d1 = nvl(x[1], 0)
+ d2 = nvl(x[2], 0) / 2
+ dv = (d1 + d2, d1 - d2)
+ deviated_values.append(dv)
+
max_value = deviated_values and max(max(deviated_values)) or 1
min_value = deviated_values and min(min(deviated_values)) or 0
15 years, 8 months
rhmessaging commits: r4249 - mgmt/newdata/cumin/python/cumin/grid.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2010-09-01 15:06:10 -0400 (Wed, 01 Sep 2010)
New Revision: 4249
Modified:
mgmt/newdata/cumin/python/cumin/grid/pool.py
Log:
Remove now unused code
Modified: mgmt/newdata/cumin/python/cumin/grid/pool.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/pool.py 2010-09-01 18:43:19 UTC (rev 4248)
+++ mgmt/newdata/cumin/python/cumin/grid/pool.py 2010-09-01 19:06:10 UTC (rev 4249)
@@ -94,11 +94,6 @@
self.limits = LimitSet(app, "limits", self.object)
self.view.add_tab(self.limits)
- # XXX
- #self.submission_add = SubmissionAdd(app, self)
- #self.submission_vm_add = SubmissionVMAdd(app, self)
- #self.submission_dag_add = SubmissionDagAdd(app, self)
-
class NegotiatorAttribute(Attribute):
def __init__(self, app, name, collector):
super(PoolFrame.NegotiatorAttribute, self).__init__(app, name)
15 years, 8 months
rhmessaging commits: r4248 - mgmt/newdata/mint/python/mint.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2010-09-01 14:43:19 -0400 (Wed, 01 Sep 2010)
New Revision: 4248
Modified:
mgmt/newdata/mint/python/mint/session.py
Log:
Failure to bind all agents means we don't receive heartbeats
Modified: mgmt/newdata/mint/python/mint/session.py
===================================================================
--- mgmt/newdata/mint/python/mint/session.py 2010-08-31 15:16:19 UTC (rev 4247)
+++ mgmt/newdata/mint/python/mint/session.py 2010-09-01 18:43:19 UTC (rev 4248)
@@ -40,6 +40,8 @@
rcvHeartbeats=True,
userBindings=True)
+ self.qmf_session.bindAgent("*")
+
for pkg in self.qmf_packages:
self.qmf_session.bindPackage(pkg._name)
15 years, 8 months