From 054e02ecb9210678412122e68f5b4647a7cd5284 Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Fri, 16 Dec 2022 19:33:07 +0300 Subject: [PATCH] pybind/rados: fix missed changes for PEP484 style type annotations originally brought by https://github.com/ceph/ceph/pull/36918 Fixes: https://tracker.ceph.com/issues/58304 Signed-off-by: Igor Fedotov (cherry picked from commit 1c64c6be303f5ed4110468101a01576508468a74) --- src/pybind/rados/rados.pyx | 16 ++++++++-------- src/test/pybind/test_rados.py | 5 +++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/pybind/rados/rados.pyx b/src/pybind/rados/rados.pyx index 15198f6e642..b54ebb483c6 100644 --- a/src/pybind/rados/rados.pyx +++ b/src/pybind/rados/rados.pyx @@ -1057,10 +1057,10 @@ Rados object in state %s." % self.state) # NOTE(sileht): looks weird but test_monmap_dump pass int target = str(target) - target = cstr(target, 'target', opt=True) + target_raw = cstr(target, 'target', opt=True) cdef: - char *_target = opt_str(target) + char *_target = opt_str(target_raw) char **_cmd = to_bytes_array(cmds) size_t _cmdlen = len(cmds) @@ -1073,7 +1073,7 @@ Rados object in state %s." % self.state) size_t _outs_len try: - if target: + if target_raw: with nogil: ret = rados_mon_command_target(self.cluster, _target, _cmd, _cmdlen, @@ -1158,10 +1158,10 @@ Rados object in state %s." % self.state) self.require_state("connected") cmds = [cstr(cmd, 'cmd')] - target = cstr(target, 'target', opt=True) + target_raw = cstr(target, 'target', opt=True) cdef: - char *_target = opt_str(target) + char *_target = opt_str(target_raw) char **_cmd = to_bytes_array(cmds) size_t _cmdlen = len(cmds) @@ -1175,7 +1175,7 @@ Rados object in state %s." % self.state) size_t _outs_len try: - if target is not None: + if target_raw is not None: with nogil: ret = rados_mgr_command_target(self.cluster, _target, @@ -3796,9 +3796,9 @@ returned %d, but should return zero on success." % (self.name, ret)) :para max_return: list no more than max_return key/value pairs :returns: an iterator over the requested omap values, return value from this action """ - start_after = cstr(start_after, 'start_after') if start_after else None + start_after_raw = cstr(start_after, 'start_after') if start_after else None cdef: - char *_start_after = opt_str(start_after) + char *_start_after = opt_str(start_after_raw) ReadOp _read_op = read_op rados_omap_iter_t iter_addr = NULL int _max_return = max_return diff --git a/src/test/pybind/test_rados.py b/src/test/pybind/test_rados.py index 236b2f1d597..31d6b2b9a28 100644 --- a/src/test/pybind/test_rados.py +++ b/src/test/pybind/test_rados.py @@ -565,6 +565,11 @@ class TestIoctx(object): eq(ret, 0) with pytest.raises(ObjectNotFound): self.ioctx.operate_read_op(read_op, "no_such") + with ReadOpCtx() as read_op: + iter, ret = self.ioctx.get_omap_keys(read_op,"2",2) + eq(ret, 0) + self.ioctx.operate_read_op(read_op, "hw") + eq(list(iter), [("3", None)]) def test_clear_omap(self): keys = ("1", "2", "3") -- 2.39.5