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 <[email protected]>
---
 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 44a4235..25ebf8e 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -512,6 +512,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)
@@ -566,24 +569,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:
@@ -601,12 +587,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)
-- 
1.8.1

-- 
You received this message because you are subscribed to the Google Groups 
"ganeti-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to