From 9992faa9479b62f05f36352daf89f6e7541f29c9 Mon Sep 17 00:00:00 2001 From: Tatjana Dehler Date: Fri, 27 Mar 2020 15:58:42 +0100 Subject: [PATCH] mgr/dashboard: do not fail on user creation Accordingly to other Ceph commands do not fail on user creation with a non-zero error code if the user already exists. Instead succeed and return the message 'User already exists'. Fixes: https://tracker.ceph.com/issues/44502 Signed-off-by: Tatjana Dehler --- src/pybind/mgr/dashboard/services/access_control.py | 2 +- src/pybind/mgr/dashboard/tests/test_access_control.py | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/pybind/mgr/dashboard/services/access_control.py b/src/pybind/mgr/dashboard/services/access_control.py index f5a559751e6..e55c1455ccd 100644 --- a/src/pybind/mgr/dashboard/services/access_control.py +++ b/src/pybind/mgr/dashboard/services/access_control.py @@ -727,7 +727,7 @@ def ac_user_create_cmd(_, username, password=None, rolename=None, name=None, except PasswordPolicyException as ex: return -errno.EINVAL, '', str(ex) except UserAlreadyExists as ex: - return -errno.EEXIST, '', str(ex) + return 0, str(ex), '' if role: user.set_roles([role]) diff --git a/src/pybind/mgr/dashboard/tests/test_access_control.py b/src/pybind/mgr/dashboard/tests/test_access_control.py index 684d7a84fd7..0039efc167b 100644 --- a/src/pybind/mgr/dashboard/tests/test_access_control.py +++ b/src/pybind/mgr/dashboard/tests/test_access_control.py @@ -328,13 +328,9 @@ class AccessControlTest(unittest.TestCase, CLICommandTestMixin): def test_create_duplicate_user(self): self.test_create_user() - - with self.assertRaises(CmdException) as ctx: - self.exec_cmd('ac-user-create', username='admin', password='admin', - force_password=True) - - self.assertEqual(ctx.exception.retcode, -errno.EEXIST) - self.assertEqual(str(ctx.exception), "User 'admin' already exists") + ret = self.exec_cmd('ac-user-create', username='admin', password='admin', + force_password=True) + self.assertEqual(ret, "User 'admin' already exists") def test_create_users_with_dne_role(self): # one time call to setup our persistent db -- 2.39.5