diff --git a/lib/cli.py b/lib/cli.py index 698f03f30f477bba54ea1271fc694bec335df31d..d4dfee675946ce8c4bf1f81f3d81ff597a234627 100644 --- a/lib/cli.py +++ b/lib/cli.py @@ -158,6 +158,7 @@ __all__ = [ "OPT_COMPL_ONE_OS", "cli_option", "SplitNodeOption", + "CalculateOSNames", ] NO_PREFIX = "no_" @@ -971,6 +972,23 @@ def SplitNodeOption(value): return (value, None) +def CalculateOSNames(os_name, os_variants): + """Calculates all the names an OS can be called, according to its variants. + + @type os_name: string + @param os_name: base name of the os + @type os_variants: list or None + @param os_variants: list of supported variants + @rtype: list + @return: list of valid names + + """ + if os_variants: + return ['%s+%s' % (os_name, v) for v in os_variants] + else: + return [os_name] + + def UsesRPC(fn): def wrapper(*args, **kwargs): rpc.Init()