summaryrefslogtreecommitdiffstats
path: root/gluster
diff options
context:
space:
mode:
Diffstat (limited to 'gluster')
-rw-r--r--gluster/swift/common/DiskDir.py139
1 files changed, 72 insertions, 67 deletions
diff --git a/gluster/swift/common/DiskDir.py b/gluster/swift/common/DiskDir.py
index a0c9a51..60aecf4 100644
--- a/gluster/swift/common/DiskDir.py
+++ b/gluster/swift/common/DiskDir.py
@@ -53,73 +53,78 @@ def _read_metadata(dd):
return metadata
-class DiskCommon(object):
- def is_deleted(self):
- return not os_path.exists(self.datadir)
+def filter_prefix(objects, prefix):
+ """
+ Accept sorted list.
+ """
+ found = 0
+ filtered_objs = []
+ for object_name in objects:
+ if object_name.startswith(prefix):
+ filtered_objs.append(object_name)
+ found = 1
+ else:
+ if found:
+ break
+ return filtered_objs
- def filter_prefix(self, objects, prefix):
- """
- Accept sorted list.
- """
- found = 0
- filtered_objs = []
- for object_name in objects:
- if object_name.startswith(prefix):
- filtered_objs.append(object_name)
- found = 1
- else:
- if found:
- break
- return filtered_objs
- def filter_delimiter(self, objects, delimiter, prefix):
- """
- Accept sorted list.
- Objects should start with prefix.
- """
- filtered_objs = []
- for object_name in objects:
- tmp_obj = object_name.replace(prefix, '', 1)
- sufix = tmp_obj.split(delimiter, 1)
- new_obj = prefix + sufix[0]
- if new_obj and new_obj not in filtered_objs:
- filtered_objs.append(new_obj)
+def filter_delimiter(objects, delimiter, prefix):
+ """
+ Accept sorted list.
+ Objects should start with prefix.
+ """
+ filtered_objs = []
+ for object_name in objects:
+ tmp_obj = object_name.replace(prefix, '', 1)
+ sufix = tmp_obj.split(delimiter, 1)
+ new_obj = prefix + sufix[0]
+ if new_obj and new_obj not in filtered_objs:
+ filtered_objs.append(new_obj)
- return filtered_objs
+ return filtered_objs
- def filter_marker(self, objects, marker):
- """
- TODO: We can traverse in reverse order to optimize.
- Accept sorted list.
- """
- filtered_objs = []
- if objects[-1] < marker:
- return filtered_objs
- for object_name in objects:
- if object_name > marker:
- filtered_objs.append(object_name)
+def filter_marker(objects, marker):
+ """
+ TODO: We can traverse in reverse order to optimize.
+ Accept sorted list.
+ """
+ filtered_objs = []
+ if objects[-1] < marker:
return filtered_objs
+ for object_name in objects:
+ if object_name > marker:
+ filtered_objs.append(object_name)
- def filter_end_marker(self, objects, end_marker):
- """
- Accept sorted list.
- """
- filtered_objs = []
- for object_name in objects:
- if object_name < end_marker:
- filtered_objs.append(object_name)
- else:
- break
+ return filtered_objs
- return filtered_objs
- def filter_limit(self, objects, limit):
- filtered_objs = []
- for i in range(0, limit):
- filtered_objs.append(objects[i])
+def filter_end_marker(objects, end_marker):
+ """
+ Accept sorted list.
+ """
+ filtered_objs = []
+ for object_name in objects:
+ if object_name < end_marker:
+ filtered_objs.append(object_name)
+ else:
+ break
+
+ return filtered_objs
- return filtered_objs
+
+def filter_limit(objects, limit):
+ filtered_objs = []
+ for i in range(0, limit):
+ filtered_objs.append(objects[i])
+
+ return filtered_objs
+
+
+class DiskCommon(object):
+ def is_deleted(self):
+ return not os_path.exists(self.datadir)
class DiskDir(DiskCommon):
@@ -273,20 +278,20 @@ class DiskDir(DiskCommon):
objects.sort()
if objects and prefix:
- objects = self.filter_prefix(objects, prefix)
+ objects = filter_prefix(objects, prefix)
if objects and delimiter:
- objects = self.filter_delimiter(objects, delimiter, prefix)
+ objects = filter_delimiter(objects, delimiter, prefix)
if objects and marker:
- objects = self.filter_marker(objects, marker)
+ objects = filter_marker(objects, marker)
if objects and end_marker:
- objects = self.filter_end_marker(objects, end_marker)
+ objects = filter_end_marker(objects, end_marker)
if objects and limit:
if len(objects) > limit:
- objects = self.filter_limit(objects, limit)
+ objects = filter_limit(objects, limit)
container_list = []
if objects:
@@ -526,20 +531,20 @@ class DiskAccount(DiskDir):
containers.sort()
if containers and prefix:
- containers = self.filter_prefix(containers, prefix)
+ containers = filter_prefix(containers, prefix)
if containers and delimiter:
- containers = self.filter_delimiter(containers, delimiter, prefix)
+ containers = filter_delimiter(containers, delimiter, prefix)
if containers and marker:
- containers = self.filter_marker(containers, marker)
+ containers = filter_marker(containers, marker)
if containers and end_marker:
- containers = self.filter_end_marker(containers, end_marker)
+ containers = filter_end_marker(containers, end_marker)
if containers and limit:
if len(containers) > limit:
- containers = self.filter_limit(containers, limit)
+ containers = filter_limit(containers, limit)
account_list = []
if containers: