From 33d6a2d97426342c1e5a9af0d3c7e8dfe30d3304 Mon Sep 17 00:00:00 2001 From: John Spray Date: Wed, 12 Jul 2017 09:05:32 -0400 Subject: [PATCH] osd: implement `config set` This is a friendlier replacement for injectargs. Signed-off-by: John Spray --- src/osd/OSD.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 5133ed4226d..dfb64e4ad5b 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -6233,6 +6233,10 @@ COMMAND("injectargs " \ "name=injected_args,type=CephString,n=N", "inject configuration arguments into running OSD", "osd", "rw", "cli,rest") +COMMAND("config set " \ + "name=key,type=CephString name=value,type=CephString", + "Set a configuration option at runtime (not persistent)", + "osd", "rw", "cli,rest") COMMAND("cluster_log " \ "name=level,type=CephChoices,strings=error,warning,info,debug " \ "name=message,type=CephString,n=N", @@ -6347,6 +6351,15 @@ void OSD::do_command(Connection *con, ceph_tid_t tid, vector& cmd, buffe r = cct->_conf->injectargs(args, &ss); osd_lock.Lock(); } + else if (prefix == "config set") { + std::string key; + std::string val; + cmd_getval(cct, cmdmap, "key", key); + cmd_getval(cct, cmdmap, "value", val); + osd_lock.Unlock(); + r = cct->_conf->set_val(key, val, true, &ss); + osd_lock.Lock(); + } else if (prefix == "cluster_log") { vector msg; cmd_getval(cct, cmdmap, "message", msg); -- 2.39.5