RBD_MAX_BLOCK_NAME_SIZE
RBD_MAX_IMAGE_NAME_SIZE
+ _RBD_SNAP_REMOVE_UNPROTECT "RBD_SNAP_REMOVE_UNPROTECT"
+ _RBD_SNAP_REMOVE_FLATTEN "RBD_SNAP_REMOVE_FLATTEN"
+ _RBD_SNAP_REMOVE_FORCE "RBD_SNAP_REMOVE_FORCE"
+
ctypedef void* rados_t
ctypedef void* rados_ioctx_t
ctypedef void* rbd_image_t
RBD_POOL_STAT_OPTION_TRASH_MAX_PROVISIONED_BYTES = _RBD_POOL_STAT_OPTION_TRASH_MAX_PROVISIONED_BYTES
RBD_POOL_STAT_OPTION_TRASH_SNAPSHOTS = _RBD_POOL_STAT_OPTION_TRASH_SNAPSHOTS
+RBD_SNAP_REMOVE_UNPROTECT = _RBD_SNAP_REMOVE_UNPROTECT
+RBD_SNAP_REMOVE_FLATTEN = _RBD_SNAP_REMOVE_FLATTEN
+RBD_SNAP_REMOVE_FORCE = _RBD_SNAP_REMOVE_FORCE
class Error(Exception):
pass
RBD_CONFIG_SOURCE_POOL, RBD_CONFIG_SOURCE_IMAGE,
RBD_MIRROR_PEER_ATTRIBUTE_NAME_MON_HOST,
RBD_MIRROR_PEER_ATTRIBUTE_NAME_KEY,
- RBD_MIRROR_PEER_DIRECTION_RX, RBD_MIRROR_PEER_DIRECTION_RX_TX)
+ RBD_MIRROR_PEER_DIRECTION_RX, RBD_MIRROR_PEER_DIRECTION_RX_TX,
+ RBD_SNAP_REMOVE_UNPROTECT)
rados = None
ioctx = None
def test_remove_snap_not_found(self):
assert_raises(ImageNotFound, self.image.remove_snap, 'snap1')
+ @require_features([RBD_FEATURE_LAYERING])
def test_remove_snap2(self):
self.image.create_snap('snap1')
self.image.protect_snap('snap1')
assert(self.image.is_protected_snap('snap1'))
- self.image.remove_snap2('snap1',1)
+ self.image.remove_snap2('snap1', RBD_SNAP_REMOVE_UNPROTECT)
eq([], list(self.image.list_snaps()))
def test_remove_snap_by_id(self):