From: Matty Williams Date: Mon, 1 Dec 2025 12:16:29 +0000 (+0000) Subject: librados: Add omap_rm_range function to ObjectWriteOperation X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cdaa25cf87017ac41b112c13ebc36f8f50fc9265;p=ceph-ci.git librados: Add omap_rm_range function to ObjectWriteOperation Add librados::ObjectWriteOperation::omap_rm_keys function. Add librados::IoCtx::omap_rm_keys function. Fixes: https://tracker.ceph.com/issues/74013 Signed-off-by: Matty Williams (cherry picked from commit 6c3675cb831db7a603b45d4cc0b3c1549e53a12d) --- diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index 0a6ac40dbc1..902402e0760 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -456,6 +456,14 @@ inline namespace v14_2_0 { */ void omap_rm_keys(const std::set &to_rm); + /** + * Clears keys in the range [start, end) + * + * @param start [in] start of key range to remove (inclusive) + * @param end [in] end of key range to remove (exclusive) + */ + void omap_rm_range(const std::string &start, const std::string &end); + /** * Copy an object * @@ -938,6 +946,9 @@ inline namespace v14_2_0 { int omap_clear(const std::string& oid); int omap_rm_keys(const std::string& oid, const std::set& keys); + int omap_rm_range(const std::string& oid, + const std::string& start, + const std::string& end); void snap_set_read(snap_t seq); int selfmanaged_snap_set_write_ctx(snap_t seq, std::vector& snaps); diff --git a/src/librados/librados_cxx.cc b/src/librados/librados_cxx.cc index 483c6a8f753..87067c3a12d 100644 --- a/src/librados/librados_cxx.cc +++ b/src/librados/librados_cxx.cc @@ -572,6 +572,15 @@ void librados::ObjectWriteOperation::omap_rm_keys( o->omap_rm_keys(to_rm); } +void librados::ObjectWriteOperation::omap_rm_range( + const std::string &start, + const std::string &end) +{ + ceph_assert(impl); + ::ObjectOperation *o = &impl->o; + o->omap_rm_range(start, end); +} + void librados::ObjectWriteOperation::copy_from(const std::string& src, const IoCtx& src_ioctx, uint64_t src_version, @@ -1517,6 +1526,15 @@ int librados::IoCtx::omap_rm_keys(const std::string& oid, return operate(oid, &op); } +int librados::IoCtx::omap_rm_range(const std::string& oid, + const std::string& start, + const std::string& end) +{ + ObjectWriteOperation op; + op.omap_rm_range(start, end); + return operate(oid, &op); +} + int librados::IoCtx::operate(const std::string& oid, librados::ObjectWriteOperation *o) { object_t obj(oid);