From 21e2734ff4966735948b309d9664819f47810e64 Mon Sep 17 00:00:00 2001 From: Bernardo Dal Seno <bdalseno@google.com> Date: Mon, 21 Jan 2013 14:58:55 +0100 Subject: [PATCH] QA: Cluster-verify reports shared PVs with exclusive storage Exclusive storage forbids sharing PVs between unrelated LVs. This is a test that cluster-verify correctly report such cases. Signed-off-by: Bernardo Dal Seno <bdalseno@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- 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 f4c678561..9a207ce85 100755 --- a/qa/ganeti-qa.py +++ b/qa/ganeti-qa.py @@ -468,6 +468,8 @@ def RunExclusiveStorageTests(): qa_cluster.TestExclStorSingleNode(node) qa_cluster.TestSetExclStorCluster(True) + qa_cluster.TestExclStorSharedPv(node) + if qa_config.TestEnabled("instance-add-plain-disk"): # Make sure that the cluster doesn't have any pre-existing problem qa_cluster.AssertClusterVerify() diff --git a/qa/qa_cluster.py b/qa/qa_cluster.py index 1960acd72..aeb4d43bf 100644 --- a/qa/qa_cluster.py +++ b/qa/qa_cluster.py @@ -674,3 +674,21 @@ def TestExclStorSingleNode(node): AssertClusterVerify(fail=True, errors=[constants.CV_EGROUPMIXEDESFLAG]) AssertCommand(_BuildSetESCmd("default", node_name)) AssertClusterVerify() + + +def TestExclStorSharedPv(node): + """cluster-verify reports LVs that share the same PV with exclusive_storage. + + """ + vgname = qa_config.get("vg-name", constants.DEFAULT_VG) + lvname1 = _QA_LV_PREFIX + "vol1" + lvname2 = _QA_LV_PREFIX + "vol2" + node_name = node["primary"] + AssertCommand(["lvcreate", "-L1G", "-n", lvname1, vgname], node=node_name) + AssertClusterVerify(fail=True, errors=[constants.CV_ENODEORPHANLV]) + AssertCommand(["lvcreate", "-L1G", "-n", lvname2, vgname], node=node_name) + AssertClusterVerify(fail=True, errors=[constants.CV_ENODELVM, + constants.CV_ENODEORPHANLV]) + AssertCommand(["lvremove", "-f", "/".join([vgname, lvname1])], node=node_name) + AssertCommand(["lvremove", "-f", "/".join([vgname, lvname2])], node=node_name) + AssertClusterVerify() -- GitLab