]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rados.py: add aio_remove 1312/head
authorDan van der Ster <daniel.vanderster@cern.ch>
Tue, 25 Feb 2014 10:47:43 +0000 (11:47 +0100)
committerDan van der Ster <daniel.vanderster@cern.ch>
Tue, 25 Feb 2014 10:47:43 +0000 (11:47 +0100)
Add aio_remove to the Python wrapper.

Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
src/pybind/rados.py

index 0989ebb2e7e7a09ddfa1aabb675ca836537625c1..0ee8d72e05487f75a8de955f77522615dabeb2b9 100644 (file)
@@ -1100,6 +1100,30 @@ class Ioctx(object):
             raise make_ex(ret, "error reading %s" % object_name)
         return completion
 
+    def aio_remove(self, object_name, oncomplete=None, onsafe=None):
+        """
+        Asychronously remove an object
+
+        :param object_name: name of the object to remove
+        :type object_name: str
+        :param oncomplete: what to do when the remove is safe and complete in memory
+            on all replicas
+        :type oncomplete: completion
+        :param onsafe:  what to do when the remove is safe and complete on storage
+            on all replicas
+        :type onsafe: completion
+
+        :raises: :class:`Error`
+        :returns: completion object
+        """
+        completion = self.__get_completion(oncomplete, onsafe)
+        ret = run_in_thread(self.librados.rados_aio_remove,
+                            (self.io, c_char_p(object_name),
+                            completion.rados_comp))
+        if ret < 0:
+            raise make_ex(ret, "error removing %s" % object_name)
+        return completion
+
     def require_ioctx_open(self):
         """
         Checks if the rados.Ioctx object state is 'open'