From a36f690c3e62aec5edefd179f3785e46e6ddb898 Mon Sep 17 00:00:00 2001 From: Bernardo Dal Seno <bdalseno@google.com> Date: Sat, 26 Jan 2013 02:40:03 +0100 Subject: [PATCH] QA: Run cluster-verify after instance tests We want to make sure that instance operations don't leave the cluster in a bad state. The "instance-remove-drbd-offline" test leaves some debris behind, so it's been moved to the last position. Signed-off-by: Bernardo Dal Seno <bdalseno@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- qa/ganeti-qa.py | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py index 7b0cf5f1c..f654ea6a3 100755 --- a/qa/ganeti-qa.py +++ b/qa/ganeti-qa.py @@ -514,6 +514,9 @@ def RunQa(): finally: qa_config.ReleaseNode(pnode) + # Make sure the cluster is clean before running instance tests + qa_cluster.AssertClusterVerify() + pnode = qa_config.AcquireNode() try: RunTestIf("tags", qa_tags.TestNodeTags, pnode) @@ -568,24 +571,7 @@ def RunQa(): del instance finally: qa_config.ReleaseManyNodes(inodes) - - # Test removing instance with offline drbd secondary - if qa_config.TestEnabled("instance-remove-drbd-offline"): - # Make sure the master is not put offline - snode = qa_config.AcquireNode(exclude=qa_config.GetMasterNode()) - try: - pnode = qa_config.AcquireNode(exclude=snode) - try: - instance = qa_instance.TestInstanceAddWithDrbdDisk([pnode, snode]) - qa_node.MakeNodeOffline(snode, "yes") - try: - RunTest(qa_instance.TestInstanceRemove, instance) - finally: - qa_node.MakeNodeOffline(snode, "no") - finally: - qa_config.ReleaseNode(pnode) - finally: - qa_config.ReleaseNode(snode) + qa_cluster.AssertClusterVerify() pnode = qa_config.AcquireNode() try: @@ -603,12 +589,33 @@ def RunQa(): qa_config.ReleaseNode(expnode) del expnode del instance + qa_cluster.AssertClusterVerify() finally: qa_config.ReleaseNode(pnode) RunExclusiveStorageTests() + # Test removing instance with offline drbd secondary + if qa_config.TestEnabled("instance-remove-drbd-offline"): + # Make sure the master is not put offline + snode = qa_config.AcquireNode(exclude=qa_config.GetMasterNode()) + try: + pnode = qa_config.AcquireNode(exclude=snode) + try: + instance = qa_instance.TestInstanceAddWithDrbdDisk([pnode, snode]) + qa_node.MakeNodeOffline(snode, "yes") + try: + RunTest(qa_instance.TestInstanceRemove, instance) + finally: + qa_node.MakeNodeOffline(snode, "no") + finally: + qa_config.ReleaseNode(pnode) + finally: + qa_config.ReleaseNode(snode) + # FIXME: This test leaves a DRBD device and two LVs behind + # Cluster-verify would fail + RunTestIf("create-cluster", qa_node.TestNodeRemoveAll) RunTestIf("cluster-destroy", qa_cluster.TestClusterDestroy) -- GitLab