From b5b8309de8b082658c28dc280ee82b71b264a0c5 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Fri, 11 Jun 2010 21:23:33 +0100 Subject: [PATCH] ListVisibleFiles: do not sort output Among all users, turns out just one *may* need the output to be sorted. All the others can cope without. Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- lib/backend.py | 2 +- lib/jqueue.py | 2 +- lib/utils.py | 6 +----- test/ganeti.utils_unittest.py | 17 +---------------- 4 files changed, 4 insertions(+), 23 deletions(-) diff --git a/lib/backend.py b/lib/backend.py index 3fda9c7d6..2a158d637 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -2162,7 +2162,7 @@ def ListExports(): """ if os.path.isdir(constants.EXPORT_DIR): - return utils.ListVisibleFiles(constants.EXPORT_DIR) + return sorted(utils.ListVisibleFiles(constants.EXPORT_DIR)) else: _Fail("No exports directory") diff --git a/lib/jqueue.py b/lib/jqueue.py index 1102c6513..2554c7cc4 100644 --- a/lib/jqueue.py +++ b/lib/jqueue.py @@ -913,7 +913,7 @@ class JobQueue(object): """ jlist = [] - for filename in utils.ListVisibleFiles(constants.QUEUE_DIR, sort=False): + for filename in utils.ListVisibleFiles(constants.QUEUE_DIR): m = self._RE_JOB_FILE.match(filename) if m: jlist.append(m.group(1)) diff --git a/lib/utils.py b/lib/utils.py index 7d13617af..3be5d66c4 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -1741,13 +1741,11 @@ def OwnIpAddress(address): source=constants.LOCALHOST_IP_ADDRESS) -def ListVisibleFiles(path, sort=True): +def ListVisibleFiles(path): """Returns a list of visible files in a directory. @type path: str @param path: the directory to enumerate - @type sort: boolean - @param sort: whether to provide a sorted output @rtype: list @return: the list of all files not starting with a dot @raise ProgrammerError: if L{path} is not an absolue and normalized path @@ -1757,8 +1755,6 @@ def ListVisibleFiles(path, sort=True): raise errors.ProgrammerError("Path passed to ListVisibleFiles is not" " absolute/normalized: '%s'" % path) files = [i for i in os.listdir(path) if not i.startswith(".")] - if sort: - files.sort() return files diff --git a/test/ganeti.utils_unittest.py b/test/ganeti.utils_unittest.py index 650fd619d..477c40993 100755 --- a/test/ganeti.utils_unittest.py +++ b/test/ganeti.utils_unittest.py @@ -1341,8 +1341,7 @@ class TestListVisibleFiles(unittest.TestCase): def _test(self, files, expected): self._CreateFiles(files) found = ListVisibleFiles(self.path) - # by default ListVisibleFiles sorts its output - self.assertEqual(found, sorted(expected)) + self.assertEqual(set(found), set(expected)) def testAllVisible(self): files = ["a", "b", "c"] @@ -1359,20 +1358,6 @@ class TestListVisibleFiles(unittest.TestCase): expected = ["a", "b"] self._test(files, expected) - def testForceSort(self): - files = ["c", "b", "a"] - self._CreateFiles(files) - found = ListVisibleFiles(self.path, sort=True) - self.assertEqual(found, sorted(files)) - - def testForceNonSort(self): - files = ["c", "b", "a"] - self._CreateFiles(files) - found = ListVisibleFiles(self.path, sort=False) - # We can't actually check that they weren't sorted, because they might come - # out sorted by chance - self.assertEqual(set(found), set(files)) - def testNonAbsolutePath(self): self.failUnlessRaises(errors.ProgrammerError, ListVisibleFiles, "abc") -- GitLab