path: root/glustolibs-gluster
diff options
Diffstat (limited to 'glustolibs-gluster')
1 files changed, 6 insertions, 2 deletions
diff --git a/glustolibs-gluster/glustolibs/gluster/ b/glustolibs-gluster/glustolibs/gluster/
index eaf4fc99c..b01f7c52c 100644
--- a/glustolibs-gluster/glustolibs/gluster/
+++ b/glustolibs-gluster/glustolibs/gluster/
@@ -342,13 +342,14 @@ def find_new_hashed(subvols, parent_path, oldname):
return None
-def find_specific_hashed(subvols, parent_path, subvol):
+def find_specific_hashed(subvols, parent_path, subvol, existing_names=None):
""" Finds filename that hashes to a specific subvol.
subvols(list): list of subvols
parent_path(str): parent path (relative to mount) of "oldname"
subvol(str): The subvol to which the new name has to be hashed
+ existing_names(int|list): The name(s) already hashed to subvol
(Class Object): For success returns an object of type NewHashed
@@ -357,6 +358,8 @@ def find_specific_hashed(subvols, parent_path, subvol):
Note: The new hash will be searched under the same parent
# pylint: disable=protected-access
+ if not isinstance(existing_names, list):
+ existing_names = [existing_names]
brickobject = create_brickobjectlist(subvols, parent_path)
if brickobject is None:
g.log.error("could not form brickobject list")
@@ -366,7 +369,8 @@ def find_specific_hashed(subvols, parent_path, subvol):
newhash = calculate_hash(brickobject[0]._host, str(item))
for brickdir in brickobject:
count += 1
- if subvol._fqpath == brickdir._fqpath:
+ if (subvol._fqpath == brickdir._fqpath and
+ item not in existing_names):
ret = brickdir.hashrange_contains_hash(newhash)
if ret:
g.log.debug("oldhashed %s new %s count %s",