normalization = "none"
try:
- case_insensitive = self.fs.getxattr(subvolpath,
+ casesensitive = self.fs.getxattr(subvolpath,
'ceph.dir.casesensitive'
).decode('utf-8')
- case_insensitive = case_insensitive == "0"
+ casesensitive = casesensitive == "1"
except cephfs.NoData:
- case_insensitive = False
+ casesensitive = True
- return {'path': subvolpath,
+ subvol_info = {
+ 'path': subvolpath,
'type': etype.value,
'uid': int(st["uid"]),
'gid': int(st["gid"]),
'state': self.state.value,
'earmark': earmark,
'normalization': normalization,
- 'case_insensitive': case_insensitive,
+ 'casesensitive': casesensitive,
}
+ subvol_src_info = self._get_clone_source()
+ if subvol_src_info:
+ if subvol_src_info.get('group', None) == None:
+ # group name won't be saved in .meta file in case it's
+ # default group
+ subvol_src_info['group'] = '_nogroup'
+ subvol_info['source'] = subvol_src_info
+ else:
+ # it could be that the clone was created in previous release of Ceph
+ # where its source info used to be deleted after cloning finishes.
+ # print "N/A" for such cases.
+ if self.subvol_type == SubvolumeTypes.TYPE_CLONE:
+ subvol_info['source'] = 'N/A'
+ else:
+ # only clones can have a source subvol, therefore don't even
+ # print "N/A" for source info if subvolume is not a clone.
+ pass
+
+ return subvol_info
+
def set_user_metadata(self, keyname, value):
try:
self.metadata_mgr.add_section(MetadataManager.USER_METADATA_SECTION)