]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: add config option bulk_set
authorTatjana Dehler <tdehler@suse.com>
Thu, 25 Oct 2018 08:29:15 +0000 (10:29 +0200)
committerTatjana Dehler <tdehler@suse.com>
Tue, 4 Dec 2018 14:15:19 +0000 (15:15 +0100)
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
qa/tasks/mgr/dashboard/test_cluster_configuration.py
src/pybind/mgr/dashboard/controllers/cluster_configuration.py

index 223f8f907ef0df81ee474f7b85d6504911b15654..6e30e4edccc6a040f82ab11ca6323fd4907bccdc 100644 (file)
@@ -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)
index 8ac52e5fededee09444b11e481238a2802a7adb0..2d93b51ea4f13ed5add36b0e79b59e9f8c6883ed 100644 (file)
@@ -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']))