From 28e61811dc3dccd922bd0b30cf614c2768e7d6d0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 13 Apr 2012 22:18:40 -0700 Subject: [PATCH] librados: add IoCtx::get_pool_name() to c++ api Signed-off-by: Sage Weil --- src/include/rados/librados.hpp | 2 ++ src/librados/RadosClient.cc | 10 ++++++++++ src/librados/RadosClient.h | 1 + src/librados/librados.cc | 7 +++++++ 4 files changed, 20 insertions(+) diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index b21fc1f7fbaf4..89d3ea1404b4b 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -326,6 +326,8 @@ namespace librados // get pool auid int get_auid(uint64_t *auid_); + std::string get_pool_name(); + // create an object int create(const std::string& oid, bool exclusive); int create(const std::string& oid, bool exclusive, const std::string& category); diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc index cc29c60f5c84d..755a9b7e8245c 100644 --- a/src/librados/RadosClient.cc +++ b/src/librados/RadosClient.cc @@ -90,6 +90,16 @@ int librados::RadosClient::pool_get_auid(uint64_t pool_id, unsigned long long *a return 0; } +int librados::RadosClient::pool_get_name(uint64_t pool_id, std::string *s) +{ + Mutex::Locker l(lock); + const char *str = osdmap.get_pool_name(pool_id); + if (!s) + return -ENOENT; + *s = str; + return 0; +} + int librados::RadosClient::connect() { common_init_finish(cct); diff --git a/src/librados/RadosClient.h b/src/librados/RadosClient.h index 0e5d7c455bc19..3439815dc7507 100644 --- a/src/librados/RadosClient.h +++ b/src/librados/RadosClient.h @@ -78,6 +78,7 @@ public: int64_t lookup_pool(const char *name); const char *get_pool_name(int64_t pool_id); int pool_get_auid(uint64_t pool_id, unsigned long long *auid); + int pool_get_name(uint64_t pool_id, std::string *auid); int pool_list(std::list& ls); int get_pool_stats(std::list& ls, map& result); diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 3c12061c11ef5..a2db21c448fdf 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -547,6 +547,13 @@ int librados::IoCtx::get_auid(uint64_t *auid_) return rados_ioctx_pool_get_auid(io_ctx_impl, auid_); } +std::string librados::IoCtx::get_pool_name() +{ + std::string s; + io_ctx_impl->client->pool_get_name(get_id(), &s); + return s; +} + int librados::IoCtx::create(const std::string& oid, bool exclusive) { object_t obj(oid); -- 2.39.5