RGWHandler::init(rados_ctx->get_store(), _s, io);
get_state()->obj_ctx = rados_ctx;
- get_state()->req_id = static_cast<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_id(id);
- get_state()->trans_id = static_cast<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_trans_id(id);
+ get_state()->req_id = store->zone_unique_id(id);
+ get_state()->trans_id = store->zone_unique_trans_id(id);
get_state()->bucket_tenant = tuser->get_tenant();
get_state()->set_user(tuser);
RGWHandler::init(rados_ctx.get_store(), &rstate, &io_ctx);
get_state()->obj_ctx = &rados_ctx;
- get_state()->req_id = static_cast<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_id(id);
- get_state()->trans_id = static_cast<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_trans_id(id);
+ get_state()->req_id = store->zone_unique_id(id);
+ get_state()->trans_id = store->zone_unique_trans_id(id);
ldpp_dout(get_state(), 2) << "initializing for trans_id = "
<< get_state()->trans_id.c_str() << dendl;
RGWRESTMgr_Admin *admin_resource = new RGWRESTMgr_Admin;
admin_resource->register_resource("usage", new RGWRESTMgr_Usage);
admin_resource->register_resource("user", new RGWRESTMgr_User);
+ /* XXX dang part of this is RADOS specific */
admin_resource->register_resource("bucket", new RGWRESTMgr_Bucket);
/*Registering resource for /admin/metadata */
return ret;
}
- s->req_id = static_cast<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_id(req->id);
- s->trans_id = static_cast<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_trans_id(req->id);
+ s->req_id = store->zone_unique_id(req->id);
+ s->trans_id = store->zone_unique_trans_id(req->id);
s->host_id = store->get_host_id();
s->yield = yield;
virtual int defer_gc(const DoutPrefixProvider *dpp, RGWObjectCtx *rctx, RGWBucket* bucket, RGWObject* obj,
optional_yield y) = 0;
virtual Zone* get_zone() = 0;
+ virtual std::string zone_unique_id(uint64_t unique_num) = 0;
+ virtual std::string zone_unique_trans_id(const uint64_t unique_num) = 0;
virtual int cluster_stat(RGWClusterStat& stats) = 0;
virtual std::unique_ptr<Lifecycle> get_lifecycle(void) = 0;
virtual std::unique_ptr<Completions> get_completions(void) = 0;
#include "services/svc_zone.h"
#include "services/svc_tier_rados.h"
#include "services/svc_quota.h"
-#include "rgw/services/svc_config_key.h"
+#include "services/svc_config_key.h"
+#include "services/svc_zone_utils.h"
#include "cls/rgw/cls_rgw_client.h"
#include "rgw_pubsub.h"
return rados->defer_gc(dpp, rctx, bucket->get_info(), obj->get_obj(), y);
}
+std::string RGWRadosStore::zone_unique_id(uint64_t unique_num)
+{
+ return svc()->zone_utils->unique_id(unique_num);
+}
+
+std::string RGWRadosStore::zone_unique_trans_id(const uint64_t unique_num)
+{
+ return svc()->zone_utils->unique_trans_id(unique_num);
+}
+
int RGWRadosStore::cluster_stat(RGWClusterStat& stats)
{
rados_cluster_stat_t rados_stats;
virtual int defer_gc(const DoutPrefixProvider *dpp, RGWObjectCtx *rctx, RGWBucket* bucket, RGWObject* obj,
optional_yield y) override;
virtual Zone* get_zone() { return &zone; }
+ virtual std::string zone_unique_id(uint64_t unique_num) override;
+ virtual std::string zone_unique_trans_id(const uint64_t unique_num) override;
virtual int cluster_stat(RGWClusterStat& stats) override;
virtual std::unique_ptr<Lifecycle> get_lifecycle(void) override;
virtual std::unique_ptr<Completions> get_completions(void) override;
auto& owner = bucket->policy.get_owner();
- string req_id = static_cast<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_id(static_cast<rgw::sal::RGWRadosStore*>(store)->getRados()->get_new_req_id());
+ string req_id = store->zone_unique_id(store->get_new_req_id());
using namespace rgw::putobj;
AtomicObjectProcessor processor(&aio, store, b.get(), nullptr,