From 938bde86d2831eff1c20ab4bfbb5885b94f79667 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Fri, 16 Jul 2010 19:44:06 +0200 Subject: [PATCH] QA: Test instance migration via CLI and RAPI Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- qa/ganeti-qa.py | 6 ++++++ qa/qa-sample.json | 1 + qa/qa_instance.py | 14 ++++++++++++++ qa/qa_rapi.py | 8 ++++++++ 4 files changed, 29 insertions(+) diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py index a9816129d..12c39c041 100755 --- a/qa/ganeti-qa.py +++ b/qa/ganeti-qa.py @@ -254,6 +254,12 @@ def RunHardwareFailureTests(instance, pnode, snode): if qa_config.TestEnabled('instance-failover'): RunTest(qa_instance.TestInstanceFailover, instance) + if qa_config.TestEnabled("instance-migrate"): + RunTest(qa_instance.TestInstanceMigrate, instance) + + if qa_rapi.Enabled(): + RunTest(qa_rapi.TestRapiInstanceMigrate, instance) + if qa_config.TestEnabled('instance-replace-disks'): othernode = qa_config.AcquireNode(exclude=[pnode, snode]) try: diff --git a/qa/qa-sample.json b/qa/qa-sample.json index 68669c05f..fe42edf56 100644 --- a/qa/qa-sample.json +++ b/qa/qa-sample.json @@ -72,6 +72,7 @@ "instance-import": true, "instance-info": true, "instance-list": true, + "instance-migrate": true, "instance-modify": true, "instance-reboot": true, "instance-reinstall": true, diff --git a/qa/qa_instance.py b/qa/qa_instance.py index 28b246cb2..411b72c81 100644 --- a/qa/qa_instance.py +++ b/qa/qa_instance.py @@ -160,6 +160,20 @@ def TestInstanceFailover(instance): utils.ShellQuoteArgs(cmd)).wait(), 0) +def TestInstanceMigrate(instance): + """gnt-instance migrate""" + master = qa_config.GetMasterNode() + + cmd = ["gnt-instance", "migrate", "--force", instance["name"]] + AssertEqual(StartSSH(master["primary"], + utils.ShellQuoteArgs(cmd)).wait(), 0) + + # ... and back + cmd = ["gnt-instance", "migrate", "--force", instance["name"]] + AssertEqual(StartSSH(master["primary"], + utils.ShellQuoteArgs(cmd)).wait(), 0) + + def TestInstanceInfo(instance): """gnt-instance info""" master = qa_config.GetMasterNode() diff --git a/qa/qa_rapi.py b/qa/qa_rapi.py index a8a54f738..7583c5229 100644 --- a/qa/qa_rapi.py +++ b/qa/qa_rapi.py @@ -341,6 +341,14 @@ def TestRapiInstanceRemove(instance, use_client): qa_config.ReleaseInstance(instance) +def TestRapiInstanceMigrate(instance): + """Test migrating instance via RAPI""" + # Move to secondary node + _WaitForRapiJob(_rapi_client.MigrateInstance(instance["name"])) + # And back to previous primary + _WaitForRapiJob(_rapi_client.MigrateInstance(instance["name"])) + + def TestInterClusterInstanceMove(src_instance, dest_instance, pnode, snode): """Test tools/move-instance""" master = qa_config.GetMasterNode() -- GitLab