]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
testlibrbdpp: update for new librados and librbd APIs
authorJosh Durgin <josh.durgin@dreamhost.com>
Wed, 23 Feb 2011 23:32:57 +0000 (15:32 -0800)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Wed, 23 Feb 2011 18:17:25 +0000 (10:17 -0800)
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
src/Makefile.am
src/include/rados/librados.hpp
src/librados.cc
src/librbd.cc
src/rados.cc
src/rbd.cc
src/rgw/rgw_rados.cc
src/testlibrbd.c
src/testlibrbdpp.cc
src/testradospp.cc

index 1ef22d41cad22aea7679faa5d6fd54ee5bcbe93e..63df5e32f40e62002b1acfc912a7615e23ee63f0 100644 (file)
@@ -265,9 +265,9 @@ bin_PROGRAMS += rbd
 if WITH_DEBUG
 testlibrbd_SOURCES = testlibrbd.c
 testlibrbd_LDADD = librbd.la librados.la libcrush.la -lpthread -lm $(CRYPTOPP_LIBS)
-testlibrbdpp_SOURCES = testlibrbdpp.cc
-testlibrbdpp_LDADD = librbd.la librados.la libcrush.la -lpthread -lm $(CRYPTOPP_LIBS)
-bin_PROGRAMS += testlibrbd testlibrbdpp
+#testlibrbdpp_SOURCES = testlibrbdpp.cc
+#testlibrbdpp_LDADD = librbd.la librados.la libcrush.la -lpthread -lm $(CRYPTOPP_LIBS)
+bin_PROGRAMS += testlibrbd
 endif
 
 if WITH_RADOSGW
index 23f3d18d336f9f2d6e7f5d6eec041caf742e5e90..33a6d9197c93c8718a4a738ab25356463c3076d0 100644 (file)
@@ -70,8 +70,8 @@ public:
   int close_pool(pool_t pool);
   int lookup_pool(const char *name);
 
-  void set_snap(pool_t pool, snap_t seq);
-  int set_snap_context(pool_t pool, snap_t seq, std::vector<snap_t>& snaps);
+  void set_snap_read(pool_t pool, snap_t seq);
+  int set_snap_write_context(pool_t pool, snap_t seq, std::vector<snap_t>& snaps);
 
   uint64_t get_last_version(pool_t pool);
 
index eaa5eaa9128b4e438084c7c4f89d1e99cf670ce7..3d3cdf7efe762eae195e84e3abc9a0bc5f3e487a 100644 (file)
@@ -102,13 +102,13 @@ public:
       client(c), poolid(pid), name(n), snap_seq(s), assert_ver(0),
       notify_timeout(g_conf.client_notify_timeout) {}
 
-    void set_snap(snapid_t s) {
+    void set_snap_read(snapid_t s) {
       if (!s)
        s = CEPH_NOSNAP;
       snap_seq = s;
     }
 
-    int set_snap_context(snapid_t seq, vector<snapid_t>& snaps) {
+    int set_snap_write_context(snapid_t seq, vector<snapid_t>& snaps) {
       SnapContext n;
       n.seq = seq;
       n.snaps = snaps;
@@ -2159,15 +2159,15 @@ int Rados::selfmanaged_snap_rollback_object(rados_pool_t pool,
   return client->selfmanaged_snap_rollback_object(pool, oid, sn, snapid);
 }
 
-void Rados::set_snap(rados_pool_t pool, snap_t seq)
+void Rados::set_snap_read(rados_pool_t pool, snap_t seq)
 {
   if (!client)
     return;
   RadosClient::PoolCtx *ctx = (RadosClient::PoolCtx *)pool;
-  ctx->set_snap(seq);
+  ctx->set_snap_read(seq);
 }
 
-int Rados::set_snap_context(rados_pool_t pool, snap_t seq, vector<snap_t>& snaps)
+int Rados::set_snap_write_context(rados_pool_t pool, snap_t seq, vector<snap_t>& snaps)
 {
   if (!client)
     return -EINVAL;
@@ -2176,7 +2176,7 @@ int Rados::set_snap_context(rados_pool_t pool, snap_t seq, vector<snap_t>& snaps
   snv.resize(snaps.size());
   for (unsigned i=0; i<snaps.size(); i++)
     snv[i] = snaps[i];
-  return ctx->set_snap_context(seq, snv);
+  return ctx->set_snap_write_context(seq, snv);
 }
 
 int Rados::snap_list(rados_pool_t pool, vector<snap_t> *snaps)
@@ -2486,7 +2486,7 @@ extern "C" int rados_pool_stat(rados_pool_t pool, struct rados_pool_stat_t *stat
 extern "C" void rados_snap_set_read(rados_pool_t pool, rados_snap_t seq)
 {
   RadosClient::PoolCtx *ctx = (RadosClient::PoolCtx *)pool;
-  ctx->set_snap((snapid_t)seq);
+  ctx->set_snap_read((snapid_t)seq);
 }
 
 extern "C" int rados_snap_set_write_context(rados_pool_t pool, rados_snap_t seq,
@@ -2497,7 +2497,7 @@ extern "C" int rados_snap_set_write_context(rados_pool_t pool, rados_snap_t seq,
   snv.resize(num_snaps);
   for (int i=0; i<num_snaps; i++)
     snv[i] = (snapid_t)snaps[i];
-  return ctx->set_snap_context((snapid_t)seq, snv);
+  return ctx->set_snap_write_context((snapid_t)seq, snv);
 }
 
 extern "C" int rados_write(rados_pool_t pool, const char *o, off_t off, const char *buf, size_t len)
index 6850ee0d7ad9a0340442856c9297f878589237ac..8e574158189506b45ac5ff34fdbebc7ef8f8c0a8 100644 (file)
@@ -557,11 +557,11 @@ int snap_create(ImageCtx *ictx, const char *snap_name)
   string md_oid = ictx->name;
   md_oid += RBD_SUFFIX;
 
-  r = rados.snap_set_write_context(ictx->pool, ictx->snapc.seq, ictx->snaps);
+  r = rados.set_snap_write_context(ictx->pool, ictx->snapc.seq, ictx->snaps);
   if (r < 0)
     return r;
 
-  rados.snap_set_read(ictx->pool, 0);
+  rados.set_snap_read(ictx->pool, 0);
   r = add_snap(ictx, snap_name);
   notify_change(ictx->pool, md_oid, NULL, ictx);
   return r;
@@ -582,11 +582,11 @@ int snap_remove(ImageCtx *ictx, const char *snap_name)
   if (r < 0)
     return r;
 
-  r = rados.snap_set_write_context(ictx->pool, ictx->snapc.seq, ictx->snaps);
+  r = rados.set_snap_write_context(ictx->pool, ictx->snapc.seq, ictx->snaps);
   if (r < 0)
     return r;
 
-  rados.snap_set_read(ictx->pool, ictx->snapid);
+  rados.set_snap_read(ictx->pool, ictx->snapid);
 
   r = rm_snap(ictx->pool, md_oid, snap_name);
   r = rados.selfmanaged_snap_remove(ictx->pool, ictx->snapid);
@@ -909,11 +909,11 @@ int snap_rollback(ImageCtx *ictx, const char *snap_name)
   if (r < 0)
     return r;
 
-  r = rados.snap_set_write_context(ictx->pool, ictx->snapc.seq, ictx->snaps);
+  r = rados.set_snap_write_context(ictx->pool, ictx->snapc.seq, ictx->snaps);
   if (r < 0)
     return r;
 
-  rados.snap_set_read(ictx->pool, ictx->snapid);
+  rados.set_snap_read(ictx->pool, ictx->snapid);
   r = rollback_image(ictx, ictx->snapid);
   if (r < 0)
     return r;
@@ -1000,11 +1000,11 @@ int snap_set(ImageCtx *ictx, const char *snap_name)
   if (r < 0)
     return r;
 
-  r = rados.snap_set_write_context(ictx->pool, ictx->snapc.seq, ictx->snaps);
+  r = rados.set_snap_write_context(ictx->pool, ictx->snapc.seq, ictx->snaps);
   if (r < 0)
     return r;
 
-  rados.snap_set_read(ictx->pool, ictx->snapid);
+  rados.set_snap_read(ictx->pool, ictx->snapid);
 
   return 0;
 }
index 24be8000bb8e190bedaa145c243cdb40704a7b16..f729ebd34542edb98287ce9a0182d8be7d78b695 100644 (file)
@@ -174,24 +174,24 @@ int main(int argc, const char **argv)
       cerr << "snapid " << snapid << " doesn't exist in pool " << pool << std::endl;
       goto out;
     }
-    rados.set_snap(p, snapid);
+    rados.set_snap_read(p, snapid);
     cout << "selected snap " << snapid << " '" << snapname << "'" << std::endl;
   }
 
   // list pools?
   if (strcmp(nargs[0], "lspools") == 0) {
     list<string> vec;
-    rados.list_pools(vec);
+    rados.pool_list(vec);
     for (list<string>::iterator i = vec.begin(); i != vec.end(); ++i)
       cout << *i << std::endl;
   }
   else if (strcmp(nargs[0], "df") == 0) {
     // pools
     list<string> vec;
-    rados.list_pools(vec);
+    rados.pool_list(vec);
     
     map<string,pool_stat_t> stats;
-    rados.get_pool_stats(vec, stats);
+    rados.pool_get_stats(vec, stats);
 
     printf("%-15s "
           "%12s %12s %12s %12s "
@@ -215,7 +215,7 @@ int main(int argc, const char **argv)
 
     // total
     statfs_t tstats;
-    rados.get_fs_stats(tstats);
+    rados.fs_get_stats(tstats);
     printf("  total used    %12lld %12lld\n", (long long unsigned)tstats.kb_used,
           (long long unsigned)tstats.num_objects);
     printf("  total avail   %12lld\n", (long long unsigned)tstats.kb_avail);
@@ -236,7 +236,7 @@ int main(int argc, const char **argv)
       outstream = new ofstream(nargs[1]);
 
     Rados::ListCtx ctx;
-    rados.list_objects_open(p, &ctx);
+    rados.objects_list_open(p, &ctx);
     bufferlist extra_info;
     bool filter_parent = false;
     if (filter) {
@@ -274,7 +274,7 @@ int main(int argc, const char **argv)
     }
     while (1) {
       list<string> vec;
-      ret = rados.list_objects_more(ctx, 1 << 10, vec);
+      ret = rados.objects_list_more(ctx, 1 << 10, vec);
       if (ret < 0) {
        cerr << "got error: " << strerror_r(-ret, buf, sizeof(buf)) << std::endl;
        delete outstream;
@@ -293,7 +293,7 @@ int main(int argc, const char **argv)
         }
       }
     }
-    rados.list_objects_close(ctx);
+    rados.objects_list_close(ctx);
     if (!stdout)
       delete outstream;
   }
index 2c2d2bf25074d4c9e70de11c0317189ef59db950..3ff6e171053eb71e7e9081052572c81176246f2f 100644 (file)
@@ -483,8 +483,8 @@ static void err_exit(librados::pool_t pool, librbd::image_t image = NULL)
 {
   if (image)
     rbd.close(image);
-  rados.pool_close(pool);
-  rados.release();
+  rados.close_pool(pool);
+  rados.shutdown();
   exit(1);
 }
 
@@ -685,14 +685,14 @@ int main(int argc, const char **argv)
     usage_exit();
   }
 
-  if (rados.init() < 0) {
+  if (rados.initialize(NULL, 0) < 0) {
     cerr << "error: couldn't initialize rados!" << std::endl;
     exit(1);
   }
 
   // TODO: add argc/argv conf
   
-  int r = rados.pool_open(poolname, &pool);
+  int r = rados.open_pool(poolname, &pool);
   if (r < 0) {
       cerr << "error opening pool " << poolname << " (err=" << r << ")" << std::endl;
       err_exit(pool);
@@ -718,7 +718,7 @@ int main(int argc, const char **argv)
   }
 
   if (opt_cmd == OPT_COPY || opt_cmd == OPT_IMPORT) {
-    r = rados.pool_open(dest_poolname, &dest_pool);
+    r = rados.open_pool(dest_poolname, &dest_pool);
     if (r < 0) {
       cerr << "error opening pool " << dest_poolname << " (err=" << r << ")" << std::endl;
       err_exit(pool);
@@ -882,7 +882,7 @@ int main(int argc, const char **argv)
   if (image)
     rbd.close(image);
 
-  rados.pool_close(pool);
-  rados.release();
+  rados.close_pool(pool);
+  rados.shutdown();
   return 0;
 }
index b9ad3c8d7ae63de499a8ad7236c9b2f1efd38aaa..b594502e4ed23edf15a036365142b8fe60027552 100644 (file)
@@ -79,7 +79,7 @@ int RGWRados::list_buckets_init(std::string& id, RGWAccessHandle *handle)
   if (!state)
     return -ENOMEM;
 
-  int r = rados->list_pools(state->list);
+  int r = rados->pool_list(state->list);
   if (r < 0)
     return r;
   state->pos = state->list.begin();
@@ -149,10 +149,10 @@ int RGWRados::list_objects(string& id, string& bucket, int max, string& prefix,
 
 #define MAX_ENTRIES 1000
   Rados::ListCtx ctx;
-  rados->list_objects_open(pool, &ctx);
+  rados->objects_list_open(pool, &ctx);
   do {
     list<string> entries;
-    r = rados->list_objects_more(ctx, MAX_ENTRIES, entries);
+    r = rados->objects_list_more(ctx, MAX_ENTRIES, entries);
     if (r < 0)
       return r;
 
@@ -163,7 +163,7 @@ int RGWRados::list_objects(string& id, string& bucket, int max, string& prefix,
       }
     }
   } while (r);
-  rados->list_objects_close(ctx);
+  rados->objects_list_close(ctx);
 
   set<string>::iterator p;
   if (!marker.empty())
index 3ffaa6bb4a76f4f6b691351cf74d0d44dfff24dc..72e1242f36f6969365fd5119a1c97a0116497387 100644 (file)
@@ -261,8 +261,9 @@ int main(int argc, const char **argv)
   rados_t cluster;
   rados_pool_t pool;
   rbd_image_t image;
-  assert(rados_init(&cluster) == 0);
-  assert(rados_conf_parse_argv(cluster, argc, argv) == 0);
+  assert(rados_create(&cluster, NULL) == 0);
+  assert(rados_conf_read_file(cluster, "/etc/ceph/ceph.conf") == 0);
+  rados_reopen_log();
   assert(rados_pool_open(cluster, TEST_POOL, &pool) == 0);
   test_ls(pool, 0);
   test_create_and_stat(pool, TEST_IMAGE, MB_BYTES(1));
@@ -287,6 +288,6 @@ int main(int argc, const char **argv)
   test_delete(pool, TEST_IMAGE "1");
   test_ls(pool, 0);
   rados_pool_close(pool);
-  rados_release(cluster);
+  rados_destroy(cluster);
   return 0;
 }
index 68c07bd84c57c2542b305e5a4c95c0d210d407b3..0bad9bca1b2f8330e325e36dbae5b32ff644c347 100644 (file)
@@ -1,4 +1,4 @@
-// -*- mode:C; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- 
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- 
 // vim: ts=8 sw=2 smarttab
 /*
  * Ceph - scalable distributed file system
@@ -14,6 +14,7 @@
 
 #define __STDC_FORMAT_MACROS
 #include "include/rbd/librbd.hpp"
+#include "include/rados/librados.hpp"
 #include "include/buffer.h"
 
 #include <algorithm>
@@ -36,30 +37,30 @@ using namespace std;
 
 librbd::RBD *rbd;
 
-void test_create_and_stat(librbd::pool_t pool, const char *name, size_t size)
+void test_create_and_stat(librados::pool_t pool, const char *name, size_t size)
 {
   librbd::image_info_t info;
   librbd::image_t image;
   int order = 0;
   assert(rbd->create(pool, name, size, &order) == 0);
-  assert(rbd->open_image(pool, name, &image, NULL) == 0);
-  assert(rbd->stat(image, info) == 0);
+  assert(rbd->open(pool, name, &image, NULL) == 0);
+  assert(rbd->stat(image, info, sizeof(info)) == 0);
   cout << "image has size " << info.size << " and order " << info.order << endl;
   assert(info.size == size);
   assert(info.order == order);
-  assert(rbd->close_image(image) == 0);
+  assert(rbd->close(image) == 0);
 }
 
 void test_resize_and_stat(librbd::image_t image, size_t size)
 {
   librbd::image_info_t info;
   assert(rbd->resize(image, size) == 0);
-  assert(rbd->stat(image, info) == 0);
+  assert(rbd->stat(image, info, sizeof(info)) == 0);
   cout << "image has size " << info.size << " and order " << info.order << endl;
   assert(info.size == size);
 }
 
-void test_ls(librbd::pool_t pool, size_t num_expected, ...)
+void test_ls(librados::pool_t pool, size_t num_expected, ...)
 {
   int r;
   size_t i;
@@ -89,14 +90,14 @@ void test_ls(librbd::pool_t pool, size_t num_expected, ...)
   assert(names.empty());
 }
 
-void test_delete(librbd::pool_t pool, const char *name)
+void test_delete(librados::pool_t pool, const char *name)
 {
   assert(rbd->remove(pool, name) == 0);
 }
 
 void test_create_snap(librbd::image_t image, const char *name)
 {
-  assert(rbd->create_snap(image, name) == 0);
+  assert(rbd->snap_create(image, name) == 0);
 }
 
 void test_ls_snaps(librbd::image_t image, size_t num_expected, ...)
@@ -106,7 +107,7 @@ void test_ls_snaps(librbd::image_t image, size_t num_expected, ...)
   char *expected;
   va_list ap;
   vector<librbd::snap_info_t> snaps;
-  r = rbd->list_snaps(image, snaps);
+  r = rbd->snap_list(image, snaps);
   assert(r >= 0);
   cout << "num snaps is: " << snaps.size() << endl
        << "expected: " << num_expected << endl;
@@ -142,7 +143,7 @@ void test_ls_snaps(librbd::image_t image, size_t num_expected, ...)
 
 void test_delete_snap(librbd::image_t image, const char *name)
 {
-  assert(rbd->remove_snap(image, name) == 0);
+  assert(rbd->snap_remove(image, name) == 0);
 }
 
 void simple_write_cb(librbd::completion_t cb, void *arg)
@@ -211,7 +212,7 @@ void read_test_data(librbd::image_t image, const char *expected, off_t off)
   assert(strncmp(bl.c_str(), expected, expected_len) == 0);
 }
 
-void test_io(librbd::pool_t pool, librbd::image_t image)
+void test_io(librados::pool_t pool, librbd::image_t image)
 {
   char test_data[TEST_IO_SIZE];
   int i;
@@ -238,14 +239,15 @@ void test_io(librbd::pool_t pool, librbd::image_t image)
 
 int main(int argc, const char **argv) 
 {
-  rbd = new librbd::RBD();
-  librbd::pool_t pool;
+  librados::Rados rados;
+  librados::pool_t pool;
   librbd::image_t image;
-  assert(rbd->initialize(0, NULL) == 0);
-  assert(rbd->open_pool(TEST_POOL, &pool) == 0);
+  rbd = new librbd::RBD();
+  assert(rados.init() == 0);
+  assert(rados.pool_open(TEST_POOL, &pool) == 0);
   test_ls(pool, 0);
   test_create_and_stat(pool, TEST_IMAGE, MB_BYTES(1));
-  assert(rbd->open_image(pool, TEST_IMAGE, &image, NULL) == 0);
+  assert(rbd->open(pool, TEST_IMAGE, &image, NULL) == 0);
   test_ls(pool, 1, TEST_IMAGE);
   test_ls_snaps(image, 0);
   test_create_snap(image, TEST_SNAP);
@@ -258,15 +260,15 @@ int main(int argc, const char **argv)
   test_ls_snaps(image, 1, TEST_SNAP "1", MB_BYTES(2));
   test_delete_snap(image, TEST_SNAP "1");
   test_ls_snaps(image, 0);
-  assert(rbd->close_image(image) == 0);
+  assert(rbd->close(image) == 0);
   test_create_and_stat(pool, TEST_IMAGE "1", MB_BYTES(2));
   test_ls(pool, 2, TEST_IMAGE, TEST_IMAGE "1");
   test_delete(pool, TEST_IMAGE);
   test_ls(pool, 1, TEST_IMAGE "1");
   test_delete(pool, TEST_IMAGE "1");
   test_ls(pool, 0);
-  rbd->close_pool(pool);
-  rbd->shutdown();
   delete rbd;
+  rados.pool_close(pool);
+  rados.release();
   return 0;
 }
index eef7e94de1752775c1e3642c33aeb3ebe0dcfa46..e358664ed5fb327f969e444546122e55f96dfd56 100644 (file)
@@ -153,11 +153,11 @@ int main(int argc, const char **argv)
   }
 
   Rados::ListCtx ctx;
-  rados.list_objects_open(pool, &ctx);
+  rados.objects_list_open(pool, &ctx);
   int entries;
   do {
     list<string> vec;
-    r = rados.list_objects_more(ctx, 2, vec);
+    r = rados.objects_list_more(ctx, 2, vec);
     entries = vec.size();
     cout << "list result=" << r << " entries=" << entries << std::endl;
     list<string>::iterator iter;
@@ -165,7 +165,7 @@ int main(int argc, const char **argv)
       cout << *iter << std::endl;
     }
   } while (entries);
-  rados.list_objects_close(ctx);
+  rados.objects_list_close(ctx);
 
 
   map<string, bufferlist> attrset;