]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: add a new error code for non-existed subuser. 16095/head
authorZhao Chao <zhaochao1984@gmail.com>
Tue, 4 Jul 2017 07:44:41 +0000 (15:44 +0800)
committerZhao Chao <zhaochao1984@gmail.com>
Wed, 5 Jul 2017 06:23:17 +0000 (14:23 +0800)
When modify or delete non-existed subuser, a new error code
'NoSuchSubUser' is more specific than 'InvalidArgument'.

Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
src/rgw/rgw_common.cc
src/rgw/rgw_common.h
src/rgw/rgw_user.cc

index d4e494073ca6e5a793a0213c4e3907f4119c733e..73c650c5ff6cd5ff4bda60419cd4a17049292754 100644 (file)
@@ -89,6 +89,7 @@ rgw_http_errors rgw_http_s3_errors({
     { ERR_NOT_FOUND, {404, "Not Found"}},
     { ERR_NO_SUCH_LC, {404, "NoSuchLifecycleConfiguration"}},
     { ERR_NO_SUCH_BUCKET_POLICY, {404, "NoSuchBucketPolicy"}},
+    { ERR_NO_SUCH_SUBUSER, {404, "NoSuchSubUser"}},
     { ERR_METHOD_NOT_ALLOWED, {405, "MethodNotAllowed" }},
     { ETIMEDOUT, {408, "RequestTimeout" }},
     { EEXIST, {409, "BucketAlreadyExists" }},
index bf05d13a12f880ef621f4150e86809bfcf1777b1..c71aa4726093ab2c75183d15a92919c37f35482c 100644 (file)
@@ -198,6 +198,7 @@ using ceph::crypto::MD5;
 #define ERR_NO_SUCH_WEBSITE_CONFIGURATION 2039
 #define ERR_AMZ_CONTENT_SHA256_MISMATCH 2040
 #define ERR_NO_SUCH_LC           2041
+#define ERR_NO_SUCH_SUBUSER      2043
 #define ERR_USER_SUSPENDED       2100
 #define ERR_INTERNAL_ERROR       2200
 #define ERR_NOT_IMPLEMENTED      2201
index a73ff047f58380cd6a191afa10fdef636f5953de..4eb803e5cf4bc9c5f24fcc47da5c0dfc725ac129 100644 (file)
@@ -1419,11 +1419,11 @@ int RGWSubUserPool::execute_remove(RGWUserAdminOpState& op_state,
   siter = subuser_map->find(subuser_str);
   if (siter == subuser_map->end()){
     set_err_msg(err_msg, "subuser not found: " + subuser_str);
-    return -EINVAL;
+    return -ERR_NO_SUCH_SUBUSER;
   }
   if (!op_state.has_existing_subuser()) {
     set_err_msg(err_msg, "subuser not found: " + subuser_str);
-    return -EINVAL;
+    return -ERR_NO_SUCH_SUBUSER;
   }
 
   // always purge all associate keys
@@ -1479,7 +1479,7 @@ int RGWSubUserPool::execute_modify(RGWUserAdminOpState& op_state, std::string *e
 
   if (!op_state.has_existing_subuser()) {
     set_err_msg(err_msg, "subuser does not exist");
-    return -EINVAL;
+    return -ERR_NO_SUCH_SUBUSER;
   }
 
   subuser_pair.first = subuser_str;