From: Nikhilkumar Shelke Date: Tue, 8 Mar 2022 09:00:00 +0000 (+0530) Subject: mgr/volumes: the 'mode' should honor idempotent subvolume creation X-Git-Tag: v18.0.0~1251^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d164e49bdecadcc45579bccad39cb39ee4106ff7;p=ceph.git mgr/volumes: the 'mode' should honor idempotent subvolume creation currently the 'mode' argument is not honored idempotent subvolume creation for existing subvolume. Fixes: https://tracker.ceph.com/issues/54375 Signed-off-by: Nikhilkumar Shelke --- diff --git a/src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py b/src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py index 346751b221092..68d03e8d008e2 100644 --- a/src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py +++ b/src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py @@ -250,6 +250,11 @@ class SubvolumeBase(object): if uid is not None and gid is not None: self.fs.chown(path, uid, gid) + # set mode + mode = attrs.get("mode", None) + if mode is not None: + self.fs.lchmod(path, mode) + def _resize(self, path, newsize, noshrink): try: newsize = int(newsize) diff --git a/src/pybind/mgr/volumes/fs/volume.py b/src/pybind/mgr/volumes/fs/volume.py index 10247e2111179..38dbc34e1a885 100644 --- a/src/pybind/mgr/volumes/fs/volume.py +++ b/src/pybind/mgr/volumes/fs/volume.py @@ -176,6 +176,7 @@ class VolumeClient(CephfsClient["Module"]): pool = kwargs['pool_layout'] uid = kwargs['uid'] gid = kwargs['gid'] + mode = kwargs['mode'] isolate_nspace = kwargs['namespace_isolated'] try: @@ -187,6 +188,7 @@ class VolumeClient(CephfsClient["Module"]): attrs = { 'uid': uid if uid else subvolume.uid, 'gid': gid if gid else subvolume.gid, + 'mode': octal_str_to_decimal_int(mode), 'data_pool': pool, 'pool_namespace': subvolume.namespace if isolate_nspace else None, 'quota': size