]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Pool backend changes 20920/head
authorStephan Müller <smueller@suse.com>
Fri, 23 Mar 2018 13:15:45 +0000 (14:15 +0100)
committerSebastian Wagner <sebastian.wagner@suse.com>
Fri, 6 Apr 2018 15:41:28 +0000 (17:41 +0200)
As needed by the UI.

Signed-off-by: Stephan Müller <smueller@suse.com>
qa/tasks/mgr/dashboard/test_pool.py
src/pybind/mgr/dashboard/controllers/pool.py

index 2b8c7bcd286142be804d2f13d4a47a5770f8f94a..d04fd2b0be0d52b6b550628b313281aacca3422f 100644 (file)
@@ -146,13 +146,15 @@ class PoolTest(DashboardTestCase):
         info_data = self._get("/api/pool/_info")
         self.assertEqual(set(info_data),
                          {'pool_names', 'crush_rules_replicated', 'crush_rules_erasure',
-                          'is_all_bluestore', 'compression_algorithms', 'compression_modes'})
+                          'is_all_bluestore', 'compression_algorithms', 'compression_modes',
+                          'osd_count'})
         self.assertTrue(all(isinstance(n, six.string_types) for n in info_data['pool_names']))
         self.assertTrue(
-            all(isinstance(n, six.string_types) for n in info_data['crush_rules_replicated']))
+            all(isinstance(n, dict) for n in info_data['crush_rules_replicated']))
         self.assertTrue(
-            all(isinstance(n, six.string_types) for n in info_data['crush_rules_erasure']))
+            all(isinstance(n, dict) for n in info_data['crush_rules_erasure']))
         self.assertIsInstance(info_data['is_all_bluestore'], bool)
+        self.assertIsInstance(info_data['osd_count'], int)
         self.assertTrue(
             all(isinstance(n, six.string_types) for n in info_data['compression_algorithms']))
         self.assertTrue(
index a9231ada23f1fbb9b02d263d7550d89b4f20c93a..6a8f605d02c08d60c6bd48567d90f4e168c28177 100644 (file)
@@ -84,7 +84,7 @@ class Pool(RESTController):
     def _info(self):
         """Used by the create-pool dialog"""
         def rules(pool_type):
-            return [r["rule_name"]
+            return [r
                     for r in mgr.get('osd_map_crush')['rules']
                     if r['type'] == pool_type]
 
@@ -101,6 +101,7 @@ class Pool(RESTController):
             "crush_rules_replicated": rules(1),
             "crush_rules_erasure": rules(3),
             "is_all_bluestore": all_bluestore(),
+            "osd_count": len(mgr.get('osd_map')['osds']),
             "compression_algorithms": compression_enum('bluestore_compression_algorithm'),
             "compression_modes": compression_enum('bluestore_compression_mode'),
         }