From 102b115b096d83b777b0799081b2f42b2eeb9890 Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Tue, 13 May 2008 14:26:57 +0000
Subject: [PATCH] Forward-port changes made to readd in 1.2

qa_node.py: Fix typo in message
cmdlib.py: Don't add readded node to node list
ganeti-qa.py: Make sure readd isn't done for master node

Reviewed-by: iustinp
---
 lib/cmdlib.py   |  4 +++-
 qa/ganeti-qa.py | 11 ++++++++---
 qa/qa_node.py   |  2 +-
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index c601c441e..099def196 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -1862,7 +1862,9 @@ class LUAddNode(LogicalUnit):
     # Distribute updated /etc/hosts and known_hosts to all nodes,
     # including the node just added
     myself = self.cfg.GetNodeInfo(self.sstore.GetMasterNode())
-    dist_nodes = self.cfg.GetNodeList() + [node]
+    dist_nodes = self.cfg.GetNodeList()
+    if not self.op.readd:
+      dist_nodes.append(node)
     if myself.name in dist_nodes:
       dist_nodes.remove(myself.name)
 
diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index 47db0b790..4d0ac6b32 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -258,14 +258,19 @@ def main():
   if qa_config.TestEnabled('tags'):
     RunTest(qa_tags.TestClusterTags)
 
+  if qa_config.TestEnabled('node-readd'):
+    master = qa_config.GetMasterNode()
+    pnode = qa_config.AcquireNode(exclude=master)
+    try:
+      RunTest(qa_node.TestNodeReadd, pnode)
+    finally:
+      qa_config.ReleaseNode(pnode)
+
   pnode = qa_config.AcquireNode()
   try:
     if qa_config.TestEnabled('tags'):
       RunTest(qa_tags.TestNodeTags, pnode)
 
-    if qa_config.TestEnabled('node-readd'):
-      RunTest(qa_node.TestNodeReadd, pnode)
-
     if qa_config.TestEnabled('instance-add-plain-disk'):
       instance = RunTest(qa_instance.TestInstanceAddWithPlainDisk, pnode)
       RunCommonInstanceTests(instance)
diff --git a/qa/qa_node.py b/qa/qa_node.py
index 20840bde1..f337734e5 100644
--- a/qa/qa_node.py
+++ b/qa/qa_node.py
@@ -35,7 +35,7 @@ def _NodeAdd(node, readd=False):
   if not readd and node.get('_added', False):
     raise qa_error.Error("Node %s already in cluster" % node['primary'])
   elif readd and not node.get('_added', False):
-    raise qa_error.Error("Node not yet %s in cluster" % node['primary'])
+    raise qa_error.Error("Node %s not yet in cluster" % node['primary'])
 
   cmd = ['gnt-node', 'add']
   if node.get('secondary', None):
-- 
GitLab