char *original_name, size_t max_length)
int rbd_flatten(rbd_image_t image)
+ int rbd_sparsify(rbd_image_t image, size_t sparse_size)
int rbd_rebuild_object_map(rbd_image_t image, librbd_progress_fn_t cb,
void *cbdata)
int rbd_list_children3(rbd_image_t image, rbd_linked_image_spec_t *children,
if ret < 0:
raise make_ex(ret, "error flattening %s" % self.name)
+ def sparsify(self, sparse_size):
+ """
+ Reclaim space for zeroed image extents
+ """
+ cdef:
+ size_t _sparse_size = sparse_size
+ with nogil:
+ ret = rbd_sparsify(self.image, _sparse_size)
+ if ret < 0:
+ raise make_ex(ret, "error sparsifying %s" % self.name)
+
def rebuild_object_map(self):
"""
Rebuild the object map for the image HEAD or currently set snapshot
for option in image.config_list():
eq(option['source'], RBD_CONFIG_SOURCE_CONFIG)
+ def test_sparsify(self):
+ assert_raises(InvalidArgument, self.image.sparsify, 16)
+ self.image.sparsify(4096)
+
class TestImageId(object):
def setUp(self):