summaryrefslogtreecommitdiffstats
path: root/gluster
diff options
context:
space:
mode:
authorPeter Portante <peter.portante@redhat.com>2013-06-03 11:15:52 -0400
committerLuis Pabon <lpabon@redhat.com>2013-06-04 11:34:19 -0700
commit006c3599cba53441ede3e7ba8fe27c18bea212f1 (patch)
tree3e5fe838f567ecfba75f09ee834861cececb25f9 /gluster
parent3435c59ba3a679867adffa84719b8648c9fbf601 (diff)
Refactor filter_* methods as module functions
The various filter_* methods of the DiskCommon class don't operate on the DiskCommon object instance itself, but always on the list of objects passed in to it. This change does not modify those functions' behaviors but simply refactors them to live at the module level. Change-Id: Ic0f578d94aab65a524470278f10d1fdc8b1d6392 Signed-off-by: Peter Portante <peter.portante@redhat.com> Reviewed-on: http://review.gluster.org/5138 Reviewed-by: Luis Pabon <lpabon@redhat.com> Tested-by: Luis Pabon <lpabon@redhat.com>
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: