]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: RADOS::Pool::create() for single pool
authorCasey Bodley <cbodley@redhat.com>
Thu, 25 Oct 2018 20:46:54 +0000 (16:46 -0400)
committerYehuda Sadeh <yehuda@redhat.com>
Thu, 8 Nov 2018 17:19:30 +0000 (09:19 -0800)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/services/svc_rados.cc
src/rgw/services/svc_rados.h

index 43d58d0ec874644d32dd3505c0bfc1edb917334c..3a466db4d688f3e8996ab11d604fd5f0ce20783e 100644 (file)
@@ -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<rgw_pool>& pools, vector<int> *retcodes)
 {
   vector<librados::PoolAsyncCompletion *> completions;
index 0f63e64b9da16f746456ec7ee3ff935cead49ca4..7225cf2e6734410096b4496aecedeef45ae5b57d 100644 (file)
@@ -115,6 +115,7 @@ public:
   public:
     Pool() {}
 
+    int create();
     int create(const std::vector<rgw_pool>& pools, std::vector<int> *retcodes);
     int lookup();