From 69bc7a38ec7bf94cc578b50a5af9d17a01a60208 Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Fri, 11 Jan 2013 14:59:03 +0100
Subject: [PATCH] QA: Use instance name for rename test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Reported in issue 341. In some setups the instance live in a different
netblock from the cluster. Therefore a the configuration-global β€œrename”
name shouldn't be used for them. Instead another instance name is used.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
---
 qa/ganeti-qa.py   | 24 ++++++++++++++----------
 qa/qa-sample.json |  3 +++
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index de9c194d1..e7112ca7f 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -268,19 +268,23 @@ def RunCommonInstanceTests(instance):
             qa_rapi.TestRapiInstanceReinstall, instance)
 
   if qa_config.TestEnabled("instance-rename"):
-    rename_source = instance["name"]
-    rename_target = qa_config.get("rename", None)
-    # perform instance rename to the same name
-    RunTest(qa_instance.TestInstanceRenameAndBack,
-            rename_source, rename_source)
-    RunTestIf("rapi", qa_rapi.TestRapiInstanceRenameAndBack,
-              rename_source, rename_source)
-    if rename_target is not None:
-      # perform instance rename to a different name, if we have one configured
+    tgt_instance = qa_config.AcquireInstance()
+    try:
+      rename_source = instance["name"]
+      rename_target = tgt_instance["name"]
+      # perform instance rename to the same name
       RunTest(qa_instance.TestInstanceRenameAndBack,
-              rename_source, rename_target)
+              rename_source, rename_source)
       RunTestIf("rapi", qa_rapi.TestRapiInstanceRenameAndBack,
+                rename_source, rename_source)
+      if rename_target is not None:
+        # perform instance rename to a different name, if we have one configured
+        RunTest(qa_instance.TestInstanceRenameAndBack,
                 rename_source, rename_target)
+        RunTestIf("rapi", qa_rapi.TestRapiInstanceRenameAndBack,
+                  rename_source, rename_target)
+    finally:
+      qa_config.ReleaseInstance(tgt_instance)
 
   RunTestIf(["instance-grow-disk"], qa_instance.TestInstanceGrowDisk, instance)
 
diff --git a/qa/qa-sample.json b/qa/qa-sample.json
index 88902b4f9..4ac45f440 100644
--- a/qa/qa-sample.json
+++ b/qa/qa-sample.json
@@ -5,7 +5,10 @@
   "# sign (#).": null,
 
   "name": "xen-test",
+
+  "# Name used for renaming cluster": null,
   "rename": "xen-test-rename",
+
   "enabled-hypervisors": "xen-pvm",
   "# Dict of hypervisor name and parameters (like on the cmd line)": null,
   "hypervisor-parameters": {},
-- 
GitLab