diff options
author | Yehuda Sadeh <yehuda@inktank.com> | 2013-09-13 14:43:54 -0700 |
---|---|---|
committer | Yehuda Sadeh <yehuda@inktank.com> | 2013-09-13 15:35:26 -0700 |
commit | 4216eac0f59af60f60d4ce909b9ace87a7b64ccc (patch) | |
tree | 0605089582325c6b9fa51e34560b82c41b559c19 | |
parent | e7f7483192cddca1159aba439ce62b1e78669d51 (diff) | |
download | ceph-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.cc | 9 |
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; } |