From 6e0496b96f180c51d755fc7ff5fcac98137d1c0b Mon Sep 17 00:00:00 2001 From: David Zafman Date: Fri, 11 Apr 2014 16:20:14 -0700 Subject: [PATCH] librados: Rollback interface additions Add C interface rados_ioctx_snap_rollback() and indicate that rados_rollback() is deprecated. Add C++ interface IoCtx::snap_rollback() and indicate that IoCtx::rollback() is deprecated. Modify snapshot test case to use new function names. Signed-off-by: David Zafman --- src/include/rados/librados.h | 14 ++++++++++++++ src/include/rados/librados.hpp | 2 ++ src/librados/librados.cc | 17 +++++++++++++++-- src/test/librados/snapshots.cc | 8 ++++---- 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/include/rados/librados.h b/src/include/rados/librados.h index 80d2574360cc3..3e6829273ca63 100644 --- a/src/include/rados/librados.h +++ b/src/include/rados/librados.h @@ -915,6 +915,20 @@ int rados_ioctx_snap_remove(rados_ioctx_t io, const char *snapname); * @param snapname which snapshot to rollback to * @returns 0 on success, negative error code on failure */ +int rados_ioctx_snap_rollback(rados_ioctx_t io, const char *oid, + const char *snapname); + +/** + * Rollback an object to a pool snapshot *DEPRECATED* + * + * Deprecated interface which is not rados_ioctx_snap_rollback() + * This function could go away in the future + * + * @param io the pool in which the object is stored + * @param oid the name of the object to rollback + * @param snapname which snapshot to rollback to + * @returns 0 on success, negative error code on failure + */ int rados_rollback(rados_ioctx_t io, const char *oid, const char *snapname); diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index dde6273694921..f0d69cf0c1cc0 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -614,6 +614,8 @@ namespace librados int snap_list(std::vector *snaps); + int snap_rollback(const std::string& oid, const char *snapname); + // Deprecated name kept for backward compatibility - same as snap_rollback() int rollback(const std::string& oid, const char *snapname); int selfmanaged_snap_create(uint64_t *snapid); diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 994123bf1ccb1..793b4906b8237 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -1144,11 +1144,17 @@ int librados::IoCtx::snap_list(std::vector *snaps) return io_ctx_impl->snap_list(snaps); } -int librados::IoCtx::rollback(const std::string& oid, const char *snapname) +int librados::IoCtx::snap_rollback(const std::string& oid, const char *snapname) { return io_ctx_impl->rollback(oid, snapname); } +// Deprecated name kept for backward compatibility +int librados::IoCtx::rollback(const std::string& oid, const char *snapname) +{ + return snap_rollback(oid, snapname); +} + int librados::IoCtx::selfmanaged_snap_create(uint64_t *snapid) { return io_ctx_impl->selfmanaged_snap_create(snapid); @@ -2492,13 +2498,20 @@ extern "C" int rados_ioctx_snap_remove(rados_ioctx_t io, const char *snapname) return ctx->snap_remove(snapname); } -extern "C" int rados_rollback(rados_ioctx_t io, const char *oid, +extern "C" int rados_ioctx_snap_rollback(rados_ioctx_t io, const char *oid, const char *snapname) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; return ctx->rollback(oid, snapname); } +// Deprecated name kept for backward compatibility +extern "C" int rados_rollback(rados_ioctx_t io, const char *oid, + const char *snapname) +{ + return rados_ioctx_snap_rollback(io, oid, snapname); +} + extern "C" int rados_ioctx_selfmanaged_snap_create(rados_ioctx_t io, uint64_t *snapid) { diff --git a/src/test/librados/snapshots.cc b/src/test/librados/snapshots.cc index e490a088379b6..98eb73a583b90 100644 --- a/src/test/librados/snapshots.cc +++ b/src/test/librados/snapshots.cc @@ -84,7 +84,7 @@ TEST_F(LibRadosSnapshots, Rollback) { char buf2[sizeof(buf)]; memset(buf2, 0xdd, sizeof(buf2)); EXPECT_EQ(0, rados_write_full(ioctx, "foo", buf2, sizeof(buf2))); - EXPECT_EQ(0, rados_rollback(ioctx, "foo", "snap1")); + EXPECT_EQ(0, rados_ioctx_snap_rollback(ioctx, "foo", "snap1")); char buf3[sizeof(buf)]; EXPECT_EQ((int)sizeof(buf3), rados_read(ioctx, "foo", buf3, sizeof(buf3), 0)); EXPECT_EQ(0, memcmp(buf, buf3, sizeof(buf))); @@ -103,7 +103,7 @@ TEST_F(LibRadosSnapshotsPP, RollbackPP) { bufferlist bl2; bl2.append(buf2, sizeof(buf2)); EXPECT_EQ(0, ioctx.write_full("foo", bl2)); - EXPECT_EQ(0, ioctx.rollback("foo", "snap1")); + EXPECT_EQ(0, ioctx.snap_rollback("foo", "snap1")); bufferlist bl3; EXPECT_EQ((int)sizeof(buf), ioctx.read("foo", bl3, sizeof(buf), 0)); EXPECT_EQ(0, memcmp(buf, bl3.c_str(), sizeof(buf))); @@ -529,7 +529,7 @@ TEST_F(LibRadosSnapshotsEC, Rollback) { char buf2[sizeof(buf)]; memset(buf2, 0xdd, sizeof(buf2)); EXPECT_EQ(0, rados_write_full(ioctx, "foo", buf2, sizeof(buf2))); - EXPECT_EQ(0, rados_rollback(ioctx, "foo", "snap1")); + EXPECT_EQ(0, rados_ioctx_snap_rollback(ioctx, "foo", "snap1")); char buf3[sizeof(buf)]; EXPECT_EQ((int)sizeof(buf3), rados_read(ioctx, "foo", buf3, sizeof(buf3), 0)); EXPECT_EQ(0, memcmp(buf, buf3, sizeof(buf))); @@ -548,7 +548,7 @@ TEST_F(LibRadosSnapshotsECPP, RollbackPP) { bufferlist bl2; bl2.append(buf2, sizeof(buf2)); EXPECT_EQ(0, ioctx.write_full("foo", bl2)); - EXPECT_EQ(0, ioctx.rollback("foo", "snap1")); + EXPECT_EQ(0, ioctx.snap_rollback("foo", "snap1")); bufferlist bl3; EXPECT_EQ((int)sizeof(buf), ioctx.read("foo", bl3, sizeof(buf), 0)); EXPECT_EQ(0, memcmp(buf, bl3.c_str(), sizeof(buf))); -- 2.39.5