X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/f0edfcf68f349dd23720b2360150dd57ec5b9e46..2793586feee63ff77e933102907afcb16fbe43ac:/lib/client/gnt_debug.py diff --git a/lib/client/gnt_debug.py b/lib/client/gnt_debug.py index ecb3fed..35580e0 100644 --- a/lib/client/gnt_debug.py +++ b/lib/client/gnt_debug.py @@ -1,7 +1,7 @@ # # -# Copyright (C) 2006, 2007, 2010, 2011 Google Inc. +# Copyright (C) 2006, 2007, 2010, 2011, 2012 Google Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,7 +20,7 @@ """Debugging commands""" -# pylint: disable-msg=W0401,W0614,C0103 +# pylint: disable=W0401,W0614,C0103 # W0401: Wildcard import ganeti.cli # W0614: Unused import %s from wildcard import (since we need cli) # C0103: Invalid name gnt-backup @@ -65,7 +65,7 @@ def Delay(opts, args): on_master=opts.on_master, on_nodes=opts.on_nodes, repeat=opts.repeat) - SubmitOpCode(op, opts=opts) + SubmitOrSend(op, opts) return 0 @@ -90,7 +90,7 @@ def GenericOpCodes(opts, args): ToStdout("Loading...") for job_idx in range(opts.rep_job): for fname in args: - # pylint: disable-msg=W0142 + # pylint: disable=W0142 op_data = simplejson.loads(utils.ReadFile(fname)) op_list = [opcodes.OpCode.LoadOpCode(val) for val in op_data] op_list = op_list * opts.rep_op @@ -113,9 +113,9 @@ def GenericOpCodes(opts, args): t3 = time.time() ToStdout("C:op %4d" % op_cnt) ToStdout("C:job %4d" % job_cnt) - ToStdout("T:submit %4.4f" % (t2-t1)) - ToStdout("T:exec %4.4f" % (t3-t2)) - ToStdout("T:total %4.4f" % (t3-t1)) + ToStdout("T:submit %4.4f" % (t2 - t1)) + ToStdout("T:exec %4.4f" % (t3 - t2)) + ToStdout("T:total %4.4f" % (t3 - t1)) return 0 @@ -172,9 +172,11 @@ def TestAllocator(opts, args): vcpus=opts.vcpus, tags=opts.tags, direction=opts.direction, - allocator=opts.iallocator, + iallocator=opts.iallocator, evac_mode=opts.evac_mode, - target_groups=target_groups) + target_groups=target_groups, + spindle_use=opts.spindle_use, + count=opts.count) result = SubmitOpCode(op, opts=opts) ToStdout("%s" % result) return 0 @@ -192,7 +194,7 @@ def _TestJobDependency(opts): SubmitOpCode(opcodes.OpTestDelay(duration=0, depends=[(-1, None)]), cl=cl) except errors.GenericError, err: if opts.debug: - ToStdout("Ignoring error: %s", err) + ToStdout("Ignoring error for 'wrong dependencies' test: %s", err) else: raise errors.OpExecError("Submitting plain opcode with relative job ID" " did not fail as expected") @@ -297,7 +299,7 @@ def _TestJobSubmission(opts): cl.SubmitJob(ops) except errors.GenericError, err: if opts.debug: - ToStdout("Ignoring error: %s", err) + ToStdout("Ignoring error for 'wrong priority' test: %s", err) else: raise errors.OpExecError("Submitting opcode with priority %s did not" " fail when it should (allowed are %s)" % @@ -312,7 +314,8 @@ def _TestJobSubmission(opts): result = cl.SubmitManyJobs(jobs) if not (len(result) == 2 and compat.all(len(i) == 2 for i in result) and - compat.all(isinstance(i[1], basestring) for i in result) and + isinstance(result[0][1], int) and + isinstance(result[1][1], basestring) and result[0][0] and not result[1][0]): raise errors.OpExecError("Submitting multiple jobs did not work as" " expected, result %s" % result) @@ -429,7 +432,12 @@ def TestJobqueue(opts, _): TM_MULTISUCCESS, TM_FAIL, TM_PARTFAIL) = range(4) - TM_ALL = frozenset([TM_SUCCESS, TM_MULTISUCCESS, TM_FAIL, TM_PARTFAIL]) + TM_ALL = compat.UniqueFrozenset([ + TM_SUCCESS, + TM_MULTISUCCESS, + TM_FAIL, + TM_PARTFAIL, + ]) for mode in TM_ALL: test_messages = [ @@ -492,7 +500,7 @@ def TestJobqueue(opts, _): opcodes.OpTestJqueue(notify_waitlock=True, notify_exec=True, log_messages=test_messages, - fail=fail) + fail=fail), ] expect_messages = [test_messages] expect_resultlen = 1 @@ -511,7 +519,7 @@ def TestJobqueue(opts, _): except errors.OpExecError, err: if not fail: raise - ToStdout("Ignoring error: %s", err) + ToStdout("Ignoring error for 'job fail' test: %s", err) else: if fail: raise errors.OpExecError("Job didn't fail when it should") @@ -564,7 +572,7 @@ def TestJobqueue(opts, _): return 0 -def ListLocks(opts, args): # pylint: disable-msg=W0613 +def ListLocks(opts, args): # pylint: disable=W0613 """List all locks. @param opts: the command line options selected by the user @@ -587,7 +595,7 @@ def ListLocks(opts, args): # pylint: disable-msg=W0613 """Format pending acquires. """ - return utils.CommaJoin("%s:%s" % (mode, ",".join(threads)) + return utils.CommaJoin("%s:%s" % (mode, ",".join(map(str, threads))) for mode, threads in value) # Format raw values @@ -623,7 +631,7 @@ commands = { action="append", help="Select nodes to sleep on"), cli_option("-r", "--repeat", type="int", default="0", dest="repeat", help="Number of times to repeat the sleep"), - DRY_RUN_OPT, PRIORITY_OPT, + DRY_RUN_OPT, PRIORITY_OPT, SUBMIT_OPT, ], "[opts...] ", "Executes a TestDelay OpCode"), "submit-job": ( @@ -672,6 +680,10 @@ commands = { utils.CommaJoin(constants.IALLOCATOR_NEVAC_MODES))), cli_option("--target-groups", help="Target groups for relocation", default=[], action="append"), + cli_option("--spindle-use", help="How many spindles to use", + default=1, type="int"), + cli_option("--count", help="How many instances to allocate", + default=2, type="int"), DRY_RUN_OPT, PRIORITY_OPT, ], "{opts...} ", "Executes a TestAllocator OpCode"), @@ -689,5 +701,6 @@ aliases = { "allocator": "iallocator", } + def Main(): return GenericMain(commands, aliases=aliases)