X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/d74c2ca118bc75e9ae83f54d6d9e9fd420c76691..e61c0f24a104bffa4cd7e7f1403833e03f3815e5:/qa/qa_tags.py diff --git a/qa/qa_tags.py b/qa/qa_tags.py index 6f1cb29..834f7a8 100644 --- a/qa/qa_tags.py +++ b/qa/qa_tags.py @@ -1,3 +1,6 @@ +# +# + # Copyright (C) 2007 Google Inc. # # This program is free software; you can redistribute it and/or modify @@ -20,51 +23,63 @@ """ -from ganeti import utils +from ganeti import constants -import qa_config -import qa_utils +import qa_rapi -from qa_utils import AssertEqual, StartSSH +from qa_utils import AssertCommand _TEMP_TAG_NAMES = ["TEMP-Ganeti-QA-Tag%d" % i for i in range(3)] _TEMP_TAG_RE = r'^TEMP-Ganeti-QA-Tag\d+$' +_KIND_TO_COMMAND = { + constants.TAG_CLUSTER: "gnt-cluster", + constants.TAG_NODE: "gnt-node", + constants.TAG_INSTANCE: "gnt-instance", + constants.TAG_NODEGROUP: "gnt-group", + } -def _TestTags(cmdfn): + +def _TestTags(kind, name): """Generic function for add-tags. """ - master = qa_config.GetMasterNode() + def cmdfn(subcmd): + cmd = [_KIND_TO_COMMAND[kind], subcmd] - cmd = cmdfn('add-tags') + _TEMP_TAG_NAMES - AssertEqual(StartSSH(master['primary'], - utils.ShellQuoteArgs(cmd)).wait(), 0) + if kind != constants.TAG_CLUSTER: + cmd.append(name) - cmd = cmdfn('list-tags') - AssertEqual(StartSSH(master['primary'], - utils.ShellQuoteArgs(cmd)).wait(), 0) + return cmd - cmd = ['gnt-cluster', 'search-tags', _TEMP_TAG_RE] - AssertEqual(StartSSH(master['primary'], - utils.ShellQuoteArgs(cmd)).wait(), 0) + for cmd in [ + cmdfn("add-tags") + _TEMP_TAG_NAMES, + cmdfn("list-tags"), + ["gnt-cluster", "search-tags", _TEMP_TAG_RE], + cmdfn("remove-tags") + _TEMP_TAG_NAMES, + ]: + AssertCommand(cmd) - cmd = cmdfn('remove-tags') + _TEMP_TAG_NAMES - AssertEqual(StartSSH(master['primary'], - utils.ShellQuoteArgs(cmd)).wait(), 0) + if qa_rapi.Enabled(): + qa_rapi.TestTags(kind, name, _TEMP_TAG_NAMES) def TestClusterTags(): """gnt-cluster tags""" - _TestTags(lambda subcmd: ['gnt-cluster', subcmd]) + _TestTags(constants.TAG_CLUSTER, "") def TestNodeTags(node): """gnt-node tags""" - _TestTags(lambda subcmd: ['gnt-node', subcmd, node['primary']]) + _TestTags(constants.TAG_NODE, node.primary) + + +def TestGroupTags(group): + """gnt-group tags""" + _TestTags(constants.TAG_NODEGROUP, group) def TestInstanceTags(instance): """gnt-instance tags""" - _TestTags(lambda subcmd: ['gnt-instance', subcmd, instance['name']]) + _TestTags(constants.TAG_INSTANCE, instance.name)