]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
pybind: add remove_snap2 api in python binding
authorDongsheng Yang <dongsheng.yang@easystack.cn>
Fri, 1 Jul 2016 08:38:41 +0000 (04:38 -0400)
committerDongsheng Yang <dongsheng.yang@easystack.cn>
Tue, 26 Jul 2016 06:23:30 +0000 (02:23 -0400)
Signed-off-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
src/pybind/rbd/rbd.pyx

index 52727bf39e481f3ee5cbbe0e3e4f9a17b036d9f8..b82b441ec82db4deed8f929f284cedb3d52efd66 100644 (file)
@@ -216,6 +216,7 @@ cdef extern from "rbd/librbd.h" nogil:
     void rbd_snap_list_end(rbd_snap_info_t *snaps)
     int rbd_snap_create(rbd_image_t image, const char *snapname)
     int rbd_snap_remove(rbd_image_t image, const char *snapname)
+    int rbd_snap_remove2(rbd_image_t image, const char *snapname, uint32_t flags)
     int rbd_snap_rollback(rbd_image_t image, const char *snapname)
     int rbd_snap_rename(rbd_image_t image, const char *snapname,
                         const char* dstsnapsname)
@@ -1530,6 +1531,24 @@ cdef class Image(object):
         if ret != 0:
             raise make_ex(ret, 'error removing snapshot %s from %s' % (name, self.name))
 
+    def remove_snap2(self, name, flags):
+        """
+        Delete a snapshot of the image.
+
+        :param name: the name of the snapshot
+        :param flags: the flags for removal
+        :type name: str
+        :raises: :class:`IOError`, :class:`ImageBusy`
+        """
+        name = cstr(name, 'name')
+        cdef:
+            char *_name = name
+            uint32_t _flags = flags
+        with nogil:
+            ret = rbd_snap_remove2(self.image, _name, _flags)
+        if ret != 0:
+            raise make_ex(ret, 'error removing snapshot %s from %s with flags %llx' % (name, self.name, flags))
+
     def rollback_to_snap(self, name):
         """
         Revert the image to its contents at a snapshot. This is a