mirror of
https://github.com/ceph/ceph
synced 2025-03-25 11:48:05 +00:00
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:
parent
ec4a6ce0c2
commit
6e0496b96f
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)));
|
||||
|
Loading…
Reference in New Issue
Block a user