]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix some errors in params
authorzhang Shaowen <zhangshaowen@cmss.chinamobile.com>
Mon, 20 May 2019 03:22:48 +0000 (11:22 +0800)
committerPaul Emmerich <paul.emmerich@croit.io>
Wed, 2 Oct 2019 23:14:30 +0000 (01:14 +0200)
Signed-off-by: zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
(cherry picked from commit 57891092902b0fc48abe7d3166b5e69a2a93d035)

src/rgw/rgw_common.cc
src/rgw/rgw_common.h
src/rgw/rgw_rest_s3.cc

index 86a257ec51e8e8cbb3ddb336d5ba2dad15dd4594..648c23141d86b3ca449e1aac3856b69bf3a4680c 100644 (file)
@@ -96,7 +96,7 @@ rgw_http_errors rgw_http_s3_errors({
     { ERR_NO_SUCH_SUBUSER, {404, "NoSuchSubUser"}},
     { ERR_NO_SUCH_ENTITY, {404, "NoSuchEntity"}},
     { ERR_NO_SUCH_CORS_CONFIGURATION, {404, "NoSuchCORSConfiguration"}},
-    { ERR_NO_SUCH_OBJECT_LOCK_CONFIGURATION, {404, "NoSuchObjectLockConfiguration"}},
+    { ERR_NO_SUCH_OBJECT_LOCK_CONFIGURATION, {404, "ObjectLockConfigurationNotFoundError"}},
     { ERR_METHOD_NOT_ALLOWED, {405, "MethodNotAllowed" }},
     { ETIMEDOUT, {408, "RequestTimeout" }},
     { EEXIST, {409, "BucketAlreadyExists" }},
index af3071cf56cfd958ab214240ead1a1c0ae334d26..e5bab016b720fc5068868f36a61240a6ca5b543c 100644 (file)
@@ -85,8 +85,6 @@ using ceph::crypto::MD5;
 #define RGW_ATTR_OBJECT_LOCK        RGW_ATTR_PREFIX "object-lock"
 #define RGW_ATTR_OBJECT_RETENTION   RGW_ATTR_PREFIX "object-retention"
 #define RGW_ATTR_OBJECT_LEGAL_HOLD  RGW_ATTR_PREFIX "object-legal-hold"
-#define RGW_ATTR_OBJECT_LOCK_MODE   RGW_ATTR_PREFIX "object-lock-mode"
-#define RGW_ATTR_OBJECT_LOCK_UNTIL_DATE    RGW_ATTR_PREFIX "object-lock-until-date"
 
 
 #define RGW_ATTR_PG_VER        RGW_ATTR_PREFIX "pg_ver"
@@ -218,7 +216,6 @@ using ceph::crypto::MD5;
 #define ERR_MFA_REQUIRED         2044
 #define ERR_NO_SUCH_CORS_CONFIGURATION 2045
 #define ERR_NO_SUCH_OBJECT_LOCK_CONFIGURATION  2046
-#define ERR_INVALID_BUCKET_STATE 2047
 #define ERR_USER_SUSPENDED       2100
 #define ERR_INTERNAL_ERROR       2200
 #define ERR_NOT_IMPLEMENTED      2201
index 0bd49e245f195c7df5552a344393afe6d0c3298d..740b5a0ce8995fb4239fce6e06a87f297dcef87c 100644 (file)
@@ -329,12 +329,11 @@ int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs,
           ldout(s->cct,0) << "Error caught buffer::error couldn't decode TagSet " << dendl;
         }
         dump_header(s, RGW_AMZ_TAG_COUNT, obj_tags.count());
-      } else if (iter->first.compare(RGW_ATTR_OBJECT_LOCK_MODE) == 0 && get_retention) {
-        dump_header(s, "x-amz-object-lock-mode", iter->second.to_str());
-      } else if (iter->first.compare(RGW_ATTR_OBJECT_LOCK_UNTIL_DATE) == 0 && get_retention) {
-        real_time lock_until_date;
-        decode(lock_until_date, iter->second);
-        dump_time_header(s, "x-amz-object-lock-retain-until-date", lock_until_date);
+      } else if (iter->first.compare(RGW_ATTR_OBJECT_RETENTION) == 0 && get_retention){
+        RGWObjectRetention retention;
+        decode(retention, iter->second);
+        dump_header(s, "x-amz-object-lock-mode", retention.get_mode());
+        dump_time_header(s, "x-amz-object-lock-retain-until-date", retention.get_retain_until_date());
       }
     }
   }
@@ -1278,10 +1277,10 @@ int RGWCreateBucket_ObjStore_S3::get_params()
   }
   auto iter = s->info.x_meta_map.find("x-amz-bucket-object-lock-enabled");
   if (iter != s->info.x_meta_map.end()) {
-    if ((iter->second.compare("true") != 0 && (iter->second.compare("false") != 0))) {
+    if (!boost::algorithm::iequals(iter->second, "true") && !boost::algorithm::iequals(iter->second, "false")) {
       return -EINVAL;
     }
-    obj_lock_enabled = iter->second.compare("true") == 0;
+    obj_lock_enabled = boost::algorithm::iequals(iter->second, "true");
   }
   return 0;
 }