From 0db8fd2418e50d91b0e0ca8e42f97660f7bea0e9 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 5 Jan 2018 16:36:25 -0600 Subject: [PATCH] common/ceph_context: implement 'config unset ' Clear an override value (if any). This works for 'ceph daemon ...' asok commands. Signed-off-by: Sage Weil --- src/common/ceph_context.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/common/ceph_context.cc b/src/common/ceph_context.cc index 4a342b5bb4b..f8988ca7464 100644 --- a/src/common/ceph_context.cc +++ b/src/common/ceph_context.cc @@ -435,6 +435,23 @@ void CephContext::do_command(std::string_view command, const cmdmap_t& cmdmap, if (command == "config show") { _conf->show_config(f); } + else if (command == "config unset") { + std::string var; + if (!(cmd_getval(this, cmdmap, "var", var))) { + f->dump_string("error", "syntax error: 'config unset '"); + } else { + int r = _conf->rm_val(var.c_str()); + if (r < 0) { + f->dump_stream("error") << "error unsetting '" << var << "': " + << cpp_strerror(r); + } else { + ostringstream ss; + _conf->apply_changes(&ss); + f->dump_string("success", ss.str()); + } + } + + } else if (command == "config set") { std::string var; std::vector val; @@ -577,6 +594,7 @@ CephContext::CephContext(uint32_t module_type_, _admin_socket->register_command("config show", "config show", _admin_hook, "dump current config settings"); _admin_socket->register_command("config help", "config help name=var,type=CephString,req=false", _admin_hook, "get config setting schema and descriptions"); _admin_socket->register_command("config set", "config set name=var,type=CephString name=val,type=CephString,n=N", _admin_hook, "config set [ ...]: set a config variable"); + _admin_socket->register_command("config unset", "config unset name=var,type=CephString", _admin_hook, "config unset : unset a config variable"); _admin_socket->register_command("config get", "config get name=var,type=CephString", _admin_hook, "config get : get the config value"); _admin_socket->register_command("config diff", "config diff", _admin_hook, @@ -618,6 +636,7 @@ CephContext::~CephContext() _admin_socket->unregister_command("perf histogram schema"); _admin_socket->unregister_command("perf reset"); _admin_socket->unregister_command("config show"); + _admin_socket->unregister_command("config unset"); _admin_socket->unregister_command("config set"); _admin_socket->unregister_command("config get"); _admin_socket->unregister_command("config help"); -- 2.39.5