diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index fc50a09f61f7cc72341bb14c6ecf33fd1c10749e..4d6c99eb33c3591c1e21d237048759a5473b2e2e 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -155,11 +155,13 @@ def RunClusterTests():
 
   """
   for test, fn in [
+    ("create-cluster", qa_cluster.TestClusterInitDisk),
     ("cluster-renew-crypto", qa_cluster.TestClusterRenewCrypto),
     ("cluster-verify", qa_cluster.TestClusterVerify),
     ("cluster-reserved-lvs", qa_cluster.TestClusterReservedLvs),
     # TODO: add more cluster modify tests
     ("cluster-modify", qa_cluster.TestClusterModifyBe),
+    ("cluster-modify", qa_cluster.TestClusterModifyDisk),
     ("cluster-rename", qa_cluster.TestClusterRename),
     ("cluster-info", qa_cluster.TestClusterVersion),
     ("cluster-info", qa_cluster.TestClusterInfo),
diff --git a/qa/qa_cluster.py b/qa/qa_cluster.py
index 28b8aef167a69c22045299ac429faa15a506d2a1..662460073fa0a7447b510416da35beb17283e242 100644
--- a/qa/qa_cluster.py
+++ b/qa/qa_cluster.py
@@ -58,13 +58,22 @@ def _CheckFileOnAllNodes(filename, content):
     AssertEqual(qa_utils.GetCommandOutput(node["primary"], cmd), content)
 
 
+# data for testing failures due to bad keys/values for disk parameters
+_FAIL_PARAMS = ["nonexistent:resync-rate=1",
+                "drbd:nonexistent=1",
+                "drbd:resync-rate=invalid",
+                ]
+
+
+def TestClusterInitDisk():
+  """gnt-cluster init -D"""
+  name = qa_config.get("name")
+  for param in _FAIL_PARAMS:
+    AssertCommand(["gnt-cluster", "init", "-D", param, name], fail=True)
+
+
 def TestClusterInit(rapi_user, rapi_secret):
   """gnt-cluster init"""
-  # data for testing failures due to bad keys/values for disk parameters
-  fail_params = ("-D nonexistent:resync-rate=1",
-                 "-D drbd:nonexistent=1",
-                 "-D drbd:resync-rate=invalid")
-
   master = qa_config.GetMasterNode()
 
   rapi_dir = os.path.dirname(constants.RAPI_USERS_FILE)
@@ -110,22 +119,10 @@ def TestClusterInit(rapi_user, rapi_secret):
   if htype:
     cmd.append("--enabled-hypervisors=%s" % htype)
 
-  # test gnt-cluster init failures due to bad keys/values in disk parameters
-  for param in fail_params:
-    cmd.extend([param, qa_config.get("name")])
-    AssertCommand(cmd, fail=True)
-    cmd.pop()
-    cmd.pop()
-
   cmd.append(qa_config.get("name"))
   AssertCommand(cmd)
 
   cmd = ["gnt-cluster", "modify"]
-  # test gnt-cluster modify failures due to bad keys/values in disk parameters
-  for param in fail_params:
-    cmd.append(param)
-    AssertCommand(cmd, fail=True)
-    cmd.pop()
 
   # hypervisor parameter modifications
   hvp = qa_config.get("hypervisor-parameters", {})
@@ -279,6 +276,12 @@ def TestClusterReservedLvs():
     AssertCommand(cmd, fail=fail)
 
 
+def TestClusterModifyDisk():
+  """gnt-cluster modify -D"""
+  for param in _FAIL_PARAMS:
+    AssertCommand(["gnt-cluster", "modify", "-D", param], fail=True)
+
+
 def TestClusterModifyBe():
   """gnt-cluster modify -B"""
   for fail, cmd in [