summaryrefslogtreecommitdiff
path: root/obnamlib/fmt_ga/client.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2015-07-17 17:57:47 +0300
committerLars Wirzenius <liw@liw.fi>2015-07-17 17:57:47 +0300
commitfb01a08f4632090fab509718cd67bad32c65d0be (patch)
tree043bfee9a401d2c192fea8df4625414d43e2bc71 /obnamlib/fmt_ga/client.py
parent8f7279ae965fd4d5551da810a3634ed6f9067dc3 (diff)
downloadobnam-fb01a08f4632090fab509718cd67bad32c65d0be.tar.gz
Simplify get_file_children in Green Albatross
Diffstat (limited to 'obnamlib/fmt_ga/client.py')
-rw-r--r--obnamlib/fmt_ga/client.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/obnamlib/fmt_ga/client.py b/obnamlib/fmt_ga/client.py
index 0cee004f..2cca15cb 100644
--- a/obnamlib/fmt_ga/client.py
+++ b/obnamlib/fmt_ga/client.py
@@ -301,9 +301,7 @@ class GAClient(object):
self._require_file_exists(gen_number, filename)
generation = self._lookup_generation_by_gen_number(gen_number)
metadata = generation.get_file_metadata()
- return [
- x for x in metadata
- if self._is_direct_child_of(x, filename)]
+ return metadata.get_file_children(filename)
def _is_direct_child_of(self, child, parent):
return os.path.dirname(child) == parent and child != parent
@@ -588,6 +586,17 @@ class GAFileMetadata(object):
if dir_obj:
dir_obj.clear_file_chunk_ids(basename)
+ def get_file_children(self, filename):
+ assert filename not in self._added_files
+ dir_obj, dirname, basename = self._get_dir_obj(filename)
+ if basename != '.':
+ return []
+ if dir_obj:
+ files = [x for x in dir_obj.get_file_basenames() if x != '.']
+ subdirs = dir_obj.get_subdir_basenames()
+ return [os.path.join(dirname, x) for x in files + subdirs]
+ return []
+
class AddedFiles(object):