Author: eallen Date: 2011-01-04 19:39:32 +0000 (Tue, 04 Jan 2011) New Revision: 4447
Modified: trunk/cumin/python/cumin/grid/negotiator.py trunk/cumin/python/cumin/model.py Log: Fix for BZ 637992: "Loading" message appears after 10 minutes if the quotas page is left open. Also fixed parsing logic to handle the case when the negotiator GROUP_NAMES were separated by spaces and not commas.
Modified: trunk/cumin/python/cumin/grid/negotiator.py =================================================================== --- trunk/cumin/python/cumin/grid/negotiator.py 2011-01-03 17:59:05 UTC (rev 4446) +++ trunk/cumin/python/cumin/grid/negotiator.py 2011-01-04 19:39:32 UTC (rev 4447) @@ -376,6 +376,8 @@ def split_group_names(self, group_string): groups = [] g_string = group_string.replace(", ", ",") + if not "," in g_string: + return g_string.split() return g_string.split(",")
def get_config_for_groups(self, session, config, groups):
Modified: trunk/cumin/python/cumin/model.py =================================================================== --- trunk/cumin/python/cumin/model.py 2011-01-03 17:59:05 UTC (rev 4446) +++ trunk/cumin/python/cumin/model.py 2011-01-04 19:39:32 UTC (rev 4447) @@ -82,6 +82,7 @@ try: try: store = self.group_names_by_negotiator[negotiator._qmf_agent_id] + store.extend_updates() except KeyError: store = NegotiatorGroupNamesStore(self, negotiator) store.start_updates() @@ -101,6 +102,7 @@ try: try: store = self.group_config_values_by_negotiator[negotiator._qmf_agent_id] + store.extend_updates() added = 0 for group in needed_groups: added += store.add_group_config(group, config) @@ -139,6 +141,7 @@ try: try: store = self.limits_by_negotiator[negotiator._qmf_agent_id] + store.extend_updates() except KeyError: store = NegotiatorLimitStore(self, negotiator) store.start_updates() @@ -159,6 +162,7 @@ try: try: store = self.job_summaries_by_submission[submission._id] + store.extend_updates() except KeyError: store = SubmissionJobSummaryStore(self, submission) store.start_updates() @@ -1037,6 +1041,9 @@ def start_updates(self): self.update_thread.start()
+ def extend_updates(self): + self.update_thread.extend() + def update(self): pass
@@ -1049,13 +1056,19 @@
self.store = store self.setDaemon(True) + self.ticks = 0
+ def extend(self): + # if we get a request for this object's info + # keep polling for another 10 minutes + self.ticks = 0 + def run(self): conn = self.store.model.app.database.get_connection() cursor = conn.cursor()
try: - for i in range(20): + while self.ticks < 20: try: self.store.update(cursor) self.store.exception = None @@ -1063,6 +1076,7 @@ log.exception(e) self.store.exception = e
+ self.ticks += 1 sleep(30) finally: conn.close()
cumin-developers@lists.fedorahosted.org