Cluster-verify should report nodes in the same nodegroup with different
values of the exclusive_storage flag.

Signed-off-by: Bernardo Dal Seno <[email protected]>
---
 qa/ganeti-qa.py  |  2 ++
 qa/qa_cluster.py | 18 ++++++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index 93ab049..ea70e0a 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -464,6 +464,8 @@ def RunExclusiveStorageTests():
 
   node = qa_config.AcquireNode()
   try:
+    qa_cluster.TestExclStorSingleNode(node)
+
     qa_cluster.TestSetExclStorCluster(True)
     if qa_config.TestEnabled("instance-add-plain-disk"):
       # Make sure that the cluster doesn't have any pre-existing problem
diff --git a/qa/qa_cluster.py b/qa/qa_cluster.py
index 30a2fd4..a91e51e 100644
--- a/qa/qa_cluster.py
+++ b/qa/qa_cluster.py
@@ -645,3 +645,21 @@ def TestSetExclStorCluster(newvalue):
   if effvalue != newvalue:
     raise qa_error.Error("exclusive_storage has the wrong value: %s instead"
                          " of %s" % (effvalue, newvalue))
+
+
+def _BuildSetESCmd(value, node_name):
+  return ["gnt-node", "modify", "--node-parameters",
+          "exclusive_storage=%s" % value, node_name]
+
+
+def TestExclStorSingleNode(node):
+  """cluster-verify reports exclusive_storage set only on one node.
+
+  """
+  node_name = node["primary"]
+  es_val = _GetBoolClusterField("exclusive_storage")
+  assert not es_val
+  AssertCommand(_BuildSetESCmd(True, node_name))
+  AssertClusterVerify(fail=True, errors=[constants.CV_EGROUPMIXEDESFLAG])
+  AssertCommand(_BuildSetESCmd("default", node_name))
+  AssertClusterVerify()
-- 
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