summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@inktank.com>2013-09-13 14:43:54 -0700
committerYehuda Sadeh <yehuda@inktank.com>2013-09-13 15:35:26 -0700
commit4216eac0f59af60f60d4ce909b9ace87a7b64ccc (patch)
tree0605089582325c6b9fa51e34560b82c41b559c19
parente7f7483192cddca1159aba439ce62b1e78669d51 (diff)
downloadceph-4216eac0f59af60f60d4ce909b9ace87a7b64ccc.tar.gz
rgw: try to create log pool if doesn't exist
When using replica log, if the log pool doesn't exist all operations are going to fail. Try to create it if doesn't exist. Reviewed-by: Josh Durgin <josh.durgin@inktank.com> Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r--src/rgw/rgw_replica_log.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/rgw/rgw_replica_log.cc b/src/rgw/rgw_replica_log.cc
index 483d256377b..f80ebf88525 100644
--- a/src/rgw/rgw_replica_log.cc
+++ b/src/rgw/rgw_replica_log.cc
@@ -34,6 +34,15 @@ RGWReplicaLogger::RGWReplicaLogger(RGWRados *_store) :
int RGWReplicaLogger::open_ioctx(librados::IoCtx& ctx, const string& pool)
{
int r = store->rados->ioctx_create(pool.c_str(), ctx);
+ if (r == -ENOENT) {
+ rgw_bucket p(pool.c_str());
+ r = store->create_pool(p);
+ if (r < 0)
+ return r;
+
+ // retry
+ r = store->rados->ioctx_create(pool.c_str(), ctx);
+ }
if (r < 0) {
lderr(cct) << "ERROR: could not open rados pool " << pool << dendl;
}