]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
add snap rename test in cls_rbd
authorxinxin shu <xinxin.shu@intel.com>
Mon, 24 Aug 2015 06:55:08 +0000 (14:55 +0800)
committerxinxin shu <xinxin.shu@intel.com>
Wed, 2 Sep 2015 23:52:28 +0000 (07:52 +0800)
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
src/cls/rbd/cls_rbd_client.cc
src/cls/rbd/cls_rbd_client.h
src/test/cls_rbd/test_cls_rbd.cc

index e0bbc448078f72679061b9d85d6b9a477bf5c480..eec813d50c2547698709fdfc39404bf29543b994 100644 (file)
@@ -392,6 +392,14 @@ namespace librbd {
       return ioctx->exec(oid, "rbd", "snapshot_remove", bl, bl2);
     }
 
+    int snapshot_rename(librados::IoCtx *ioctx, const std::string &oid,
+                        snapid_t src_snap_id,
+                        const std::string &dst_name)
+    {
+      librados::ObjectWriteOperation op;
+      snapshot_rename(&op, src_snap_id, dst_name);
+      return ioctx->operate(oid, &op);
+    }
     void snapshot_rename(librados::ObjectWriteOperation *op,
                         snapid_t src_snap_id,
                         const std::string &dst_name)
index 0aec94e0fa8a507a4d1f5e203e71ede9c454c1f5..6235fea924ebcdee53518a9b23c3ab8bc5e9dc36 100644 (file)
@@ -70,6 +70,9 @@ namespace librbd {
                      const std::string &snap_name);
     int snapshot_remove(librados::IoCtx *ioctx, const std::string &oid,
                        snapid_t snap_id);
+    int snapshot_rename(librados::IoCtx *ioctx, const std::string &oid,
+                       snapid_t src_snap_id,
+                       const std::string &dst_name);
     void snapshot_rename(librados::ObjectWriteOperation *op,
                        snapid_t src_snap_id,
                        const std::string &dst_name);
index eb9c19c10355f80f82d87b196b9639ffd3ee7ea3..44f90e12ba4b9c7ef7f8ddf5e634fa27eeafc68f 100644 (file)
@@ -63,6 +63,7 @@ using ::librbd::cls_client::metadata_set;
 using ::librbd::cls_client::metadata_remove;
 using ::librbd::cls_client::metadata_list;
 using ::librbd::cls_client::metadata_get;
+using ::librbd::cls_client::snapshot_rename;
 
 static char *random_buf(size_t len)
 {
@@ -781,6 +782,14 @@ TEST_F(TestClsRbd, snapshots)
   ASSERT_EQ("snap1", snap_names[1]);
   ASSERT_EQ(10u, snap_sizes[1]);
 
+  ASSERT_EQ(0, snapshot_rename(&ioctx, oid, 1, "snap1-rename"));
+  ASSERT_EQ(0, snapshot_list(&ioctx, oid, snapc.snaps, &snap_names,
+                            &snap_sizes, &parents, &protection_status));
+  ASSERT_EQ(2u, snap_names.size());
+  ASSERT_EQ("snap2", snap_names[0]);
+  ASSERT_EQ(10u, snap_sizes[0]);
+  ASSERT_EQ("snap1-rename", snap_names[1]);
+  ASSERT_EQ(10u, snap_sizes[1]);
   ASSERT_EQ(0, snapshot_remove(&ioctx, oid, 0));
   ASSERT_EQ(0, get_snapcontext(&ioctx, oid, &snapc));
   ASSERT_EQ(1u, snapc.snaps.size());