From 8e00939c66ebc3f93a4ee34412e2ab5b09e95e0b Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Wed, 6 Aug 2008 13:35:38 +0000
Subject: [PATCH] Maintain node list in job queue

The code makes sure not to include the master in the list.

Reviewed-by: iustinp
---
 lib/jqueue.py | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/lib/jqueue.py b/lib/jqueue.py
index feaedfb0a..3c2b941b0 100644
--- a/lib/jqueue.py
+++ b/lib/jqueue.py
@@ -291,7 +291,13 @@ class JobQueue(object):
                                            " check in jstore and here")
 
     # Get initial list of nodes
-    self._nodes = self.context.cfg.GetNodeList()
+    self._nodes = set(self.context.cfg.GetNodeList())
+
+    # Remove master node
+    try:
+      self._nodes.remove(self._my_hostname)
+    except ValueError:
+      pass
 
     # TODO: Check consistency across nodes
 
@@ -333,9 +339,15 @@ class JobQueue(object):
     except ValueError:
       pass
 
+  def _WriteAndReplicateFileUnlocked(self, file_name, data):
+    """Writes a file locally and then replicates it to all nodes.
+
+    """
+    utils.WriteFile(file_name, data=data)
+
     failed_nodes = 0
-    result = rpc.call_upload_file(nodes, file_name)
-    for node in nodes:
+    result = rpc.call_upload_file(self._nodes, file_name)
+    for node in self._nodes:
       if not result[node]:
         failed_nodes += 1
         logging.error("Copy of job queue file to node %s failed", node)
-- 
GitLab