]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librgw: fix uri, read_permissions virtual for create-bucket
authorMatt Benjamin <mbenjamin@redhat.com>
Thu, 8 Oct 2015 15:11:40 +0000 (11:11 -0400)
committerMatt Benjamin <mbenjamin@redhat.com>
Fri, 12 Feb 2016 17:04:55 +0000 (12:04 -0500)
* set uri in rgw_mkdir (duh)
* RGWCreateBucketRequest should override RGWHandler::read_permissions
  to return 0

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/rgw/rgw_file.cc
src/rgw/rgw_file.h
src/rgw/rgw_op.cc

index e1502baccc0baff8effa75b29ef4376992475e12..8b6b41aaac89f49076bc805f166f51a08a697d66 100644 (file)
@@ -160,6 +160,9 @@ int rgw_mkdir(struct rgw_fs *rgw_fs,
     return EINVAL;
   }
 
+  // fix this
+  uri += "/";
+  uri += name;
   RGWCreateBucketRequest req(cct, fs->get_user(), uri);
   (void) librgw.get_fe()->execute_req(&req);
 
index a699a714f462601de1c0fb41152b06c7638c8500..240815766ed7daa0cc4e880680baec158870831d 100644 (file)
@@ -191,6 +191,11 @@ public:
 
   virtual bool only_bucket() { return false; }
 
+  virtual int read_permissions(RGWOp* op_obj) {
+    /* we ARE a 'create bucket' request (cf. rgw_rest.cc, ll. 1305-6) */
+    return 0;
+  }
+
   virtual int op_init() {
     // assign store, s, and dialect_handler
     RGWObjectCtx* rados_ctx
index 7ae0a6cdf2685b3a648abc9ff009058c3b82d3e0..4ad549509c358796274a34b6c9705420093598b1 100644 (file)
@@ -4453,7 +4453,9 @@ int RGWHandler::do_read_permissions(RGWOp *op, bool only_bucket)
   int ret = rgw_build_object_policies(store, s, op->prefetch_data());
 
   if (ret < 0) {
-    ldout(s->cct, 10) << "read_permissions on " << s->bucket << ":" << s->object << " ret=" << ret << dendl;
+    ldout(s->cct, 10) << "read_permissions on " << s->bucket << ":"
+                     << s->object << " only_bucket=" << only_bucket
+                     << " ret=" << ret << dendl;
     if (ret == -ENODATA)
       ret = -EACCES;
   }