From bbe12b0b8ae0d9fec6d17c1e1bc918253ea13ff2 Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Thu, 12 Apr 2018 02:11:16 +0100 Subject: [PATCH] qa/tasks/mgr/dashboard: rbd: image copy test Signed-off-by: Ricardo Dias --- qa/tasks/mgr/dashboard/test_rbd.py | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/qa/tasks/mgr/dashboard/test_rbd.py b/qa/tasks/mgr/dashboard/test_rbd.py index 701412bfb8a..ecd8d40c10b 100644 --- a/qa/tasks/mgr/dashboard/test_rbd.py +++ b/qa/tasks/mgr/dashboard/test_rbd.py @@ -41,6 +41,14 @@ class RbdTest(DashboardTestCase): .format(parent_pool, parent_image, parent_snap), data) + @classmethod + def copy_image(cls, src_pool, src_image, dest_pool, dest_image, **kwargs): + # pylint: disable=too-many-arguments + data = {'dest_image_name': dest_image, 'dest_pool_name': dest_pool} + data.update(kwargs) + return cls._task_post('/api/rbd/{}/{}/copy' + .format(src_pool, src_image), data) + @classmethod def remove_image(cls, pool, image): return cls._task_delete('/api/rbd/{}/{}'.format(pool, image)) @@ -467,3 +475,33 @@ class RbdTest(DashboardTestCase): self.assertStatus(204) self.remove_image('rbd', 'cimg') self.assertStatus(204) + + def test_copy(self): + self.create_image('rbd', 'coimg', 2**30, + features=["layering", "exclusive-lock", "fast-diff", + "object-map"]) + self.assertStatus(201) + + self._rbd_cmd(['bench', '--io-type', 'write', '--io-total', '5M', + 'rbd/coimg']) + + self.copy_image('rbd', 'coimg', 'rbd_iscsi', 'coimg-copy', + features=["layering", "fast-diff", "exclusive-lock", + "object-map"]) + self.assertStatus([200, 201]) + + img = self._get('/api/rbd/rbd/coimg') + self.assertStatus(200) + self._validate_image(img, features_name=['layering', 'exclusive-lock', + 'fast-diff', 'object-map']) + + img_copy = self._get('/api/rbd/rbd_iscsi/coimg-copy') + self._validate_image(img_copy, features_name=['exclusive-lock', + 'fast-diff', 'layering', + 'object-map'], + disk_usage=img['disk_usage']) + + self.remove_image('rbd', 'coimg') + self.assertStatus(204) + self.remove_image('rbd_iscsi', 'coimg-copy') + self.assertStatus(204) -- 2.39.5