Add delete user action
Change-Id: Iff88333ecdbdc3ece3a9053470d239e260030612
This commit is contained in:
parent
07a66d1945
commit
de2bc7fbac
@ -12,3 +12,10 @@ add-user:
|
|||||||
description: Role to give user
|
description: Role to give user
|
||||||
type: string
|
type: string
|
||||||
default: ""
|
default: ""
|
||||||
|
delete-user:
|
||||||
|
description: delete a dashboard user
|
||||||
|
params:
|
||||||
|
username:
|
||||||
|
description: Name of user to delete
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
13
src/charm.py
13
src/charm.py
@ -179,6 +179,9 @@ class CephDashboardCharm(ops_openstack.core.OSBaseCharm):
|
|||||||
self.radosgw_user.on.gw_user_ready,
|
self.radosgw_user.on.gw_user_ready,
|
||||||
self._configure_dashboard)
|
self._configure_dashboard)
|
||||||
self.framework.observe(self.on.add_user_action, self._add_user_action)
|
self.framework.observe(self.on.add_user_action, self._add_user_action)
|
||||||
|
self.framework.observe(
|
||||||
|
self.on.delete_user_action,
|
||||||
|
self._delete_user_action)
|
||||||
self.ingress = interface_api_endpoints.APIEndpointsRequires(
|
self.ingress = interface_api_endpoints.APIEndpointsRequires(
|
||||||
self,
|
self,
|
||||||
'loadbalancer',
|
'loadbalancer',
|
||||||
@ -518,5 +521,15 @@ class CephDashboardCharm(ops_openstack.core.OSBaseCharm):
|
|||||||
else:
|
else:
|
||||||
event.set_results({"password": password})
|
event.set_results({"password": password})
|
||||||
|
|
||||||
|
def _delete_user_action(self, event: ActionEvent) -> None:
|
||||||
|
"""Delete a user"""
|
||||||
|
username = event.params["username"]
|
||||||
|
try:
|
||||||
|
self._run_cmd(['ceph', 'dashboard', 'ac-user-delete', username])
|
||||||
|
event.set_results({"message": "User {} deleted".format(username)})
|
||||||
|
except subprocess.CalledProcessError as exc:
|
||||||
|
event.fail(exc.output)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main(CephDashboardCharm)
|
main(CephDashboardCharm)
|
||||||
|
@ -630,3 +630,14 @@ class TestCephDashboardCharmBase(CharmTestCase):
|
|||||||
self.subprocess.check_output.assert_called_once_with(
|
self.subprocess.check_output.assert_called_once_with(
|
||||||
['ceph', 'dashboard', 'ac-user-create', '--enabled',
|
['ceph', 'dashboard', 'ac-user-create', '--enabled',
|
||||||
'-i', 'tempfilename', 'auser', 'administrator'])
|
'-i', 'tempfilename', 'auser', 'administrator'])
|
||||||
|
|
||||||
|
def test__delete_user_action(self):
|
||||||
|
self.subprocess.check_output.return_value = b''
|
||||||
|
self.harness.begin()
|
||||||
|
action_event = MagicMock()
|
||||||
|
action_event.params = {
|
||||||
|
'username': 'auser'}
|
||||||
|
self.harness.charm._delete_user_action(action_event)
|
||||||
|
self.subprocess.check_output.assert_called_once_with(
|
||||||
|
['ceph', 'dashboard', 'ac-user-delete', 'auser'],
|
||||||
|
stderr=self.subprocess.STDOUT)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user