"ARGS_NONE", "ARGS_FIXED", "ARGS_ATLEAST", "ARGS_ANY", "ARGS_ONE",
"USEUNITS_OPT", "FIELDS_OPT", "FORCE_OPT",
"ListTags", "AddTags", "RemoveTags", "TAG_SRC_OPT",
- "FormatError",
+ "FormatError", "SplitNodeOption"
]
TAG_SRC_OPT = make_option("--from", dest="tags_source",
default=None, help="File with tag names")
+
def ARGS_FIXED(val):
"""Macro-like function denoting a fixed number of arguments"""
return -val
def check_unit(option, opt, value):
+ """OptParsers custom converter for units.
+
+ """
try:
return utils.ParseUnit(value)
except errors.UnitParseError, err:
class CliOption(Option):
+ """Custom option class for optparse.
+
+ """
TYPES = Option.TYPES + ("unit",)
TYPE_CHECKER = copy.copy(Option.TYPE_CHECKER)
TYPE_CHECKER["unit"] = check_unit
return func, options, args
+def SplitNodeOption(value):
+ """Splits the value of a --node option.
+
+ """
+ if value and ':' in value:
+ return value.split(':', 1)
+ else:
+ return (value, None)
+
+
def AskUser(text, choices=None):
"""Ask the user a question.
"""
retcode = 1
obuf = StringIO()
+ msg = str(err)
if isinstance(err, errors.ConfigurationError):
- msg = "Corrupt configuration file: %s" % err
- logger.Error(msg)
- obuf.write(msg + "\n")
+ txt = "Corrupt configuration file: %s" % msg
+ logger.Error(txt)
+ obuf.write(txt + "\n")
obuf.write("Aborting.")
retcode = 2
elif isinstance(err, errors.HooksAbort):
obuf.write(" node: %s, script: %s (no output)\n" %
(node, script))
elif isinstance(err, errors.HooksFailure):
- obuf.write("Failure: hooks general failure: %s" % str(err))
+ obuf.write("Failure: hooks general failure: %s" % msg)
elif isinstance(err, errors.ResolverError):
this_host = utils.HostInfo.SysName()
if err.args[0] == this_host:
obuf.write(msg % err.args[0])
elif isinstance(err, errors.OpPrereqError):
obuf.write("Failure: prerequisites not met for this"
- " operation:\n%s" % str(err))
+ " operation:\n%s" % msg)
elif isinstance(err, errors.OpExecError):
- obuf.write("Failure: command execution error:\n%s" % str(err))
+ obuf.write("Failure: command execution error:\n%s" % msg)
elif isinstance(err, errors.TagError):
- obuf.write("Failure: invalid tag(s) given:\n%s" % str(err))
+ obuf.write("Failure: invalid tag(s) given:\n%s" % msg)
elif isinstance(err, errors.GenericError):
- obuf.write("Unhandled Ganeti error: %s" % str(err))
+ obuf.write("Unhandled Ganeti error: %s" % msg)
else:
- obuf.write("Unhandled exception: %s" % str(err))
+ obuf.write("Unhandled exception: %s" % msg)
return retcode, obuf.getvalue().rstrip('\n')