Fix list-drbd QA test
authorHrvoje Ribicic <riba@google.com>
Sun, 30 Mar 2014 17:08:07 +0000 (19:08 +0200)
committerHrvoje Ribicic <riba@google.com>
Fri, 4 Apr 2014 09:11:01 +0000 (11:11 +0200)
The list-drbd QA test assumed falsely that no instance has more than
one disk. This can happen, and this patch accounts for it.

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

qa/qa_node.py

index 4d820b8..3e0dbb3 100644 (file)
@@ -461,8 +461,17 @@ def TestNodeListDrbd(node, is_drbd):
   # primary or one of the secondaries
   if is_drbd:
     # Invoked for both primary and secondary
-    drbd_node, _, _, _, _, drbd_peer = result_output.split()
-    AssertIn(node.primary, [drbd_node, drbd_peer])
+    per_disk_info = result_output.splitlines()
+    for line in per_disk_info:
+      try:
+        drbd_node, _, _, _, _, drbd_peer = line.split()
+      except ValueError:
+        raise qa_error.Error("Could not examine list-drbd output: expected a"
+                             " single row of 6 entries, found the following:"
+                             " %s" % line)
+
+      AssertIn(node.primary, [drbd_node, drbd_peer],
+               msg="The output %s does not contain the node" % line)
   else:
     # Output should be empty, barring newlines
     AssertEqual(result_output.strip(), "")