Project

General

Profile

Actions

Feature #6114

open

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 3 (0 open3 closed)

Has duplicate Ceph - Feature #5511: rados.py support for object lockingDuplicate07/06/2013

Actions
Has duplicate Ceph - Feature #7340: rados.py does not expose object lockingDuplicate02/05/2014

Actions
Has duplicate Ceph - Feature #9532: rados.py should export omap interfaceDuplicate09/18/2014

Actions
Actions #1

Updated by Ian Colle over 10 years ago

  • Assignee set to Alfredo Deza
Actions #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.

Actions #3

Updated by Ian Colle about 10 years ago

  • Tracker changed from Bug to Feature
Actions #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 ?

Actions #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.

Actions #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.

Actions #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
Actions #9

Updated by Patrick Donnelly over 5 years ago

  • Project changed from Ceph to RADOS
  • Category deleted (librados)
  • Component(RADOS) librados added
Actions

Also available in: Atom PDF