From c1513c7f9f6018e5ca15935457bc1f69794fc5fd Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Wed, 6 Jun 2012 12:54:32 +0200 Subject: [PATCH] QA: Ignore tags using regular expression MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In some QA environments external scripts may add tags. With this patch a regular expression can be used to ignore them during QA runs. Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: RenΓ© Nussbaumer <rn@google.com> --- qa/qa-sample.json | 3 +++ qa/qa_rapi.py | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/qa/qa-sample.json b/qa/qa-sample.json index 4034814b9..82f9c6cf7 100644 --- a/qa/qa-sample.json +++ b/qa/qa-sample.json @@ -27,6 +27,9 @@ "# Script to check instance status": null, "instance-check": null, + "# Regular expression to ignore existing tags": null, + "ignore-tags-re": null, + "nodes": [ { "# Master node": null, diff --git a/qa/qa_rapi.py b/qa/qa_rapi.py index e26576459..b53b8cfe9 100644 --- a/qa/qa_rapi.py +++ b/qa/qa_rapi.py @@ -25,6 +25,8 @@ import tempfile import random +import re +import itertools from ganeti import utils from ganeti import constants @@ -416,6 +418,18 @@ def TestNode(node): ]) +def _FilterTags(seq): + """Removes unwanted tags from a sequence. + + """ + ignore_re = qa_config.get("ignore-tags-re", None) + + if ignore_re: + return itertools.ifilterfalse(re.compile(ignore_re).match, seq) + else: + return seq + + def TestTags(kind, name, tags): """Tests .../tags resources. @@ -432,7 +446,7 @@ def TestTags(kind, name, tags): raise errors.ProgrammerError("Unknown tag kind") def _VerifyTags(data): - AssertEqual(sorted(tags), sorted(data)) + AssertEqual(sorted(tags), sorted(_FilterTags(data))) queryargs = "&".join("tag=%s" % i for i in tags) -- GitLab