]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: update bucket / object rewrite 1652/head
authorYehuda Sadeh <yehuda@inktank.com>
Thu, 10 Apr 2014 17:56:23 +0000 (10:56 -0700)
committerYehuda Sadeh <yehuda@inktank.com>
Fri, 11 Apr 2014 17:08:23 +0000 (10:08 -0700)
Get code up to date for firefly, need to pass bucket owner for quota
related functionality.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
src/rgw/rgw_admin.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h

index b452e2714c8d9f1f88490bf9616dc3f54ee44d68..5309c1c0363ae324541aa00866c58fc7c2845192 100644 (file)
@@ -1842,14 +1842,16 @@ next:
       cerr << "ERROR: object not specified" << std::endl;
       return EINVAL;
     }
-    int ret = init_bucket(bucket_name, bucket);
+
+    RGWBucketInfo bucket_info;
+    int ret = init_bucket(bucket_name, bucket_info, bucket);
     if (ret < 0) {
       cerr << "ERROR: could not init bucket: " << cpp_strerror(-ret) << std::endl;
       return -ret;
     }
 
     rgw_obj obj(bucket, object);
-    ret = store->rewrite_obj(obj);
+    ret = store->rewrite_obj(bucket_info.owner, obj);
 
     if (ret < 0) {
       cerr << "ERROR: object rewrite returned: " << cpp_strerror(-ret) << std::endl;
@@ -1863,7 +1865,8 @@ next:
       return EINVAL;
     }
 
-    int ret = init_bucket(bucket_name, bucket);
+    RGWBucketInfo bucket_info;
+    int ret = init_bucket(bucket_name, bucket_info, bucket);
     if (ret < 0) {
       cerr << "ERROR: could not init bucket: " << cpp_strerror(-ret) << std::endl;
       return -ret;
@@ -1927,7 +1930,7 @@ next:
           formatter->dump_string("status", "Skipped");
         } else {
           rgw_obj obj(bucket, name);
-          r = store->rewrite_obj(obj);
+          r = store->rewrite_obj(bucket_info.owner, obj);
           if (r == 0) {
             formatter->dump_string("status", "Success");
           } else {
index ab51adf845c3a100bc357bcb158bbf76838eef13..0ea7057f5bd584c578b31fc24c2ab84243b4e669 100644 (file)
@@ -3064,7 +3064,7 @@ public:
     }
 };
 
-int RGWRados::rewrite_obj(rgw_obj& obj)
+int RGWRados::rewrite_obj(const string& bucket_owner, rgw_obj& obj)
 {
   map<string, bufferlist> attrset;
   off_t ofs = 0;
@@ -3083,7 +3083,7 @@ int RGWRados::rewrite_obj(rgw_obj& obj)
 
   attrset.erase(RGW_ATTR_ID_TAG);
 
-  return copy_obj_data((void *)&rctx, &handle, end, obj, obj, &mtime, attrset, RGW_OBJ_CATEGORY_MAIN, NULL, NULL);
+  return copy_obj_data((void *)&rctx, bucket_owner, &handle, end, obj, obj, &mtime, attrset, RGW_OBJ_CATEGORY_MAIN, NULL, NULL);
 }
 
 /**
index 85d98362b238993b467b7f03e5c67636bfba66f3..b19d3bd8a0292a72a2ad93a89ab75abfad952ac8 100644 (file)
@@ -1521,7 +1521,7 @@ public:
     return clone_objs(ctx, dst_obj, v, attrs, category, pmtime, truncate_dest, exclusive, xattr_cond);
   }
 
-  int rewrite_obj(rgw_obj& obj);
+  int rewrite_obj(const string& bucket_owner, rgw_obj& obj);
   /**
    * Copy an object.
    * dest_obj: the object to copy into