From 9f027edfc9cbbd9dd941c21f77f5c6007b9df5c9 Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Tue, 10 Apr 2018 10:42:37 +0100 Subject: [PATCH] qa/tasks/mgr/dashboard: rbd: snapshot edit tests Signed-off-by: Ricardo Dias --- qa/tasks/mgr/dashboard/test_rbd.py | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/qa/tasks/mgr/dashboard/test_rbd.py b/qa/tasks/mgr/dashboard/test_rbd.py index 4f3b962520939..33342de994933 100644 --- a/qa/tasks/mgr/dashboard/test_rbd.py +++ b/qa/tasks/mgr/dashboard/test_rbd.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +# pylint: disable=too-many-public-methods from __future__ import absolute_import @@ -58,6 +59,14 @@ class RbdTest(DashboardTestCase): {'pool_name': pool, 'image_name': image, 'snapshot_name': snapshot}) + @classmethod + def update_snapshot(cls, pool, image, snapshot, new_name, is_protected): + return cls._task_put('/api/rbd//{}/{}/snap/{}'.format(pool, image, snapshot), + 'rbd/snap/edit', + {'pool_name': pool, 'image_name': image, + 'snapshot_name': snapshot}, + {'new_snap_name': new_name, 'is_protected': is_protected}) + @classmethod def setUpClass(cls): super(RbdTest, cls).setUpClass() @@ -140,6 +149,17 @@ class RbdTest(DashboardTestCase): else: self.assertEqual(snap[k], v) + def _validate_snapshot_list(self, snap_list, snap_name=None, **kwargs): + found = False + for snap in snap_list: + self.assertIn('name', snap) + if snap_name and snap['name'] == snap_name: + found = True + self._validate_snapshot(snap, **kwargs) + break + if snap_name and not found: + self.fail("Snapshot {} not found".format(snap_name)) + def test_list(self): data = self._view_cache_get('/api/rbd') self.assertStatus(200) @@ -353,3 +373,27 @@ class RbdTest(DashboardTestCase): 'journaling', 'layering']) res = self.remove_image('rbd', 'edit_img') self.assertTrue(res['success']) + + def test_update_snapshot(self): + res = self.create_snapshot('rbd', 'img1', 'snap5') + self.assertTrue(res['success']) + img = self._get('/api/rbd/rbd/img1') + self._validate_snapshot_list(img['snapshots'], 'snap5', is_protected=False) + + res = self.update_snapshot('rbd', 'img1', 'snap5', 'snap6', None) + self.assertTrue(res['success']) + img = self._get('/api/rbd/rbd/img1') + self._validate_snapshot_list(img['snapshots'], 'snap6', is_protected=False) + + res = self.update_snapshot('rbd', 'img1', 'snap6', None, True) + self.assertTrue(res['success']) + img = self._get('/api/rbd/rbd/img1') + self._validate_snapshot_list(img['snapshots'], 'snap6', is_protected=True) + + res = self.update_snapshot('rbd', 'img1', 'snap6', 'snap5', False) + self.assertTrue(res['success']) + img = self._get('/api/rbd/rbd/img1') + self._validate_snapshot_list(img['snapshots'], 'snap5', is_protected=False) + + res = self.remove_snapshot('rbd', 'img1', 'snap5') + self.assertTrue(res['success']) -- 2.39.5