From d74c2ca118bc75e9ae83f54d6d9e9fd420c76691 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Mon, 5 Nov 2007 12:19:31 +0000 Subject: [PATCH] Test tag functionality. Reviewed-by: schreiberal --- qa/Makefile.am | 1 + qa/ganeti-qa.py | 10 +++++++ qa/qa-sample.yaml | 2 +- qa/qa_tags.py | 70 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 qa/qa_tags.py diff --git a/qa/Makefile.am b/qa/Makefile.am index f52131405..0c4d8453f 100644 --- a/qa/Makefile.am +++ b/qa/Makefile.am @@ -8,5 +8,6 @@ EXTRA_DIST = ganeti-qa.py qa-sample.yaml \ qa_node.py \ qa_os.py \ qa_other.py \ + qa_tags.py \ qa_utils.py CLEANFILES = *.py[co] diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py index f05c30ae4..a0cbcea15 100755 --- a/qa/ganeti-qa.py +++ b/qa/ganeti-qa.py @@ -39,6 +39,7 @@ import qa_instance import qa_node import qa_os import qa_other +import qa_tags def RunTest(fn, *args): @@ -140,6 +141,9 @@ def RunCommonInstanceTests(instance): RunTest(qa_instance.TestInstanceReinstall, instance) RunTest(qa_instance.TestInstanceStartup, instance) + if qa_config.TestEnabled('tags'): + RunTest(qa_tags.TestInstanceTags, instance) + if qa_config.TestEnabled('node-volumes'): RunTest(qa_node.TestNodeVolumes) @@ -240,8 +244,14 @@ def main(): RunClusterTests() RunOsTests() + if qa_config.TestEnabled('tags'): + RunTest(qa_tags.TestClusterTags) + pnode = qa_config.AcquireNode() try: + if qa_config.TestEnabled('tags'): + RunTest(qa_tags.TestNodeTags, pnode) + if qa_config.TestEnabled('instance-add-plain-disk'): instance = RunTest(qa_instance.TestInstanceAddWithPlainDisk, pnode) RunCommonInstanceTests(instance) diff --git a/qa/qa-sample.yaml b/qa/qa-sample.yaml index c13fe9c96..49ecef01e 100644 --- a/qa/qa-sample.yaml +++ b/qa/qa-sample.yaml @@ -25,8 +25,8 @@ instances: # Tests to run tests: env: True - os: True + tags: True cluster-verify: True cluster-info: True diff --git a/qa/qa_tags.py b/qa/qa_tags.py new file mode 100644 index 000000000..6f1cb2975 --- /dev/null +++ b/qa/qa_tags.py @@ -0,0 +1,70 @@ +# Copyright (C) 2007 Google Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + + +"""Tags related QA tests. + +""" + +from ganeti import utils + +import qa_config +import qa_utils + +from qa_utils import AssertEqual, StartSSH + + +_TEMP_TAG_NAMES = ["TEMP-Ganeti-QA-Tag%d" % i for i in range(3)] +_TEMP_TAG_RE = r'^TEMP-Ganeti-QA-Tag\d+$' + + +def _TestTags(cmdfn): + """Generic function for add-tags. + + """ + master = qa_config.GetMasterNode() + + cmd = cmdfn('add-tags') + _TEMP_TAG_NAMES + AssertEqual(StartSSH(master['primary'], + utils.ShellQuoteArgs(cmd)).wait(), 0) + + cmd = cmdfn('list-tags') + AssertEqual(StartSSH(master['primary'], + utils.ShellQuoteArgs(cmd)).wait(), 0) + + cmd = ['gnt-cluster', 'search-tags', _TEMP_TAG_RE] + AssertEqual(StartSSH(master['primary'], + utils.ShellQuoteArgs(cmd)).wait(), 0) + + cmd = cmdfn('remove-tags') + _TEMP_TAG_NAMES + AssertEqual(StartSSH(master['primary'], + utils.ShellQuoteArgs(cmd)).wait(), 0) + + +def TestClusterTags(): + """gnt-cluster tags""" + _TestTags(lambda subcmd: ['gnt-cluster', subcmd]) + + +def TestNodeTags(node): + """gnt-node tags""" + _TestTags(lambda subcmd: ['gnt-node', subcmd, node['primary']]) + + +def TestInstanceTags(instance): + """gnt-instance tags""" + _TestTags(lambda subcmd: ['gnt-instance', subcmd, instance['name']]) -- GitLab