Project

General

Profile

Feature #6114

Complete python binding interfaces for librados

Added by Haomai Wang over 10 years ago. Updated over 5 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
Component(RADOS):
librados
Pull request ID:

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

Duplicated by Ceph - Feature #5511: rados.py support for object locking Duplicate 07/06/2013
Duplicated by Ceph - Feature #7340: rados.py does not expose object locking Duplicate 02/05/2014
Duplicated by Ceph - Feature #9532: rados.py should export omap interface Duplicate 09/18/2014

Associated revisions

Revision f5bf75fa (diff)
Added by Mehdi Abaakouk over 9 years ago

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 <>

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.

#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

Also available in: Atom PDF