X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/7ffe8fbafc663f749660d9356521bbab3c2b5784..944bf54895c1d4491c6d06ad464aa6e97844c366:/lib/utils.py diff --git a/lib/utils.py b/lib/utils.py index 786cb0e..48388ba 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -1785,6 +1785,13 @@ def SetupLogging(logfile, debug=False, stderr_logging=False, program="", # we need to re-raise the exception raise +def IsNormAbsPath(path): + """Check whether a path is absolute and also normalized + + This avoids things like /dir/../../other/path to be valid. + + """ + return os.path.normpath(path) == path and os.path.isabs(path) def TailFile(fname, lines=20): """Return the last lines from a file. @@ -1833,6 +1840,16 @@ def SafeEncode(text): return text +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 LockedMethod(fn): """Synchronized object access decorator.