]> 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>
Tue, 25 Jan 2022 09:45:50 +0000 (11:45 +0200)
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>
src/mon/ConfigMonitor.cc

index 39aa9f9b17737fea8ef9690b90f9238e5683b5a0..471aebf6dd6ba6360774bcff3abd2d2415336eba 100644 (file)
@@ -191,6 +191,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);
@@ -321,11 +322,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;
       }
@@ -535,7 +538,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) {