Skip to content

Commit 2e06ab0

Browse files
committed
mgr/dashboard: support rgw roles removal
Fixes: https://tracker.ceph.com/issues/63230 Signed-off-by: Nizamudeen A <[email protected]>
1 parent 68ab0ed commit 2e06ab0

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

src/pybind/mgr/dashboard/controllers/rgw.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,16 @@ def role_create(_, role_name: str = '', role_path: str = '', role_assume_policy_
718718
return f'Role {role_name} created successfully'
719719

720720

721+
@staticmethod
722+
def role_delete(_, role_name: str):
723+
assert role_name
724+
rgw_client = RgwClient.admin_instance()
725+
rgw_client.delete_role(role_name)
726+
return f'Role {role_name} deleted successfully'
727+
728+
729+
730+
721731
# pylint: disable=C0301
722732
assume_role_policy_help = (
723733
'Paste a json assume role policy document, to find more information on how to get this document, <a ' # noqa: E501
@@ -746,7 +756,8 @@ def role_create(_, role_name: str = '', role_path: str = '', role_assume_policy_
746756
doc=APIDoc("List of RGW roles", "RGW"),
747757
actions=[
748758
TableAction(name='Create', permission='create', icon=Icon.ADD.value,
749-
routerLink='/rgw/roles/create')
759+
TableAction(name='Delete', permission='delete', icon=Icon.DESTROY.value,
760+
click='delete', disable=True),
750761
],
751762
forms=[create_role_form],
752763
permissions=[Scope.CONFIG_OPT],
@@ -756,7 +767,11 @@ def role_create(_, role_name: str = '', role_path: str = '', role_assume_policy_
756767
),
757768
create=CRUDCollectionMethod(
758769
func=RGWRoleEndpoints.role_create,
759-
doc=EndpointDoc("Create Ceph User")
770+
doc=EndpointDoc("Create RGW role")
771+
),
772+
delete=CRUDCollectionMethod(
773+
func=RGWRoleEndpoints.role_delete,
774+
doc=EndpointDoc("Delete RGW role")
760775
),
761776
set_column={
762777
"CreateDate": {'cellTemplate': 'date'},

src/pybind/mgr/dashboard/services/rgw_client.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -851,6 +851,14 @@ def create_role(self, role_name: str, role_path: str, role_assume_policy_doc: st
851851
'Looks like the document has a wrong format.'
852852
f' For more information about the format look at {link}')
853853
raise DashboardException(msg=msg, component='rgw')
854+
855+
def delete_role(self, role_name: str) -> None:
856+
rgw_delete_role_command = ['role', 'delete', '--role-name', role_name]
857+
code, _, _err = mgr.send_rgwadmin_command(rgw_delete_role_command,
858+
stdout_as_json=False)
859+
if code != 0:
860+
raise DashboardException(msg=f'Error deleting role with code {code}: {_err}',
861+
component='rgw')
854862

855863
@RestClient.api_get('/{bucket_name}?policy')
856864
def get_bucket_policy(self, bucket_name: str, request=None):

0 commit comments

Comments
 (0)