From 84d41248bcdc585a6bd13520b9aa2d75ee987017 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Fri, 13 Sep 2013 14:43:54 -0700 Subject: 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. Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_replica_log.cc | 9 +++++++++ 1 file changed, 9 insertions(+) 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; } -- cgit v1.2.1