From: Stephan Müller Date: Fri, 23 Mar 2018 13:15:45 +0000 (+0100) Subject: mgr/dashboard: Pool backend changes X-Git-Tag: v13.1.0~328^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c60da7bb1f6d79faea9aef83d4397567102c42c9;p=ceph.git mgr/dashboard: Pool backend changes As needed by the UI. Signed-off-by: Stephan Müller --- diff --git a/qa/tasks/mgr/dashboard/test_pool.py b/qa/tasks/mgr/dashboard/test_pool.py index 2b8c7bcd2861..d04fd2b0be0d 100644 --- a/qa/tasks/mgr/dashboard/test_pool.py +++ b/qa/tasks/mgr/dashboard/test_pool.py @@ -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( diff --git a/src/pybind/mgr/dashboard/controllers/pool.py b/src/pybind/mgr/dashboard/controllers/pool.py index a9231ada23f1..6a8f605d02c0 100644 --- a/src/pybind/mgr/dashboard/controllers/pool.py +++ b/src/pybind/mgr/dashboard/controllers/pool.py @@ -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'), }