]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/librados: add a connect_cluster() helper
authorJosh Durgin <josh.durgin@inktank.com>
Sun, 2 Feb 2014 22:32:13 +0000 (14:32 -0800)
committerJosh Durgin <josh.durgin@inktank.com>
Tue, 18 Feb 2014 20:34:32 +0000 (12:34 -0800)
This mirrors the c++ version, connect_cluster_pp(), and removes the
same code from create_one_pool().

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
src/test/librados/test.cc
src/test/librados/test.h

index a1aa24c736c186fa79f6ddffd299897ddf91a217..30bb5b50c80cbd7c38d1bc588deda918ae970c9d 100644 (file)
@@ -1,3 +1,6 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*
+// vim: ts=8 sw=2 smarttab
+
 #include "include/rados/librados.h"
 #include "include/rados/librados.hpp"
 #include "test/librados/test.h"
@@ -27,29 +30,10 @@ std::string get_temp_pool_name()
 
 std::string create_one_pool(const std::string &pool_name, rados_t *cluster)
 {
-  int ret;
-  ret = rados_create(cluster, NULL);
-  if (ret) {
-    std::ostringstream oss;
-    oss << "rados_create failed with error " << ret;
-    return oss.str();
-  }
-  ret = rados_conf_read_file(*cluster, NULL);
-  if (ret) {
-    rados_shutdown(*cluster);
-    std::ostringstream oss;
-    oss << "rados_conf_read_file failed with error " << ret;
-    return oss.str();
-  }
-  rados_conf_parse_env(*cluster, NULL);
-  ret = rados_connect(*cluster);
-  if (ret) {
-    rados_shutdown(*cluster);
-    std::ostringstream oss;
-    oss << "rados_connect failed with error " << ret;
-    return oss.str();
-  }
-  ret = rados_pool_create(*cluster, pool_name.c_str());
+  std::string err = connect_cluster(cluster);
+  if (err.length())
+    return err;
+  int ret = rados_pool_create(*cluster, pool_name.c_str());
   if (ret) {
     rados_shutdown(*cluster);
     std::ostringstream oss;
@@ -96,6 +80,36 @@ std::string create_one_pool_pp(const std::string &pool_name, Rados &cluster)
   return "";
 }
 
+std::string connect_cluster(rados_t *cluster)
+{
+  char *id = getenv("CEPH_CLIENT_ID");
+  if (id) std::cerr << "Client id is: " << id << std::endl;
+
+  int ret;
+  ret = rados_create(cluster, NULL);
+  if (ret) {
+    std::ostringstream oss;
+    oss << "rados_create failed with error " << ret;
+    return oss.str();
+  }
+  ret = rados_conf_read_file(*cluster, NULL);
+  if (ret) {
+    rados_shutdown(*cluster);
+    std::ostringstream oss;
+    oss << "rados_conf_read_file failed with error " << ret;
+    return oss.str();
+  }
+  rados_conf_parse_env(*cluster, NULL);
+  ret = rados_connect(*cluster);
+  if (ret) {
+    rados_shutdown(*cluster);
+    std::ostringstream oss;
+    oss << "rados_connect failed with error " << ret;
+    return oss.str();
+  }
+  return "";
+}
+
 std::string connect_cluster_pp(Rados &cluster)
 {
   char *id = getenv("CEPH_CLIENT_ID");
index df27ba0a687329da9fc08ee669b29331cb4c84d2..652c235972bc4b1ae90a836ead6db60a972e0bf5 100644 (file)
@@ -26,6 +26,7 @@ std::string get_temp_pool_name();
 std::string create_one_pool(const std::string &pool_name, rados_t *cluster);
 std::string create_one_pool_pp(const std::string &pool_name,
                            librados::Rados &cluster);
+std::string connect_cluster(rados_t *cluster);
 std::string connect_cluster_pp(librados::Rados &cluster);
 int destroy_one_pool(const std::string &pool_name, rados_t *cluster);
 int destroy_one_pool_pp(const std::string &pool_name, librados::Rados &cluster);