Author: tmckay
Date: 2013-06-19 18:38:42 +0000 (Wed, 19 Jun 2013)
New Revision: 5755
Modified:
trunk/sage/python/sage/aviary/aviaryoperations.py
Log:
Don't allow duplicates in external name node and job tracker lists
Allow sync or aysnc
Modified: trunk/sage/python/sage/aviary/aviaryoperations.py
===================================================================
--- trunk/sage/python/sage/aviary/aviaryoperations.py 2013-06-19 18:13:58 UTC (rev 5754)
+++ trunk/sage/python/sage/aviary/aviaryoperations.py 2013-06-19 18:38:42 UTC (rev 5755)
@@ -1109,27 +1109,43 @@
def get_task_tracker_list(self, owner=None, callback=None):
return self._get_node_list(self.get_task_tracker, owner, callback)
- def add_external_name_node(self, ipc, url):
+ def add_external_name_node(self, ipc, url, callback=None):
self._hadoop_lock.acquire()
- self._external_name_nodes.append((ipc, url))
+ if not (ipc, url) in self._external_name_nodes:
+ self._external_name_nodes.append((ipc, url))
self._hadoop_lock.release()
-
- def get_external_name_nodes(self):
+ if callback:
+ callback("OK")
+ else:
+ return "OK"
+
+ def get_external_name_nodes(self, callback=None):
self._hadoop_lock.acquire()
res = copy.deepcopy(self._external_name_nodes)
self._hadoop_lock.release()
- return res
+ if callback:
+ callback("OK", res)
+ else:
+ return ("OK", res)
- def add_external_job_tracker(self, ipc, url):
+ def add_external_job_tracker(self, ipc, url, callback=None):
self._hadoop_lock.acquire()
- self._external_job_trackers.append((ipc, url))
+ if not (ipc, url) in self._external_job_trackers:
+ self._external_job_trackers.append((ipc, url))
self._hadoop_lock.release()
+ if callback:
+ callback("OK")
+ else:
+ return "OK"
- def get_external_job_trackers(self):
+ def get_external_job_trackers(self, callback=None):
self._hadoop_lock.acquire()
res = copy.deepcopy(self._external_job_trackers)
self._hadoop_lock.release()
- return res
+ if callback:
+ callback("OK", res)
+ else:
+ return ("OK", res)
def _make_id(self, client, val):
Show replies by date