summaryrefslogtreecommitdiffstats
path: root/debian/patches/bug1914584.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/bug1914584.patch')
-rw-r--r--debian/patches/bug1914584.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/debian/patches/bug1914584.patch b/debian/patches/bug1914584.patch
new file mode 100644
index 000000000..763a948f9
--- /dev/null
+++ b/debian/patches/bug1914584.patch
@@ -0,0 +1,49 @@
+From a8c1aec073fc8364818027a26fa1ddb5d34c58af Mon Sep 17 00:00:00 2001
+From: Matthew Vernon <mv3@sanger.ac.uk>
+Date: Thu, 4 Feb 2021 11:41:14 +0000
+Subject: [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 <mv3@sanger.ac.uk>
+(cherry picked from commit 05318d6f71e45a42a46518a0ef17047dfab83990)
+---
+ src/rgw/rgw_user.cc | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+Index: ceph/src/rgw/rgw_user.cc
+===================================================================
+--- ceph.orig/src/rgw/rgw_user.cc
++++ ceph/src/rgw/rgw_user.cc
+@@ -1970,7 +1970,14 @@ int RGWUser::remove(const DoutPrefixProv
+
+ 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;
+ }
+