X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/e8ae0c200611cae990f0ab9a524a0adc0fd57b1a..cd098c41522469e462efeb1e157a8718ff7b7809:/qa/qa_utils.py?ds=sidebyside diff --git a/qa/qa_utils.py b/qa/qa_utils.py index f94aa6f..fbc92e8 100644 --- a/qa/qa_utils.py +++ b/qa/qa_utils.py @@ -1,3 +1,6 @@ +# +# + # Copyright (C) 2007 Google Inc. # # This program is free software; you can redistribute it and/or modify @@ -42,6 +45,10 @@ def _SetupColours(): """ global _INFO_SEQ, _WARNING_SEQ, _ERROR_SEQ, _RESET_SEQ + # Don't use colours if stdout isn't a terminal + if not sys.stdout.isatty(): + return + try: import curses except ImportError: @@ -61,6 +68,14 @@ def _SetupColours(): _SetupColours() +def AssertIn(item, sequence): + """Raises an error when item is not in sequence. + + """ + if item not in sequence: + raise qa_error.Error('%r not in %r' % (item, sequence)) + + def AssertEqual(first, second): """Raises an error when values aren't equal. @@ -80,8 +95,13 @@ def AssertNotEqual(first, second): def GetSSHCommand(node, cmd, strict=True): """Builds SSH command to be executed. + Args: + - node: Node the command should run on + - cmd: Command to be executed as a list with all parameters + - strict: Whether to enable strict host key checking + """ - args = [ 'ssh', '-oEscapeChar=none', '-oBatchMode=yes', '-l', 'root' ] + args = [ 'ssh', '-oEscapeChar=none', '-oBatchMode=yes', '-l', 'root', '-t' ] if strict: tmp = 'yes' @@ -91,13 +111,7 @@ def GetSSHCommand(node, cmd, strict=True): args.append('-oClearAllForwardings=yes') args.append('-oForwardAgent=yes') args.append(node) - - if qa_config.options.dry_run: - prefix = 'exit 0; ' - else: - prefix = '' - - args.append(prefix + cmd) + args.append(cmd) print 'SSH:', utils.ShellQuoteArgs(args) @@ -183,7 +197,6 @@ def GetNodeInstances(node, secondaries=False): """ master = qa_config.GetMasterNode() - node_name = ResolveNodeName(node) # Get list of all instances @@ -201,29 +214,12 @@ def GetNodeInstances(node, secondaries=False): return instances -def _PrintWithColor(text, seq): - f = sys.stdout - - if not f.isatty(): - seq = None - - if seq: - f.write(seq) - - f.write(text) - f.write("\n") - - if seq: - f.write(_RESET_SEQ) - - -def PrintWarning(text): - return _PrintWithColor(text, _WARNING_SEQ) - - -def PrintError(text): - return _PrintWithColor(text, _ERROR_SEQ) +def _FormatWithColor(text, seq): + if not seq: + return text + return "%s%s%s" % (seq, text, _RESET_SEQ) -def PrintInfo(text): - return _PrintWithColor(text, _INFO_SEQ) +FormatWarning = lambda text: _FormatWithColor(text, _WARNING_SEQ) +FormatError = lambda text: _FormatWithColor(text, _ERROR_SEQ) +FormatInfo = lambda text: _FormatWithColor(text, _INFO_SEQ)