]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: add IoCtx::get_pool_name() to c++ api
authorSage Weil <sage.weil@dreamhost.com>
Sat, 14 Apr 2012 05:18:40 +0000 (22:18 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Sat, 14 Apr 2012 05:18:40 +0000 (22:18 -0700)
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/include/rados/librados.hpp
src/librados/RadosClient.cc
src/librados/RadosClient.h
src/librados/librados.cc

index b21fc1f7fbaf4ab734a5d4db3f66d8f2c9d0877d..89d3ea1404b4bd2f451675e9ca380b83c4d4ef58 100644 (file)
@@ -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);
index cc29c60f5c84d2a3d731ab177e60572001e57ca9..755a9b7e8245c0bb11b6d71bb460b5af97bcb08f 100644 (file)
@@ -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);
index 0e5d7c455bc199b679de947c491744e811216e87..3439815dc75079701295d7b805661ffbedb31d64 100644 (file)
@@ -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<string>& ls);
   int get_pool_stats(std::list<string>& ls, map<string,::pool_stat_t>& result);
index 3c12061c11ef58c695eece893eb996bd1702c277..a2db21c448fdf73cd518be916dad105663cd8081 100644 (file)
@@ -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);