X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/830da2702a015068a5a635cf6c1cbe2a076be157..2ee88aeb76a2430ec0c7f86629bf66cfd0b6f564:/qa/qa_cluster.py diff --git a/qa/qa_cluster.py b/qa/qa_cluster.py index 2995885..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 @@ -65,12 +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) +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() @@ -111,26 +148,40 @@ 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) @@ -164,7 +215,7 @@ def TestClusterCopyfile(): """gnt-cluster copyfile""" master = qa_config.GetMasterNode() - uniqueid = utils.GetUUID() + uniqueid = utils.NewUUID() # Create temporary file f = tempfile.NamedTemporaryFile() @@ -188,8 +239,8 @@ def TestClusterCommand(): """gnt-cluster command""" master = qa_config.GetMasterNode() - uniqueid = utils.GetUUID() - rfile = "/tmp/gnt%s" % utils.GetUUID() + uniqueid = utils.NewUUID() + rfile = "/tmp/gnt%s" % utils.NewUUID() rcmd = utils.ShellQuoteArgs(['echo', '-n', uniqueid]) cmd = utils.ShellQuoteArgs(['gnt-cluster', 'command', "%s >%s" % (rcmd, rfile)])