From: Tatjana Dehler Date: Thu, 25 Oct 2018 08:29:15 +0000 (+0200) Subject: mgr/dashboard: add config option bulk_set X-Git-Tag: v14.1.0~710^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f71e4f15e57c08324fe5e41e5dcbd59779b07ba1;p=ceph.git mgr/dashboard: add config option bulk_set Signed-off-by: Tatjana Dehler --- diff --git a/qa/tasks/mgr/dashboard/test_cluster_configuration.py b/qa/tasks/mgr/dashboard/test_cluster_configuration.py index 223f8f907ef0..6e30e4edccc6 100644 --- a/qa/tasks/mgr/dashboard/test_cluster_configuration.py +++ b/qa/tasks/mgr/dashboard/test_cluster_configuration.py @@ -133,6 +133,33 @@ class ClusterConfigurationTest(DashboardTestCase): self._clear_all_values_for_config_option(config_name) self._reset_original_values(config_name, orig_value) + def test_bulk_set(self): + expected_result = { + 'osd_max_backfills': {'section': 'osd', 'value': '1'}, + 'osd_recovery_max_active': {'section': 'osd', 'value': '3'}, + 'osd_recovery_max_single_start': {'section': 'osd', 'value': '1'}, + 'osd_recovery_sleep': {'section': 'osd', 'value': '2.000000'} + } + orig_values = dict() + + for config_name in expected_result: + orig_values[config_name] = self._get_config_by_name(config_name) + + # remove all existing settings for equal preconditions + self._clear_all_values_for_config_option(config_name) + + self._put('/api/cluster_conf', {'options': expected_result}) + self.assertStatus(200) + + for config_name, value in expected_result.items(): + result = self._wait_for_expected_get_result(self._get_config_by_name, config_name, + [value]) + self.assertEqual(result, [value]) + + # reset original value + self._clear_all_values_for_config_option(config_name) + self._reset_original_values(config_name, orig_values[config_name]) + def _validate_single(self, data): self.assertIn('name', data) self.assertIn('daemon_default', data) diff --git a/src/pybind/mgr/dashboard/controllers/cluster_configuration.py b/src/pybind/mgr/dashboard/controllers/cluster_configuration.py index 8ac52e5feded..2d93b51ea4f1 100644 --- a/src/pybind/mgr/dashboard/controllers/cluster_configuration.py +++ b/src/pybind/mgr/dashboard/controllers/cluster_configuration.py @@ -55,3 +55,8 @@ class ClusterConfiguration(RESTController): break else: CephService.send_command('mon', 'config rm', who=section, name=name) + + def bulk_set(self, options): + for name, value in options.items(): + CephService.send_command('mon', 'config set', who=value['section'], + name=name, value=str(value['value']))