From 59303563846071b61e298d14b53ccfff8eede475 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Tue, 2 Dec 2008 05:05:25 +0000 Subject: [PATCH] Restrict job propagation to master candidates only This patch restricts the job propagation to master candidates only, by not registering non-candidates in the job queue node lists. Note that we do intentionally purge the job queue if a node is toggled to non-master status. Reviewed-by: imsnah --- lib/jqueue.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/jqueue.py b/lib/jqueue.py index 9fb6f789b..b3c7dbb31 100644 --- a/lib/jqueue.py +++ b/lib/jqueue.py @@ -522,7 +522,8 @@ class JobQueue(object): # Get initial list of nodes self._nodes = dict((n.name, n.primary_ip) - for n in self.context.cfg.GetAllNodesInfo().values()) + for n in self.context.cfg.GetAllNodesInfo().values() + if n.master_candidate) # Remove master node try: @@ -596,6 +597,12 @@ class JobQueue(object): # Clean queue directory on added node rpc.RpcRunner.call_jobqueue_purge(node_name) + if not node.master_candidate: + # remove if existing, ignoring errors + self._nodes.pop(node_name, None) + # and skip the replication of the job ids + return + # Upload the whole queue excluding archived jobs files = [self._GetJobPath(job_id) for job_id in self._GetJobIDsUnlocked()] -- GitLab