From: xinxin shu Date: Mon, 24 Aug 2015 06:55:08 +0000 (+0800) Subject: add snap rename test in cls_rbd X-Git-Tag: v10.0.0~10^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a73ac732c96cfa968da284d5c2133a71fa510947;p=ceph.git add snap rename test in cls_rbd Signed-off-by: xinxin shu --- diff --git a/src/cls/rbd/cls_rbd_client.cc b/src/cls/rbd/cls_rbd_client.cc index e0bbc448078f..eec813d50c25 100644 --- a/src/cls/rbd/cls_rbd_client.cc +++ b/src/cls/rbd/cls_rbd_client.cc @@ -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) diff --git a/src/cls/rbd/cls_rbd_client.h b/src/cls/rbd/cls_rbd_client.h index 0aec94e0fa8a..6235fea924eb 100644 --- a/src/cls/rbd/cls_rbd_client.h +++ b/src/cls/rbd/cls_rbd_client.h @@ -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); diff --git a/src/test/cls_rbd/test_cls_rbd.cc b/src/test/cls_rbd/test_cls_rbd.cc index eb9c19c10355..44f90e12ba4b 100644 --- a/src/test/cls_rbd/test_cls_rbd.cc +++ b/src/test/cls_rbd/test_cls_rbd.cc @@ -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());