From 2df929903f07f77cd2a5cd17d67589a8f5df05a5 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Thu, 21 Feb 2013 16:27:22 +0100 Subject: [PATCH] QA: Add virtual cluster support to queue drain test The path to the queue drain file must use the virtual node path. Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Bernardo Dal Seno <bdalseno@google.com> --- qa/qa_cluster.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/qa/qa_cluster.py b/qa/qa_cluster.py index 813036c95..ac3419ca0 100644 --- a/qa/qa_cluster.py +++ b/qa/qa_cluster.py @@ -576,34 +576,48 @@ def TestClusterMasterFailover(): failovermaster.Release() +def _NodeQueueDrainFile(node): + """Returns path to queue drain file for a node. + + """ + return qa_utils.MakeNodePath(node, pathutils.JOB_QUEUE_DRAIN_FILE) + + +def _AssertDrainFile(node, **kwargs): + """Checks for the queue drain file. + + """ + AssertCommand(["test", "-f", _NodeQueueDrainFile(node)], node=node, **kwargs) + + def TestClusterMasterFailoverWithDrainedQueue(): """gnt-cluster master-failover with drained queue""" - drain_check = ["test", "-f", pathutils.JOB_QUEUE_DRAIN_FILE] - master = qa_config.GetMasterNode() failovermaster = qa_config.AcquireNode(exclude=master) # Ensure queue is not drained for node in [master, failovermaster]: - AssertCommand(drain_check, node=node, fail=True) + _AssertDrainFile(node, fail=True) # Drain queue on failover master - AssertCommand(["touch", pathutils.JOB_QUEUE_DRAIN_FILE], node=failovermaster) + AssertCommand(["touch", _NodeQueueDrainFile(failovermaster)], + node=failovermaster) cmd = ["gnt-cluster", "master-failover"] try: - AssertCommand(drain_check, node=failovermaster) + _AssertDrainFile(failovermaster) AssertCommand(cmd, node=failovermaster) - AssertCommand(drain_check, fail=True) - AssertCommand(drain_check, node=failovermaster, fail=True) + _AssertDrainFile(master, fail=True) + _AssertDrainFile(failovermaster, fail=True) # Back to original master node AssertCommand(cmd, node=master) finally: failovermaster.Release() - AssertCommand(drain_check, fail=True) - AssertCommand(drain_check, node=failovermaster, fail=True) + # Ensure queue is not drained + for node in [master, failovermaster]: + _AssertDrainFile(node, fail=True) def TestClusterCopyfile(): -- GitLab