]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librgw: add user_id to RGWListBucketsRequest
authorMatt Benjamin <mbenjamin@redhat.com>
Thu, 1 Oct 2015 16:53:00 +0000 (12:53 -0400)
committerMatt Benjamin <mbenjamin@redhat.com>
Fri, 12 Feb 2016 16:58:12 +0000 (11:58 -0500)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/rgw/rgw_file.cc
src/rgw/rgw_file.h

index 80edd4dbbe9c64d97bd773ee9b34c03a07df07d1..1c2fd83c27ef7daf7cf9e6d25697c58496bf254a 100644 (file)
@@ -301,9 +301,19 @@ int rgw_readdir(struct rgw_fs *rgw_fs,
 #if 1
   /* TODO:
    * take actual, um, arguments
+   * deal with markers (continuation)
+   * deal with sync vs async
+   * consider non-default tenancy/user and bucket layouts
    */
-  RGWListBucketsRequest req(cct, rcb, cb_arg, offset);
-
+  if (is_root(uri)) {
+    /* for now, root always contains one user's bucket namespace */
+    RGWListBucketsRequest req(cct, rgw_fs->user_id, rcb, cb_arg, offset);
+  } else {
+    /*
+      RGWListBucketRequest req(cct, rgw_fs->user_id, uri, rcb, cb_arg, offset);
+      ...
+    */
+  }
 #else
   /* XXX current open-coded logic should move into librgw (need
    * functor mechanism wrapping callback */
index 8f1c7edc6709fe19698bb47bbf0148b2444b2428..eabb78cb4bfa3a4a04249b68e95605ed5febcc6d 100644 (file)
 /*
   read directory content
 */
+
 class RGWListBucketsRequest : public RGWLibRequest,
                              public RGWListBuckets_ObjStore_Lib /* RGWOp */
 {
 public:
+  std::string user_id;
   uint64_t* offset;
   void* cb_arg;
   rgw_readdir_cb rcb;
 
-  RGWListBucketsRequest(CephContext* _cct, rgw_readdir_cb _rcb, void* _cb_arg,
-                       uint64_t* _offset)
-    : RGWLibRequest(_cct), offset(_offset), cb_arg(_cb_arg), rcb(_rcb) {
+  RGWListBucketsRequest(CephContext* _cct, char *_user_id,
+                       rgw_readdir_cb _rcb, void* _cb_arg, uint64_t* _offset)
+    : RGWLibRequest(_cct), user_id(_user_id), offset(_offset), cb_arg(_cb_arg),
+      rcb(_rcb) {
     // req->op = op
     op = this;
   }