X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/e42b53071036a47eb21290c09f20428bcaafbab9..2ee88aeb76a2430ec0c7f86629bf66cfd0b6f564:/qa/qa_cluster.py diff --git a/qa/qa_cluster.py b/qa/qa_cluster.py index 25ebc75..4d10c8f 100644 --- a/qa/qa_cluster.py +++ b/qa/qa_cluster.py @@ -1,3 +1,6 @@ +# +# + # Copyright (C) 2007 Google Inc. # # This program is free software; you can redistribute it and/or modify @@ -51,7 +54,6 @@ def _CheckFileOnAllNodes(filename, content): content) -@qa_utils.DefineHook('cluster-init') def TestClusterInit(): """gnt-cluster init""" master = qa_config.GetMasterNode() @@ -66,13 +68,46 @@ def TestClusterInit(): cmd.append('--bridge=%s' % bridge) cmd.append('--master-netdev=%s' % bridge) + htype = qa_config.get('default-hypervisor', None) + if htype: + cmd.append('--default-hypervisor=%s' % htype) + cmd.append(qa_config.get('name')) AssertEqual(StartSSH(master['primary'], utils.ShellQuoteArgs(cmd)).wait(), 0) -@qa_utils.DefineHook('cluster-verify') +def TestClusterRename(): + """gnt-cluster rename""" + master = qa_config.GetMasterNode() + + cmd = ['gnt-cluster', 'rename', '-f'] + + original_name = qa_config.get('name') + rename_target = qa_config.get('rename', None) + if rename_target is None: + print qa_utils.FormatError('"rename" entry is missing') + return + + cmd_1 = cmd + [rename_target] + cmd_2 = cmd + [original_name] + + cmd_verify = ['gnt-cluster', 'verify'] + + AssertEqual(StartSSH(master['primary'], + utils.ShellQuoteArgs(cmd_1)).wait(), 0) + + AssertEqual(StartSSH(master['primary'], + utils.ShellQuoteArgs(cmd_verify)).wait(), 0) + + AssertEqual(StartSSH(master['primary'], + utils.ShellQuoteArgs(cmd_2)).wait(), 0) + + AssertEqual(StartSSH(master['primary'], + utils.ShellQuoteArgs(cmd_verify)).wait(), 0) + + def TestClusterVerify(): """gnt-cluster verify""" master = qa_config.GetMasterNode() @@ -82,7 +117,6 @@ def TestClusterVerify(): utils.ShellQuoteArgs(cmd)).wait(), 0) -@qa_utils.DefineHook('cluster-info') def TestClusterInfo(): """gnt-cluster info""" master = qa_config.GetMasterNode() @@ -92,7 +126,6 @@ def TestClusterInfo(): utils.ShellQuoteArgs(cmd)).wait(), 0) -@qa_utils.DefineHook('cluster-getmaster') def TestClusterGetmaster(): """gnt-cluster getmaster""" master = qa_config.GetMasterNode() @@ -102,7 +135,6 @@ def TestClusterGetmaster(): utils.ShellQuoteArgs(cmd)).wait(), 0) -@qa_utils.DefineHook('cluster-version') def TestClusterVersion(): """gnt-cluster version""" master = qa_config.GetMasterNode() @@ -112,31 +144,44 @@ def TestClusterVersion(): utils.ShellQuoteArgs(cmd)).wait(), 0) -@qa_utils.DefineHook('cluster-burnin') def TestClusterBurnin(): """Burnin""" master = qa_config.GetMasterNode() + options = qa_config.get('options', {}) + disk_template = options.get('burnin-disk-template', 'drbd') + parallel = options.get('burnin-in-parallel', False) + check_inst = options.get('burnin-check-instances', False) + do_rename = options.get('burnin-rename', '') + # Get as many instances as we need instances = [] try: - num = qa_config.get('options', {}).get('burnin-instances', 1) - for _ in xrange(0, num): - instances.append(qa_config.AcquireInstance()) - except qa_error.OutOfInstancesError: - print "Not enough instances, continuing anyway." + try: + num = qa_config.get('options', {}).get('burnin-instances', 1) + for _ in xrange(0, num): + instances.append(qa_config.AcquireInstance()) + except qa_error.OutOfInstancesError: + print "Not enough instances, continuing anyway." - if len(instances) < 1: - raise qa_error.Error("Burnin needs at least one instance") + if len(instances) < 1: + raise qa_error.Error("Burnin needs at least one instance") - # Run burnin - try: script = qa_utils.UploadFile(master['primary'], '../tools/burnin') try: + # Run burnin cmd = [script, + '-p', '--os=%s' % qa_config.get('os'), - '--os-size=%s' % qa_config.get('os-size'), - '--swap-size=%s' % qa_config.get('swap-size')] + '--disk-size=%s' % ",".join(qa_config.get('disk')), + '--disk-growth=%s' % ",".join(qa_config.get('disk-growth')), + '--disk-template=%s' % disk_template] + if parallel: + cmd.append('--parallel') + if check_inst: + cmd.append('--http-check') + if do_rename: + cmd.append('--rename=%s' % do_rename) cmd += [inst['name'] for inst in instances] AssertEqual(StartSSH(master['primary'], utils.ShellQuoteArgs(cmd)).wait(), 0) @@ -149,7 +194,6 @@ def TestClusterBurnin(): qa_config.ReleaseInstance(inst) -@qa_utils.DefineHook('cluster-master-failover') def TestClusterMasterFailover(): """gnt-cluster masterfailover""" master = qa_config.GetMasterNode() @@ -167,7 +211,6 @@ def TestClusterMasterFailover(): qa_config.ReleaseNode(failovermaster) -@qa_utils.DefineHook('cluster-copyfile') def TestClusterCopyfile(): """gnt-cluster copyfile""" master = qa_config.GetMasterNode() @@ -192,7 +235,6 @@ def TestClusterCopyfile(): _RemoveFileFromAllNodes(testname) -@qa_utils.DefineHook('cluster-command') def TestClusterCommand(): """gnt-cluster command""" master = qa_config.GetMasterNode() @@ -210,7 +252,6 @@ def TestClusterCommand(): _RemoveFileFromAllNodes(rfile) -@qa_utils.DefineHook('cluster-destroy') def TestClusterDestroy(): """gnt-cluster destroy""" master = qa_config.GetMasterNode()