From: Pedro Gonzalez Gomez Date: Thu, 31 Aug 2023 23:54:28 +0000 (+0200) Subject: mgr/dashboard: CephFS add groups in subvolume tab X-Git-Tag: v19.0.0~514^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=041bc0c362bf4109416ecc12bc44aa7496ebb9d1;p=ceph.git mgr/dashboard: CephFS add groups in subvolume tab Adds subvolume groups into the subvolume tabs in order to select the subvolumes from the appropiate group. Also adds the capabilities to manage the subvolume groups of the subvolume in the different actions, create, edit, remove. Fixes: https://tracker.ceph.com/issues/62675 Signed-off-by: Pedro Gonzalez Gomez --- diff --git a/src/pybind/mgr/dashboard/controllers/cephfs.py b/src/pybind/mgr/dashboard/controllers/cephfs.py index 0475ad7d4afc4..ed83f91d0c973 100644 --- a/src/pybind/mgr/dashboard/controllers/cephfs.py +++ b/src/pybind/mgr/dashboard/controllers/cephfs.py @@ -673,17 +673,21 @@ class CephFsUi(CephFS): @APIDoc('CephFS Subvolume Management API', 'CephFSSubvolume') class CephFSSubvolume(RESTController): - def get(self, vol_name: str): + def get(self, vol_name: str, group_name: str = ""): + params = {'vol_name': vol_name} + if group_name: + params['group_name'] = group_name error_code, out, err = mgr.remote( - 'volumes', '_cmd_fs_subvolume_ls', None, {'vol_name': vol_name}) + 'volumes', '_cmd_fs_subvolume_ls', None, params) if error_code != 0: raise DashboardException( f'Failed to list subvolumes for volume {vol_name}: {err}' ) subvolumes = json.loads(out) for subvolume in subvolumes: - error_code, out, err = mgr.remote('volumes', '_cmd_fs_subvolume_info', None, { - 'vol_name': vol_name, 'sub_name': subvolume['name']}) + params['sub_name'] = subvolume['name'] + error_code, out, err = mgr.remote('volumes', '_cmd_fs_subvolume_info', None, + params) if error_code != 0: raise DashboardException( f'Failed to get info for subvolume {subvolume["name"]}: {err}' @@ -692,9 +696,12 @@ class CephFSSubvolume(RESTController): return subvolumes @RESTController.Resource('GET') - def info(self, vol_name: str, subvol_name: str): - error_code, out, err = mgr.remote('volumes', '_cmd_fs_subvolume_info', None, { - 'vol_name': vol_name, 'sub_name': subvol_name}) + def info(self, vol_name: str, subvol_name: str, group_name: str = ""): + params = {'vol_name': vol_name, 'sub_name': subvol_name} + if group_name: + params['group_name'] = group_name + error_code, out, err = mgr.remote('volumes', '_cmd_fs_subvolume_info', None, + params) if error_code != 0: raise DashboardException( f'Failed to get info for subvolume {subvol_name}: {err}' @@ -711,10 +718,14 @@ class CephFSSubvolume(RESTController): return f'Subvolume {subvol_name} created successfully' - def set(self, vol_name: str, subvol_name: str, size: str): + def set(self, vol_name: str, subvol_name: str, size: str, group_name: str = ""): + params = {'vol_name': vol_name, 'sub_name': subvol_name} if size: - error_code, _, err = mgr.remote('volumes', '_cmd_fs_subvolume_resize', None, { - 'vol_name': vol_name, 'sub_name': subvol_name, 'new_size': size}) + params['new_size'] = size + if group_name: + params['group_name'] = group_name + error_code, _, err = mgr.remote('volumes', '_cmd_fs_subvolume_resize', None, + params) if error_code != 0: raise DashboardException( f'Failed to update subvolume {subvol_name}: {err}' @@ -722,8 +733,11 @@ class CephFSSubvolume(RESTController): return f'Subvolume {subvol_name} updated successfully' - def delete(self, vol_name: str, subvol_name: str, retain_snapshots: bool = False): + def delete(self, vol_name: str, subvol_name: str, group_name: str = "", + retain_snapshots: bool = False): params = {'vol_name': vol_name, 'sub_name': subvol_name} + if group_name: + params['group_name'] = group_name retain_snapshots = str_to_bool(retain_snapshots) if retain_snapshots: params['retain_snapshots'] = 'True' diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-subvolume-form/cephfs-subvolume-form.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-subvolume-form/cephfs-subvolume-form.component.html index 336e07cdb3702..9411c8f4c3894 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-subvolume-form/cephfs-subvolume-form.component.html +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-subvolume-form/cephfs-subvolume-form.component.html @@ -43,6 +43,26 @@ + +
+ +
+ +
+
+