diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 768d67bd7389ec6de4160c6eb1f51f456a00b9c3..2f475579cd1bd893dcfb7db9c151b1061e3c7bcb 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -2015,7 +2015,8 @@ class LUSetClusterParams(LogicalUnit): invalid_hvs = set(self.hv_list) - constants.HYPER_TYPES if invalid_hvs: raise errors.OpPrereqError("Enabled hypervisors contains invalid" - " entries: %s" % " ,".join(invalid_hvs), + " entries: %s" % + utils.CommaJoin(invalid_hvs), errors.ECODE_INVAL) else: self.hv_list = cluster.enabled_hypervisors diff --git a/lib/hypervisor/hv_base.py b/lib/hypervisor/hv_base.py index 252e665e25d70eb4feb1e4ef852677ee461a30f6..eacc0ecd1f98a7962e96ed17d71bce8da2848a91 100644 --- a/lib/hypervisor/hv_base.py +++ b/lib/hypervisor/hv_base.py @@ -82,7 +82,7 @@ def ParamInSet(required, my_set): """ fn = lambda x: x in my_set - err = ("The value must be one of: %s" % " ,".join(my_set)) + err = ("The value must be one of: %s" % utils.CommaJoin(my_set)) return (required, fn, err, None, None) diff --git a/lib/utils.py b/lib/utils.py index f10bcec7d336c0e513e04c4d31f5d1e085306fd7..b2ffff9bfc309c3c8a0acdf2c26c78965693a411 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -1884,6 +1884,16 @@ def SafeEncode(text): return resu +def CommaJoin(names): + """Nicely join a set of identifiers. + + @param names: set, list or tuple + @return: a string with the formatted results + + """ + return ", ".join(["'%s'" % val for val in names]) + + def BytesToMebibyte(value): """Converts bytes to mebibytes. diff --git a/scripts/gnt-node b/scripts/gnt-node index e4421105413cf55a503f2ba27bfd8da477fba9ff..0ca27942527e5b72395cd2a137e1cbca41b69595 100755 --- a/scripts/gnt-node +++ b/scripts/gnt-node @@ -98,7 +98,8 @@ _STORAGE_TYPE_OPT = \ choices=_USER_STORAGE_TYPE.keys(), default=None, metavar="STORAGE_TYPE", - help=("Storage type (%s)" % " ,".join(_USER_STORAGE_TYPE.keys()))) + help=("Storage type (%s)" % + utils.CommaJoin(_USER_STORAGE_TYPE.keys()))) _REPAIRABLE_STORAGE_TYPES = \ [st for st, so in constants.VALID_STORAGE_OPERATIONS.iteritems() diff --git a/test/docs_unittest.py b/test/docs_unittest.py index a3cb2b7a83081c42116e61050c102f1331c9abfa..95d81a877860c2cdf883a4e9ba7a01d64aba9dfb 100755 --- a/test/docs_unittest.py +++ b/test/docs_unittest.py @@ -114,7 +114,7 @@ class TestDocs(unittest.TestCase): self.failIf(undocumented, msg=("Missing RAPI resource documentation for %s" % - " ,".join(undocumented))) + utils.CommaJoin(undocumented))) class TestManpages(unittest.TestCase): @@ -145,7 +145,7 @@ class TestManpages(unittest.TestCase): self.failIf(missing, msg=("Manpage for '%s' missing documentation for %s" % - (script, " ,".join(missing)))) + (script, utils.CommaJoin(missing)))) if __name__ == "__main__":