From d75e7a9fa9073672b683798a1088588f97da155e Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Thu, 25 Oct 2018 16:46:54 -0400 Subject: [PATCH] rgw: RADOS::Pool::create() for single pool Signed-off-by: Casey Bodley --- src/rgw/services/svc_rados.cc | 22 ++++++++++++++++++++++ src/rgw/services/svc_rados.h | 1 + 2 files changed, 23 insertions(+) diff --git a/src/rgw/services/svc_rados.cc b/src/rgw/services/svc_rados.cc index 43d58d0ec87..3a466db4d68 100644 --- a/src/rgw/services/svc_rados.cc +++ b/src/rgw/services/svc_rados.cc @@ -206,6 +206,28 @@ uint64_t RGWSI_RADOS::Obj::get_last_version() return ref.ioctx.get_last_version(); } +int RGWSI_RADOS::Pool::create() +{ + librados::Rados *rad = rados_svc->get_rados_handle(rados_handle); + int r = rad->pool_create(pool.name.c_str()); + if (r < 0) { + ldout(rados_svc->cct, 0) << "WARNING: pool_create returned " << r << dendl; + return r; + } + librados::IoCtx io_ctx; + r = rad->ioctx_create(pool.name.c_str(), io_ctx); + if (r < 0) { + ldout(rados_svc->cct, 0) << "WARNING: ioctx_create returned " << r << dendl; + return r; + } + r = io_ctx.application_enable(pg_pool_t::APPLICATION_NAME_RGW, false); + if (r < 0) { + ldout(rados_svc->cct, 0) << "WARNING: application_enable returned " << r << dendl; + return r; + } + return 0; +} + int RGWSI_RADOS::Pool::create(const vector& pools, vector *retcodes) { vector completions; diff --git a/src/rgw/services/svc_rados.h b/src/rgw/services/svc_rados.h index 0f63e64b9da..7225cf2e673 100644 --- a/src/rgw/services/svc_rados.h +++ b/src/rgw/services/svc_rados.h @@ -115,6 +115,7 @@ public: public: Pool() {} + int create(); int create(const std::vector& pools, std::vector *retcodes); int lookup(); -- 2.47.3