]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: convert RBD features to a list of strings 21024/head
authorTatjana Dehler <tdehler@suse.com>
Fri, 23 Mar 2018 11:23:43 +0000 (12:23 +0100)
committerTatjana Dehler <tdehler@suse.com>
Mon, 26 Mar 2018 07:41:56 +0000 (09:41 +0200)
Until now the API returns the features provided by an RBD as one comma
separated string. It's more usable for the frontend to receive a list
of strings instead.

Signed-off-by: Tatjana Dehler <tdehler@suse.com>
qa/tasks/mgr/dashboard/test_rbd.py
src/pybind/mgr/dashboard/controllers/rbd.py

index 0835fc27fff1f3ed9d0f7f109705205e7d97c32b..51968c23141fdac21e3230a0dbea4126df2bb252 100644 (file)
@@ -33,7 +33,7 @@ class RbdTest(DashboardTestCase):
         self.assertEqual(img1['num_objs'], 256)
         self.assertEqual(img1['obj_size'], 4194304)
         self.assertEqual(img1['features_name'],
-                         'deep-flatten, exclusive-lock, fast-diff, layering, object-map')
+                         ['deep-flatten', 'exclusive-lock', 'fast-diff', 'layering', 'object-map'])
 
         img2 = data['value'][1]
         self.assertEqual(img2['name'], 'img2')
@@ -41,7 +41,7 @@ class RbdTest(DashboardTestCase):
         self.assertEqual(img2['num_objs'], 512)
         self.assertEqual(img2['obj_size'], 4194304)
         self.assertEqual(img2['features_name'],
-                         'deep-flatten, exclusive-lock, fast-diff, layering, object-map')
+                         ['deep-flatten', 'exclusive-lock', 'fast-diff', 'layering', 'object-map'])
 
     @authenticate
     def test_create(self):
@@ -63,7 +63,8 @@ class RbdTest(DashboardTestCase):
                 self.assertEqual(rbd['num_objs'], 1)
                 self.assertEqual(rbd['obj_size'], 4194304)
                 self.assertEqual(rbd['features_name'],
-                                 'deep-flatten, exclusive-lock, fast-diff, layering, object-map')
+                                 ['deep-flatten', 'exclusive-lock', 'fast-diff', 'layering',
+                                  'object-map'])
                 break
 
     # TODO: Re-enable this test for bluestore cluster by figuring out how to skip none-bluestore
@@ -93,8 +94,9 @@ class RbdTest(DashboardTestCase):
                 self.assertEqual(rbd['size'], 10240)
                 self.assertEqual(rbd['num_objs'], 1)
                 self.assertEqual(rbd['obj_size'], 4194304)
-                self.assertEqual(rbd['features_name'], 'data-pool, deep-flatten, exclusive-lock, '
-                                                       'fast-diff, layering, object-map')
+                self.assertEqual(rbd['features_name'],
+                                 ['data-pool', 'deep-flatten', 'exclusive-lock', 'fast-diff',
+                                  'layering', 'object-map'])
                 break
 
         self._ceph_cmd(['osd', 'pool', 'delete', 'data_pool', 'data_pool',
index b73697b0a16047ece45a496822a13a0dc4f9448a..2b7328ba2899506a90cd3cd94f7d84576dab61f7 100644 (file)
@@ -34,11 +34,11 @@ class Rbd(RESTController):
         Formats the bitmask:
 
         >>> Rbd._format_bitmask(45)
-        'deep-flatten, exclusive-lock, layering, object-map'
+        ['deep-flatten', 'exclusive-lock', 'layering', 'object-map']
         """
         names = [val for key, val in Rbd.RBD_FEATURES_NAME_MAPPING.items()
                  if key & features == key]
-        return ', '.join(sorted(names))
+        return sorted(names)
 
     @staticmethod
     def _format_features(features):