From 639474fa15c0db2b025c3aed5a5e0a96faefd531 Mon Sep 17 00:00:00 2001 From: Matthew Vernon Date: Thu, 4 Feb 2021 11:41:14 +0000 Subject: [PATCH] [PATCH] rgw/radosgw-admin clarify error when email address already in use The error message if you try and create an S3 user with an email address that is already associated with another S3 account is very confusing; this patch makes it much clearer To reproduce: radosgw-admin user create --uid=foo --display-name="Foo test" --email=bar@domain.invalid radosgw-admin user create --uid=test --display-name="AN test" --email=bar@domain.invalid could not create user: unable to parse parameters, user id mismatch, operation id: foo does not match: test With this patch: radosgw-admin user create --uid=test --display-name="AN test" --email=bar@domain.invalid could not create user: unable to create user test because user id foo already exists with email bar@domain.invalid Fixes: https://tracker.ceph.com/issues/49137 Fixes: https://tracker.ceph.com/issues/19411 Signed-off-by: Matthew Vernon (cherry picked from commit 05318d6f71e45a42a46518a0ef17047dfab83990) Gbp-Pq: Name bug1914584.patch --- src/rgw/rgw_user.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_user.cc b/src/rgw/rgw_user.cc index ad8cfc88d..53411d853 100644 --- a/src/rgw/rgw_user.cc +++ b/src/rgw/rgw_user.cc @@ -1970,7 +1970,14 @@ int RGWUser::remove(const DoutPrefixProvider *dpp, RGWUserAdminOpState& op_state ret = check_op(op_state, &subprocess_msg); if (ret < 0) { - set_err_msg(err_msg, "unable to parse parameters, " + subprocess_msg); + if (is_populated() && (user_id.compare(op_state.get_user_id()) != 0)) { + set_err_msg(err_msg, "unable to create user " + user_id.to_str() + + " because user id " + op_state.get_user_id().to_str() + + " already exists with email " + + op_state.get_user_email()); + } else { + set_err_msg(err_msg, "unable to parse parameters, " + subprocess_msg); + } return ret; } -- 2.30.2