]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/ConfigMonitor: fix config get key with whitespaces
authorNitzan Mordechai <nmordech@redhat.com>
Wed, 19 Jan 2022 09:36:31 +0000 (03:36 -0600)
committerNitzan Mordechai <nmordech@redhat.com>
Mon, 1 Aug 2022 06:27:53 +0000 (09:27 +0300)
Currently, a config-set\get\rm command does not handle keys with blanks.

Here - we normalize the keys, replacing spaces with underscores.

Fixes: https://tracker.ceph.com/issues/44092
Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
(cherry picked from commit 94cac0795f64751b9e37d4e025b0c0f41b82fd39)

src/mon/ConfigMonitor.cc

index 7f0ee21e67155f723c6f28f479581c10897d636e..c82a8417ab0eede45ee402e8c997c9f9a5c31729 100644 (file)
@@ -203,6 +203,7 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op)
     stringstream ss;
     string name;
     cmd_getval(cmdmap, "key", name);
+    name = ConfFile::normalize_key_name(name);
     const Option *opt = g_conf().find_option(name);
     if (!opt) {
       opt = mon.mgrmon()->find_module_option(name);
@@ -333,11 +334,13 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op)
       &src);
 
     if (cmd_getval(cmdmap, "key", name)) {
+      name = ConfFile::normalize_key_name(name);
       const Option *opt = g_conf().find_option(name);
       if (!opt) {
        opt = mon.mgrmon()->find_module_option(name);
       }
       if (!opt) {
+        ss << "unrecognized key '" << name << "'";
        err = -ENOENT;
        goto reply;
       }
@@ -547,7 +550,8 @@ bool ConfigMonitor::prepare_command(MonOpRequestRef op)
     cmd_getval(cmdmap, "name", name);
     cmd_getval(cmdmap, "value", value);
     cmd_getval(cmdmap, "force", force);
-
+    name = ConfFile::normalize_key_name(name);
+    
     if (prefix == "config set" && !force) {
       const Option *opt = g_conf().find_option(name);
       if (!opt) {