except EarmarkException:
attrs["earmark"] = ''
+ try:
+ attrs["normalization"] = self.fs.getxattr(pathname,
+ 'ceph.dir.normalization'
+ ).decode('utf-8')
+ except cephfs.NoData:
+ attrs["normalization"] = None
+
return attrs
def set_attrs(self, path, attrs):
fs_earmark = CephFSVolumeEarmarking(self.fs, path)
fs_earmark.set_earmark(earmark)
+ normalization = attrs.get("normalization")
+ if normalization is not None:
+ try:
+ self.fs.setxattr(path, "ceph.dir.normalization", normalization.encode('utf-8'), 0)
+ except cephfs.Error as e:
+ raise VolumeException(-e.args[0], e.args[1])
+
def _resize(self, path, newsize, noshrink):
try:
newsize = int(newsize)
except EarmarkException:
earmark = ''
+ try:
+ normalization = self.fs.getxattr(subvolpath,
+ 'ceph.dir.normalization'
+ ).decode('utf-8')
+ except cephfs.NoData:
+ normalization = "none"
+
return {'path': subvolpath,
'type': etype.value,
'uid': int(st["uid"]),
'pool_namespace': pool_namespace,
'features': self.features,
'state': self.state.value,
- 'earmark': earmark}
+ 'earmark': earmark,
+ 'normalization': normalization,
+ }
def set_user_metadata(self, keyname, value):
try: