From 7fb50870f124c04a688fd2c138c82d1990228070 Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Fri, 30 Jul 2010 19:52:43 +0200
Subject: [PATCH] QA: Test renaming instance via RAPI

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
---
 qa/ganeti-qa.py   | 13 ++++++++++---
 qa/qa_instance.py |  6 +-----
 qa/qa_rapi.py     |  9 +++++++++
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index 12c39c041..80893f79c 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -175,9 +175,16 @@ def RunCommonInstanceTests(instance):
     RunTest(qa_instance.TestInstanceReboot, instance)
 
   if qa_config.TestEnabled('instance-rename'):
-    RunTest(qa_instance.TestInstanceShutdown, instance)
-    RunTest(qa_instance.TestInstanceRename, instance)
-    RunTest(qa_instance.TestInstanceStartup, instance)
+    rename_target = qa_config.get("rename", None)
+    if rename_target is None:
+      print qa_utils.FormatError("Can rename instance, 'rename' entry is"
+                                 " missing from configuration")
+    else:
+      RunTest(qa_instance.TestInstanceShutdown, instance)
+      RunTest(qa_instance.TestInstanceRename, instance, rename_target)
+      if qa_rapi.Enabled():
+        RunTest(qa_rapi.TestRapiInstanceRename, instance, rename_target)
+      RunTest(qa_instance.TestInstanceStartup, instance)
 
   if qa_config.TestEnabled('tags'):
     RunTest(qa_tags.TestInstanceTags, instance)
diff --git a/qa/qa_instance.py b/qa/qa_instance.py
index 411b72c81..45b1d6b87 100644
--- a/qa/qa_instance.py
+++ b/qa/qa_instance.py
@@ -129,15 +129,11 @@ def TestInstanceReinstall(instance):
                        utils.ShellQuoteArgs(cmd)).wait(), 0)
 
 
-def TestInstanceRename(instance):
+def TestInstanceRename(instance, rename_target):
   """gnt-instance rename"""
   master = qa_config.GetMasterNode()
 
   rename_source = instance['name']
-  rename_target = qa_config.get('rename', None)
-  if rename_target is None:
-    print qa_utils.FormatError('"rename" entry is missing')
-    return
 
   for name1, name2 in [(rename_source, rename_target),
                        (rename_target, rename_source)]:
diff --git a/qa/qa_rapi.py b/qa/qa_rapi.py
index 7583c5229..10c4033db 100644
--- a/qa/qa_rapi.py
+++ b/qa/qa_rapi.py
@@ -349,6 +349,15 @@ def TestRapiInstanceMigrate(instance):
   _WaitForRapiJob(_rapi_client.MigrateInstance(instance["name"]))
 
 
+def TestRapiInstanceRename(instance, rename_target):
+  """Test renaming instance via RAPI"""
+  rename_source = instance["name"]
+
+  for name1, name2 in [(rename_source, rename_target),
+                       (rename_target, rename_source)]:
+    _WaitForRapiJob(_rapi_client.RenameInstance(name1, name2))
+
+
 def TestInterClusterInstanceMove(src_instance, dest_instance, pnode, snode):
   """Test tools/move-instance"""
   master = qa_config.GetMasterNode()
-- 
GitLab