X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/b82d4c5e4e5751f12b61a71b16592fb20b8f822e..545d036273bb778751ac6de64a8c5dca9f7cb5cf:/qa/ganeti-qa.py diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py index 78181a3..a2a4eb0 100755 --- a/qa/ganeti-qa.py +++ b/qa/ganeti-qa.py @@ -23,7 +23,7 @@ """ -# pylint: disable-msg=C0103 +# pylint: disable=C0103 # due to invalid name import sys @@ -46,7 +46,7 @@ from ganeti import utils from ganeti import rapi from ganeti import constants -import ganeti.rapi.client # pylint: disable-msg=W0611 +import ganeti.rapi.client # pylint: disable=W0611 def _FormatHeader(line, end=72): @@ -54,7 +54,7 @@ def _FormatHeader(line, end=72): """ line = "---- " + line + " " - line += "-" * (end-len(line)) + line += "-" * (end - len(line)) line = line.rstrip() return line @@ -70,6 +70,7 @@ def _DescriptionOf(fn): return desc.rstrip(".") + def RunTest(fn, *args): """Runs a test after printing a header. @@ -163,30 +164,54 @@ def RunClusterTests(): ("cluster-info", qa_cluster.TestClusterVersion), ("cluster-info", qa_cluster.TestClusterInfo), ("cluster-info", qa_cluster.TestClusterGetmaster), + ("cluster-redist-conf", qa_cluster.TestClusterRedistConf), ("cluster-copyfile", qa_cluster.TestClusterCopyfile), ("cluster-command", qa_cluster.TestClusterCommand), ("cluster-burnin", qa_cluster.TestClusterBurnin), ("cluster-master-failover", qa_cluster.TestClusterMasterFailover), + ("cluster-master-failover", + qa_cluster.TestClusterMasterFailoverWithDrainedQueue), ("cluster-oob", qa_cluster.TestClusterOob), ("rapi", qa_rapi.TestVersion), ("rapi", qa_rapi.TestEmptyCluster), + ("rapi", qa_rapi.TestRapiQuery), ]: RunTestIf(test, fn) +def RunRepairDiskSizes(): + """Run the repair disk-sizes test. + + """ + RunTestIf("cluster-repair-disk-sizes", qa_cluster.TestClusterRepairDiskSizes) + + def RunOsTests(): """Runs all tests related to gnt-os. """ + if qa_config.TestEnabled("rapi"): + rapi_getos = qa_rapi.GetOperatingSystems + else: + rapi_getos = None + for fn in [ qa_os.TestOsList, qa_os.TestOsDiagnose, + ]: + RunTestIf("os", fn) + + for fn in [ qa_os.TestOsValid, qa_os.TestOsInvalid, qa_os.TestOsPartiallyValid, + ]: + RunTestIf("os", fn, rapi_getos) + + for fn in [ qa_os.TestOsModifyValid, qa_os.TestOsModifyInvalid, - qa_os.TestOsStates, + qa_os.TestOsStatesNonExisting, ]: RunTestIf("os", fn) @@ -200,6 +225,12 @@ def RunCommonInstanceTests(instance): qa_rapi.TestRapiStoppedInstanceConsole, instance) RunTestIf("instance-shutdown", qa_instance.TestInstanceStartup, instance) + # Test shutdown/start via RAPI + RunTestIf(["instance-shutdown", "rapi"], + qa_rapi.TestRapiInstanceShutdown, instance) + RunTestIf(["instance-shutdown", "rapi"], + qa_rapi.TestRapiInstanceStartup, instance) + RunTestIf("instance-list", qa_instance.TestInstanceList) RunTestIf("instance-info", qa_instance.TestInstanceInfo, instance) @@ -214,11 +245,13 @@ def RunCommonInstanceTests(instance): RunTestIf("instance-reinstall", qa_instance.TestInstanceShutdown, instance) RunTestIf("instance-reinstall", qa_instance.TestInstanceReinstall, instance) + RunTestIf(["instance-reinstall", "rapi"], + qa_rapi.TestRapiInstanceReinstall, instance) RunTestIf("instance-reinstall", qa_instance.TestInstanceStartup, instance) RunTestIf("instance-reboot", qa_instance.TestInstanceReboot, instance) - if qa_config.TestEnabled('instance-rename'): + if qa_config.TestEnabled("instance-rename"): rename_source = instance["name"] rename_target = qa_config.get("rename", None) RunTest(qa_instance.TestInstanceShutdown, instance) @@ -271,6 +304,8 @@ def RunGroupRwTests(): RunTestIf("group-rwops", qa_group.TestGroupAddWithOptions) RunTestIf("group-rwops", qa_group.TestGroupModify) RunTestIf(["group-rwops", "rapi"], qa_rapi.TestRapiNodeGroups) + RunTestIf(["group-rwops", "tags"], qa_tags.TestGroupTags, + qa_group.GetDefaultGroup()) def RunExportImportTests(instance, pnode, snode): @@ -281,7 +316,7 @@ def RunExportImportTests(instance, pnode, snode): otherwise None """ - if qa_config.TestEnabled('instance-export'): + if qa_config.TestEnabled("instance-export"): RunTest(qa_instance.TestInstanceExportNoTarget, instance) expnode = qa_config.AcquireNode(exclude=pnode) @@ -290,7 +325,7 @@ def RunExportImportTests(instance, pnode, snode): RunTest(qa_instance.TestBackupList, expnode) - if qa_config.TestEnabled('instance-import'): + if qa_config.TestEnabled("instance-import"): newinst = qa_config.AcquireInstance() try: RunTest(qa_instance.TestInstanceImport, pnode, newinst, @@ -318,16 +353,16 @@ def RunExportImportTests(instance, pnode, snode): qa_config.ReleaseInstance(newinst) -def RunDaemonTests(instance, pnode): +def RunDaemonTests(instance): """Test the ganeti-watcher script. """ RunTest(qa_daemon.TestPauseWatcher) RunTestIf("instance-automatic-restart", - qa_daemon.TestInstanceAutomaticRestart, pnode, instance) + qa_daemon.TestInstanceAutomaticRestart, instance) RunTestIf("instance-consecutive-failures", - qa_daemon.TestInstanceConsecutiveFailures, pnode, instance) + qa_daemon.TestInstanceConsecutiveFailures, instance) RunTest(qa_daemon.TestResumeWatcher) @@ -337,14 +372,17 @@ def RunHardwareFailureTests(instance, pnode, snode): """ RunTestIf("instance-failover", qa_instance.TestInstanceFailover, instance) + RunTestIf(["instance-failover", "rapi"], + qa_rapi.TestRapiInstanceFailover, instance) RunTestIf("instance-migrate", qa_instance.TestInstanceMigrate, instance) RunTestIf(["instance-migrate", "rapi"], qa_rapi.TestRapiInstanceMigrate, instance) - if qa_config.TestEnabled('instance-replace-disks'): + if qa_config.TestEnabled("instance-replace-disks"): othernode = qa_config.AcquireNode(exclude=[pnode, snode]) try: + RunTestIf("rapi", qa_rapi.TestRapiInstanceReplaceDisks, instance) RunTest(qa_instance.TestReplaceDisks, instance, pnode, snode, othernode) finally: @@ -405,17 +443,19 @@ def RunQa(): RunTest(qa_rapi.TestRapiInstanceRemove, rapi_instance, use_client) del rapi_instance - if qa_config.TestEnabled('instance-add-plain-disk'): + if qa_config.TestEnabled("instance-add-plain-disk"): instance = RunTest(qa_instance.TestInstanceAddWithPlainDisk, pnode) RunCommonInstanceTests(instance) RunGroupListTests() + RunTestIf("cluster-epo", qa_cluster.TestClusterEpo) RunExportImportTests(instance, pnode, None) - RunDaemonTests(instance, pnode) + RunDaemonTests(instance) + RunRepairDiskSizes() RunTest(qa_instance.TestInstanceRemove, instance) del instance multinode_tests = [ - ('instance-add-drbd-disk', + ("instance-add-drbd-disk", qa_instance.TestInstanceAddWithDrbdDisk), ] @@ -429,12 +469,13 @@ def RunQa(): RunTest(qa_group.TestAssignNodesIncludingSplit, constants.INITIAL_NODE_GROUP_NAME, pnode["primary"], snode["primary"]) - if qa_config.TestEnabled('instance-convert-disk'): + if qa_config.TestEnabled("instance-convert-disk"): RunTest(qa_instance.TestInstanceShutdown, instance) RunTest(qa_instance.TestInstanceConvertDisk, instance, snode) RunTest(qa_instance.TestInstanceStartup, instance) RunExportImportTests(instance, pnode, snode) RunHardwareFailureTests(instance, pnode, snode) + RunRepairDiskSizes() RunTest(qa_instance.TestInstanceRemove, instance) del instance finally: @@ -469,7 +510,7 @@ def main(): """ parser = optparse.OptionParser(usage="%prog [options] ") - parser.add_option('--yes-do-it', dest='yes_do_it', + parser.add_option("--yes-do-it", dest="yes_do_it", action="store_true", help="Really execute the tests") (qa_config.options, args) = parser.parse_args() @@ -493,5 +534,5 @@ def main(): finally: qa_utils.CloseMultiplexers() -if __name__ == '__main__': +if __name__ == "__main__": main()