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 <david.zafman@inktank.com>
This commit is contained in:
David Zafman 2014-04-11 16:20:14 -07:00
parent ec4a6ce0c2
commit 6e0496b96f
4 changed files with 35 additions and 6 deletions

View File

@ -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);

View File

@ -614,6 +614,8 @@ namespace librados
int snap_list(std::vector<snap_t> *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);

View File

@ -1144,11 +1144,17 @@ int librados::IoCtx::snap_list(std::vector<snap_t> *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)
{

View File

@ -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)));