diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py index a27cf8acf658072675c9178e4d7b05f15def1ba9..1a93e9790eb1f7a7785350aaf99781d2b6285387 100755 --- a/qa/ganeti-qa.py +++ b/qa/ganeti-qa.py @@ -189,9 +189,9 @@ def RunClusterTests(): qa_cluster.TestClusterMasterFailoverWithDrainedQueue), (["cluster-oob", qa_config.NoVirtualCluster], qa_cluster.TestClusterOob), - ("rapi", qa_rapi.TestVersion), - ("rapi", qa_rapi.TestEmptyCluster), - ("rapi", qa_rapi.TestRapiQuery), + (qa_rapi.Enabled, qa_rapi.TestVersion), + (qa_rapi.Enabled, qa_rapi.TestEmptyCluster), + (qa_rapi.Enabled, qa_rapi.TestRapiQuery), ]: RunTestIf(test, fn) @@ -209,7 +209,7 @@ def RunOsTests(): """ os_enabled = ["os", qa_config.NoVirtualCluster] - if qa_config.TestEnabled("rapi"): + if qa_config.TestEnabled(qa_rapi.Enabled): rapi_getos = qa_rapi.GetOperatingSystems else: rapi_getos = None @@ -240,16 +240,16 @@ def RunCommonInstanceTests(instance): """ RunTestIf("instance-shutdown", qa_instance.TestInstanceShutdown, instance) - RunTestIf(["instance-shutdown", "instance-console", "rapi"], + RunTestIf(["instance-shutdown", "instance-console", qa_rapi.Enabled], qa_rapi.TestRapiStoppedInstanceConsole, instance) RunTestIf(["instance-shutdown", "instance-modify"], qa_instance.TestInstanceStoppedModify, instance) RunTestIf("instance-shutdown", qa_instance.TestInstanceStartup, instance) # Test shutdown/start via RAPI - RunTestIf(["instance-shutdown", "rapi"], + RunTestIf(["instance-shutdown", qa_rapi.Enabled], qa_rapi.TestRapiInstanceShutdown, instance) - RunTestIf(["instance-shutdown", "rapi"], + RunTestIf(["instance-shutdown", qa_rapi.Enabled], qa_rapi.TestRapiInstanceStartup, instance) RunTestIf("instance-list", qa_instance.TestInstanceList) @@ -257,11 +257,11 @@ def RunCommonInstanceTests(instance): RunTestIf("instance-info", qa_instance.TestInstanceInfo, instance) RunTestIf("instance-modify", qa_instance.TestInstanceModify, instance) - RunTestIf(["instance-modify", "rapi"], + RunTestIf(["instance-modify", qa_rapi.Enabled], qa_rapi.TestRapiInstanceModify, instance) RunTestIf("instance-console", qa_instance.TestInstanceConsole, instance) - RunTestIf(["instance-console", "rapi"], + RunTestIf(["instance-console", qa_rapi.Enabled], qa_rapi.TestRapiInstanceConsole, instance) DOWN_TESTS = qa_config.Either([ @@ -275,7 +275,7 @@ def RunCommonInstanceTests(instance): # now run the 'down' state tests RunTestIf("instance-reinstall", qa_instance.TestInstanceReinstall, instance) - RunTestIf(["instance-reinstall", "rapi"], + RunTestIf(["instance-reinstall", qa_rapi.Enabled], qa_rapi.TestRapiInstanceReinstall, instance) if qa_config.TestEnabled("instance-rename"): @@ -286,13 +286,13 @@ def RunCommonInstanceTests(instance): # perform instance rename to the same name RunTest(qa_instance.TestInstanceRenameAndBack, rename_source, rename_source) - RunTestIf("rapi", qa_rapi.TestRapiInstanceRenameAndBack, + RunTestIf(qa_rapi.Enabled, qa_rapi.TestRapiInstanceRenameAndBack, rename_source, rename_source) if rename_target is not None: # perform instance rename to a different name, if we have one configured RunTest(qa_instance.TestInstanceRenameAndBack, rename_source, rename_target) - RunTestIf("rapi", qa_rapi.TestRapiInstanceRenameAndBack, + RunTestIf(qa_rapi.Enabled, qa_rapi.TestRapiInstanceRenameAndBack, rename_source, rename_target) finally: tgt_instance.Release() @@ -308,7 +308,7 @@ def RunCommonInstanceTests(instance): RunTestIf("cluster-verify", qa_cluster.TestClusterVerify) - RunTestIf("rapi", qa_rapi.TestInstance, instance) + RunTestIf(qa_rapi.Enabled, qa_rapi.TestInstance, instance) # Lists instances, too RunTestIf("node-list", qa_node.TestNodeList) @@ -349,7 +349,7 @@ def RunGroupRwTests(): RunTestIf("group-rwops", qa_group.TestGroupAddRemoveRename) RunTestIf("group-rwops", qa_group.TestGroupAddWithOptions) RunTestIf("group-rwops", qa_group.TestGroupModify) - RunTestIf(["group-rwops", "rapi"], qa_rapi.TestRapiNodeGroups) + RunTestIf(["group-rwops", qa_rapi.Enabled], qa_rapi.TestRapiNodeGroups) RunTestIf(["group-rwops", "tags"], qa_tags.TestGroupTags, qa_group.GetDefaultGroup()) @@ -384,7 +384,7 @@ def RunExportImportTests(instance, inodes): finally: expnode.Release() - if qa_config.TestEnabled(["rapi", "inter-cluster-instance-move"]): + if qa_config.TestEnabled([qa_rapi.Enabled, "inter-cluster-instance-move"]): newinst = qa_config.AcquireInstance() try: tnode = qa_config.AcquireNode(exclude=inodes) @@ -416,18 +416,18 @@ def RunHardwareFailureTests(instance, inodes): """ RunTestIf("instance-failover", qa_instance.TestInstanceFailover, instance) - RunTestIf(["instance-failover", "rapi"], + RunTestIf(["instance-failover", qa_rapi.Enabled], qa_rapi.TestRapiInstanceFailover, instance) RunTestIf("instance-migrate", qa_instance.TestInstanceMigrate, instance) - RunTestIf(["instance-migrate", "rapi"], + RunTestIf(["instance-migrate", qa_rapi.Enabled], qa_rapi.TestRapiInstanceMigrate, instance) if qa_config.TestEnabled("instance-replace-disks"): # We just need alternative secondary nodes, hence "- 1" othernodes = qa_config.AcquireManyNodes(len(inodes) - 1, exclude=inodes) try: - RunTestIf("rapi", qa_rapi.TestRapiInstanceReplaceDisks, instance) + RunTestIf(qa_rapi.Enabled, qa_rapi.TestRapiInstanceReplaceDisks, instance) RunTest(qa_instance.TestReplaceDisks, instance, inodes, othernodes) finally: diff --git a/qa/qa_rapi.py b/qa/qa_rapi.py index 39b6e4bc7aa90ead1cb1952a5266833d4dd14c8b..02b62ad80a9385dd84406ad9399e5720c0962724 100644 --- a/qa/qa_rapi.py +++ b/qa/qa_rapi.py @@ -88,12 +88,19 @@ def Setup(username, password): cfg_curl = rapi.client.GenericCurlConfig(cafile=_rapi_ca.name, proxy="") - _rapi_client = rapi.client.GanetiRapiClient(master.primary, port=port, - username=username, - password=password, - curl_config_fn=cfg_curl) + if qa_config.UseVirtualCluster(): + # TODO: Implement full support for RAPI on virtual clusters + print qa_utils.FormatWarning("RAPI tests are not yet supported on" + " virtual clusters and will be disabled") - print "RAPI protocol version: %s" % _rapi_client.GetVersion() + assert _rapi_client is None + else: + _rapi_client = rapi.client.GanetiRapiClient(master.primary, port=port, + username=username, + password=password, + curl_config_fn=cfg_curl) + + print "RAPI protocol version: %s" % _rapi_client.GetVersion() INSTANCE_FIELDS = ("name", "os", "pnode", "snodes", @@ -126,7 +133,9 @@ def Enabled(): """Return whether remote API tests should be run. """ - return qa_config.TestEnabled("rapi") + # TODO: Implement RAPI tests for virtual clusters + return (qa_config.TestEnabled("rapi") and + not qa_config.UseVirtualCluster()) def _DoTests(uris):