"""
return the subvolume path from subvolume specification
"""
- return os.path.join(self.subvolume_prefix, self.groupid, self.subvolumeid)
+ return os.path.join(self.group_path, self.subvolumeid.encode('utf-8'))
@property
def group_path(self):
"""
return the group path from subvolume specification
"""
- return os.path.join(self.subvolume_prefix, self.groupid)
+ return os.path.join(self.subvolume_prefix.encode('utf-8'), self.groupid.encode('utf-8'))
@property
def trash_path(self):
"""
return the trash path from subvolume specification
"""
- return os.path.join(self.subvolume_prefix, "_deleting", self.subvolumeid)
+ return os.path.join(self.subvolume_prefix.encode('utf-8'), b"_deleting", self.subvolumeid.encode('utf-8'))
@property
def unique_trash_path(self):
"""
return a unique trash directory entry path
"""
- return os.path.join(self.subvolume_prefix, "_deleting", str(uuid.uuid4()))
+ return os.path.join(self.subvolume_prefix.encode('utf-8'), b"_deleting", str(uuid.uuid4()).encode('utf-8'))
@property
def fs_namespace(self):
"""
return the trash directory path
"""
- return os.path.join(self.subvolume_prefix, "_deleting")
+ return os.path.join(self.subvolume_prefix.encode('utf-8'), b"_deleting")
def make_subvol_snap_path(self, snapdir, snapname):
"""
except cephfs.Error as e:
raise VolumeException(-e.args[0], e.args[1])
- exclude.extend([".", ".."])
+ exclude.extend((b".", b".."))
d = self.fs.readdir(dir_handle)
d_name = None
while d:
- if not d.d_name.decode('utf-8') in exclude and d.is_dir():
- d_name = d.d_name.decode('utf-8')
+ if not d.d_name in exclude and d.is_dir():
+ d_name = d.d_name
break
d = self.fs.readdir(dir_handle)
self.fs.closedir(dir_handle)
raise VolumeException(-e.args[0], e.args[1])
d = self.fs.readdir(dir_handle)
while d and not should_cancel():
- d_name = d.d_name.decode('utf-8')
- if d_name not in [".", ".."]:
- # Do not use os.path.join because it is sensitive
- # to string encoding, we just pass through dnames
- # as byte arrays
- d_full = "{0}/{1}".format(root_path, d_name)
+ if d.d_name not in (b".", b".."):
+ d_full = os.path.join(root_path, d.d_name)
if d.is_dir():
rmtree(d_full)
else:
try:
with SubVolume(self.mgr, fs_handle) as sv:
- spec = SubvolumeSpec(purge_dir, "")
+ spec = SubvolumeSpec(purge_dir.decode('utf-8'), "")
sv.purge_subvolume(spec, should_cancel)
except VolumeException as ve:
ret = self.volume_exception_to_retval(ve)