From 7d7609a37c735db26fc895c04e3013aac8ddd9f9 Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Mon, 19 Nov 2007 18:38:14 +0000
Subject: [PATCH] Add basic QA tests for DRBD 8.

Reviewed-by: schreiberal
---
 qa/ganeti-qa.py   | 31 +++++++++++++++++++------------
 qa/qa-sample.yaml |  1 +
 qa/qa_instance.py |  7 +++++++
 3 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index c68d0fb36..1d62e67c6 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -269,18 +269,25 @@ def main():
       RunTest(qa_instance.TestInstanceRemove, instance)
       del instance
 
-    if qa_config.TestEnabled('instance-add-remote-raid-disk'):
-      snode = qa_config.AcquireNode(exclude=pnode)
-      try:
-        instance = RunTest(qa_instance.TestInstanceAddWithRemoteRaidDisk,
-                           pnode, snode)
-        RunCommonInstanceTests(instance)
-        RunExportImportTests(instance, pnode)
-        RunHardwareFailureTests(instance, pnode, snode)
-        RunTest(qa_instance.TestInstanceRemove, instance)
-        del instance
-      finally:
-        qa_config.ReleaseNode(snode)
+    multinode_tests = [
+      ('instance-add-remote-raid-disk',
+       qa_instance.TestInstanceAddWithRemoteRaidDisk),
+      ('instance-add-drbd-disk',
+       qa_instance.TestInstanceAddWithDrbdDisk),
+    ]
+
+    for name, func in multinode_tests:
+      if qa_config.TestEnabled(name):
+        snode = qa_config.AcquireNode(exclude=pnode)
+        try:
+          instance = RunTest(func, pnode, snode)
+          RunCommonInstanceTests(instance)
+          RunExportImportTests(instance, pnode)
+          RunHardwareFailureTests(instance, pnode, snode)
+          RunTest(qa_instance.TestInstanceRemove, instance)
+          del instance
+        finally:
+          qa_config.ReleaseNode(snode)
 
   finally:
     qa_config.ReleaseNode(pnode)
diff --git a/qa/qa-sample.yaml b/qa/qa-sample.yaml
index 0285d18ba..4cac0debb 100644
--- a/qa/qa-sample.yaml
+++ b/qa/qa-sample.yaml
@@ -48,6 +48,7 @@ tests:
   instance-add-plain-disk: True
   instance-add-local-mirror-disk: True
   instance-add-remote-raid-disk: True
+  instance-add-drbd-disk: False
   instance-list: True
   instance-failover: True
   instance-info: True
diff --git a/qa/qa_instance.py b/qa/qa_instance.py
index 7ef40ca43..6360bb0dd 100644
--- a/qa/qa_instance.py
+++ b/qa/qa_instance.py
@@ -82,6 +82,13 @@ def TestInstanceAddWithRemoteRaidDisk(node, node2):
                    'remote_raid1')
 
 
+@qa_utils.DefineHook('instance-add-drbd-disk')
+def TestInstanceAddWithDrbdDisk(node, node2):
+  """gnt-instance add -t drbd"""
+  return _DiskTest("%s:%s" % (node['primary'], node2['primary']),
+                   'drbd')
+
+
 @qa_utils.DefineHook('instance-remove')
 def TestInstanceRemove(instance):
   """gnt-instance remove"""
-- 
GitLab