From be8aecab259afb5591869ecc52a6b28b2060f01c Mon Sep 17 00:00:00 2001
From: Stephen Shirley <diamond@google.com>
Date: Mon, 31 Jan 2011 15:19:48 +0100
Subject: [PATCH] cluster-merge should refuse to merge own cluster

Also fix type of Merger.cluster_name from list to string. This would
have triggered an error in sshRunner if cluster keys were in use.

Signed-off-by: Stephen Shirley <diamond@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
---
 tools/cluster-merge | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/cluster-merge b/tools/cluster-merge
index fbb2b6871..5b6d0b650 100755
--- a/tools/cluster-merge
+++ b/tools/cluster-merge
@@ -102,7 +102,7 @@ class Merger(object):
     self.clusters = clusters
     self.pause_period = pause_period
     self.work_dir = tempfile.mkdtemp(suffix="cluster-merger")
-    self.cluster_name = cli.GetClient().QueryConfigValues(["cluster_name"])
+    (self.cluster_name, ) = cli.GetClient().QueryConfigValues(["cluster_name"])
     self.ssh_runner = ssh.SshRunner(self.cluster_name)
 
   def Setup(self):
@@ -116,6 +116,10 @@ class Merger(object):
     """
     (remote_path, _, _) = ssh.GetUserFiles("root")
 
+    if self.cluster_name in self.clusters:
+      raise errors.CommandError("Cannot merge cluster %s with itself" %
+                                self.cluster_name)
+
     # Fetch remotes private key
     for cluster in self.clusters:
       result = self._RunCmd(cluster, "cat %s" % remote_path, batch=False,
-- 
GitLab