]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: forward meta changes to master
authorYehuda Sadeh <yehuda@redhat.com>
Thu, 7 Jan 2016 22:16:27 +0000 (14:16 -0800)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 12 Feb 2016 00:13:53 +0000 (16:13 -0800)
(initial work)

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/rgw/rgw_op.cc
src/rocksdb

index 173e1f65acd0535a8882b40dcc30863099a07f91..aa9b00545d768adcb25130eacff55e02c29852f1 100644 (file)
@@ -37,6 +37,8 @@ using ceph::crypto::MD5;
 static string mp_ns = RGW_OBJ_NS_MULTIPART;
 static string shadow_ns = RGW_OBJ_NS_SHADOW;
 
+static int forward_request_to_master(struct req_state *s, obj_version *objv, RGWRados *store, bufferlist& in_data, JSONParser *jp);
+
 #define MULTIPART_UPLOAD_ID_PREFIX_LEGACY "2/"
 #define MULTIPART_UPLOAD_ID_PREFIX "2~" // must contain a unique char that may not come up in gen_rand_alpha()
 
@@ -1442,7 +1444,18 @@ void RGWSetBucketVersioning::pre_exec()
 
 void RGWSetBucketVersioning::execute()
 {
+  if (!store->is_meta_master()) {
+    bufferlist in_data;
+    JSONParser jp;
+    op_ret = forward_request_to_master(s, NULL, store, in_data, &jp);
+    if (op_ret < 0) {
+      ldout(s->cct, 20) << __func__ << "forward_request_to_master returned ret=" << op_ret << dendl;
+    }
+    return;
+  }
+  
   op_ret = get_params();
+
   if (op_ret < 0)
     return;
 
index 00d6edf6a0080ac3961e56213ae962ec1d570daa..fa98456ccbd860120127ac2e91a2088fb222606e 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 00d6edf6a0080ac3961e56213ae962ec1d570daa
+Subproject commit fa98456ccbd860120127ac2e91a2088fb222606e