Feature #6114
Complete python binding interfaces for librados
0%
Description
Now python binding for librados only supports basic operations like read, write. A lot of interfaces librados.h implemented hasn't showed in librados.py. I hope we can add more supports on this and users can make use of rados by python.
Related issues
Associated revisions
python-rados: Add object lock support
This change adds to the python binding the support of:
- rados_lock_exclusive
- rados_lock_shared
- rados_unlock
http://tracker.ceph.com/issues/6114 Refs: #6114
Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
History
#1 Updated by Ian Colle over 10 years ago
- Assignee set to Alfredo Deza
#2 Updated by Alfredo Deza over 10 years ago
Haomai, can you take a look at wip-5900 ? I am working on getting the Python bindings properly packaged.
I am at the stage where the make file needs to call the bootstrap script that creates a virtualenv to install them for development.
#3 Updated by Ian Colle almost 10 years ago
- Tracker changed from Bug to Feature
#4 Updated by Loïc Dachary over 9 years ago
What has become of https://github.com/ceph/ceph/commits/wip-5900 ? Is there a reason why it was not merged ? Or am I not seeing that it was ?
#5 Updated by Alfredo Deza over 9 years ago
It went stale as I couldn't keep up with the changes to the modules themselves as the modifications where significant: most single python files where now modules with their own setup.py files.
It also meant that changes where needed to the build, specifically one where the process would add these files to the python path which was no longer possible due
to them being converted to directories.
#6 Updated by Loïc Dachary over 9 years ago
- lock support https://github.com/ceph/ceph/pull/3099
#7 Updated by Josh Durgin over 9 years ago
One of the most useful missing parts is multi-operation requests, which includes omap operations as well.
#8 Updated by Josh Durgin about 9 years ago
- Assignee deleted (
Alfredo Deza)
I went through the C and python bindings. All the multi-operation-related methods need bindings. In addition, these other methods lack python bindings:
Erasure coded pool I/O requirements¶
- rados_ioctx_pool_requires_alignment()
- rados_ioctx_pool_required_alignment()
Pool name/id¶
- rados_ioctx_create2()
- rados_get_instance_id()
- rados_ioctx_get_pool_name()
- rados_ioctx_get_id()
Snapshot functions¶
- rados_ioctx_snap_rollback()
- rados_ioctx_snap_set_read()
- rados_ioctx_selfmanaged_snap_create()
- rados_ioctx_selfmanaged_snap_remove()
- rados_ioctx_selfmanaged_snap_rollback()
- rados_ioctx_selfmanaged_snap_set_write_ctx()
OSD class methods¶
- rados_exec()
Locking¶
- rados_list_lockers()
- rados_break_lock()
rados config copying¶
- rados_create_with_context()
- rados_cct()
- rados_ioctx_cct()
A few aio methods¶
- rados_aio_flush_async()
- rados_aio_stat()
- rados_aio_cancel()
Watch/Notify¶
- rados_watch2()
- rados_watch_check()
- rados_unwatch2()
- rados_notify2()
- rados_notify_ack()
- rados_watch_flush()
Allocation hints¶
- rados_set_alloc_hint() - this one seems unnecessary since you'd probably be sending this in a multi-op write operation instead of alone
#9 Updated by Patrick Donnelly over 5 years ago
- Project changed from Ceph to RADOS
- Category deleted (
librados) - Component(RADOS) librados added