New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
librados: Add rados_aio_exec to the C API #11709
librados: Add rados_aio_exec to the C API #11709
Conversation
I also have an implementation of However I first want to make sure that having a separate override is needed in order to call |
This looks right! Can you add a test to test/librados/aio.cc? |
@liewegas - Sure, should I proceed in adding all other commits I've got lined up also? |
Only if they're also aio librados additions; otherwise better to put them in a separate PR. |
Yes they are, though I'd probably put the python bindings in a separate PR. |
Added |
ASSERT_NE(my_completion2, my_completion_null); | ||
bufferlist in, out; | ||
ASSERT_EQ(0, test_data.m_ioctx.aio_exec("foo", my_completion2, | ||
"hello", "say_hello", in, &out); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing close parens
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed there is, I thought jenkins ran the testsuite.
Added missing closing parenthesis in both aio_exec tests, and rebased the branch. |
This should make adding rados_aio_exec to the C API possible. Signed-off-by: Iain Buclaw <iain.buclaw@sociomantic.com>
Makes available in the C API what is already exposed in the libradospp. Signed-off-by: Iain Buclaw <iain.buclaw@sociomantic.com>
rados_completion_t my_completion2; | ||
ASSERT_EQ(0, rados_aio_create_completion((void*)&test_data, | ||
set_completion_completeEC, set_completion_safeEC, &my_completion2)); | ||
char out[128] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add a ";" please.
@iain-buclaw-sociomantic could you try to compile the test and run it locally? you can
make ceph_test_rados_api_aio
ctest -R ceph_test_rados_api_aio // with a running vstart cluster
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, thanks @tchaikov
The C test checks the functionality of the new IoCtxImpl::aio_exec override that accepts a char* buffer. The C++ test does the same action, but internally uses the other override that accepts a bufferlist*. Signed-off-by: Iain Buclaw <iain.buclaw@sociomantic.com>
@tchaikov - Verified that tests pass locally, rebased the branch. |
passed a rados run, lgtm |
jenkins test this please (flake8 error fixed in master) |
This should make adding rados_aio_exec to the C API possible.
Signed-off-by: Iain Buclaw iain.buclaw@sociomantic.com