#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 */
/*
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;
}