diff options
author | Peter Portante <peter.portante@redhat.com> | 2013-06-03 11:15:52 -0400 |
---|---|---|
committer | Luis Pabon <lpabon@redhat.com> | 2013-06-04 11:34:19 -0700 |
commit | 006c3599cba53441ede3e7ba8fe27c18bea212f1 (patch) | |
tree | 3e5fe838f567ecfba75f09ee834861cececb25f9 | |
parent | 3435c59ba3a679867adffa84719b8648c9fbf601 (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>
-rw-r--r-- | gluster/swift/common/DiskDir.py | 139 |
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: |