]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: do not fail on user creation 34247/head
authorTatjana Dehler <tdehler@suse.com>
Fri, 27 Mar 2020 14:58:42 +0000 (15:58 +0100)
committerTatjana Dehler <tdehler@suse.com>
Fri, 27 Mar 2020 14:58:42 +0000 (15:58 +0100)
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 <username>
already exists'.

Fixes: https://tracker.ceph.com/issues/44502
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
src/pybind/mgr/dashboard/services/access_control.py
src/pybind/mgr/dashboard/tests/test_access_control.py

index f5a559751e60e7b7316840e93c4c332454d1bcf0..e55c1455ccd17ce08ca1b20fc2185db0866962d1 100644 (file)
@@ -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])
index 684d7a84fd77e85a96be5faed3b7c9a81c19e88d..0039efc167ba8c9d66238ae25d8e56675ec5f7db 100644 (file)
@@ -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