From: Ricardo Dias Date: Wed, 11 Apr 2018 22:57:31 +0000 (+0100) Subject: qa/tasks/mgr/dashboard: rbd: snapshot rollback test X-Git-Tag: v13.1.0~234^2~8 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=3e0e883e4d9e408a202c2da44c66d2662e0ffa60;p=ceph-ci.git qa/tasks/mgr/dashboard: rbd: snapshot rollback test Signed-off-by: Ricardo Dias --- diff --git a/qa/tasks/mgr/dashboard/helper.py b/qa/tasks/mgr/dashboard/helper.py index 8843cbad2e3..0fcfd800606 100644 --- a/qa/tasks/mgr/dashboard/helper.py +++ b/qa/tasks/mgr/dashboard/helper.py @@ -249,7 +249,10 @@ class DashboardTestCase(MgrTestCase): self.assertEqual(self._resp.text, body) def assertStatus(self, status): - self.assertEqual(self._resp.status_code, status) + if isinstance(status, list): + self.assertIn(self._resp.status_code, status) + else: + self.assertEqual(self._resp.status_code, status) @classmethod def _ceph_cmd(cls, cmd): diff --git a/qa/tasks/mgr/dashboard/test_rbd.py b/qa/tasks/mgr/dashboard/test_rbd.py index e417a1152e3..dee05b11f47 100644 --- a/qa/tasks/mgr/dashboard/test_rbd.py +++ b/qa/tasks/mgr/dashboard/test_rbd.py @@ -390,3 +390,34 @@ class RbdTest(DashboardTestCase): self.remove_snapshot('rbd', 'img1', 'snap5') self.assertStatus(204) + + def test_snapshot_rollback(self): + self.create_image('rbd', 'rollback_img', 2**30, + features=["layering", "exclusive-lock", "fast-diff", + "object-map"]) + self.assertStatus(201) + self.create_snapshot('rbd', 'rollback_img', 'snap1') + self.assertStatus(201) + + img = self._get('/api/rbd/rbd/rollback_img') + self.assertStatus(200) + self.assertEqual(img['disk_usage'], 0) + + self._rbd_cmd(['bench', '--io-type', 'write', '--io-total', '5M', + 'rbd/rollback_img']) + + img = self._get('/api/rbd/rbd/rollback_img') + self.assertStatus(200) + self.assertGreater(img['disk_usage'], 0) + + self._task_post('/api/rbd/rbd/rollback_img/snap/snap1/rollback') + self.assertStatus([201, 200]) + + img = self._get('/api/rbd/rbd/rollback_img') + self.assertStatus(200) + self.assertEqual(img['disk_usage'], 0) + + self.remove_snapshot('rbd', 'rollback_img', 'snap1') + self.assertStatus(204) + self.remove_image('rbd', 'rollback_img') + self.assertStatus(204)