]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mon/ConfigMonitor: add --force flag to 'config set'
authorSage Weil <sage@redhat.com>
Wed, 2 Jan 2019 22:29:17 +0000 (16:29 -0600)
committerSage Weil <sage@redhat.com>
Thu, 3 Jan 2019 13:10:12 +0000 (07:10 -0600)
Add a force flag to override option and/or value checks.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/ConfigMonitor.cc
src/mon/MonCommands.h

index 235fe679c27ba46f4363d62849a612909991e1d4..f730cffaa53de2a372843e4f6c346e70d86d305d 100644 (file)
@@ -416,11 +416,13 @@ bool ConfigMonitor::prepare_command(MonOpRequestRef op)
       prefix == "config rm") {
     string who;
     string name, value;
+    bool force = false;
     cmd_getval(g_ceph_context, cmdmap, "who", who);
     cmd_getval(g_ceph_context, cmdmap, "name", name);
     cmd_getval(g_ceph_context, cmdmap, "value", value);
+    cmd_getval(g_ceph_context, cmdmap, "force", force);
 
-    if (prefix == "config set") {
+    if (prefix == "config set" && !force) {
       const Option *opt = g_conf().find_option(name);
       if (!opt) {
        opt = mon->mgrmon()->find_module_option(name);
@@ -430,13 +432,15 @@ bool ConfigMonitor::prepare_command(MonOpRequestRef op)
        err = -EINVAL;
        goto reply;
       }
-       
-      Option::value_t real_value;
-      string errstr;
-      err = opt->parse_value(value, &real_value, &errstr, &value);
-      if (err < 0) {
-       ss << "error parsing value: " << errstr;
-       goto reply;
+
+      if (opt) {
+       Option::value_t real_value;
+       string errstr;
+       err = opt->parse_value(value, &real_value, &errstr, &value);
+       if (err < 0) {
+         ss << "error parsing value: " << errstr;
+         goto reply;
+       }
       }
     }
 
index 3ae0e7fac5f49e422c0f5afc2464c72a6c609fa1..7e10e2628f39f59c189bdf8483508b8a407e9966 100644 (file)
@@ -1131,7 +1131,8 @@ COMMAND("mgr versions", \
 COMMAND("config set" \
        " name=who,type=CephString" \
        " name=name,type=CephString" \
-       " name=value,type=CephString", \
+       " name=value,type=CephString" \
+       " name=force,type=CephBool,req=false",
        "Set a configuration option for one or more entities",
        "config", "rw")
 COMMAND("config rm"                                            \