From ec293f34b1ca74243f0af70180d5025e5866f231 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 1 Jun 2021 16:55:44 -0400 Subject: [PATCH] common/cmdparse: emit proper json Instead of '"req": "false"', emit '"req": false'. Same for conditional. Luckily, the clients don't really care about this change, as ceph_argparse.py argdesc interpets the JSON like so: self.req = req in (True, 'True', 'true') self.positional = positional in (True, 'True', 'true') Clean up command definitions to use lowercase 'false', but tolerate both for backward compat during upgrade and to tolerate future errors. Signed-off-by: Sage Weil --- src/common/cmdparse.cc | 12 +++++++++--- src/mgr/MgrCommands.h | 4 ++-- src/mon/MonCommands.h | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/common/cmdparse.cc b/src/common/cmdparse.cc index 9b296f8fbf4..7052b235fb9 100644 --- a/src/common/cmdparse.cc +++ b/src/common/cmdparse.cc @@ -179,10 +179,16 @@ dump_cmd_to_json(Formatter *f, uint64_t features, const string& cmd) desckv["positional"] = "false"; } for (auto [key, value] : desckv) { - if (key == "positional" && !HAVE_FEATURE(features, SERVER_QUINCY)) { - continue; + if (key == "positional") { + if (!HAVE_FEATURE(features, SERVER_QUINCY)) { + continue; + } + f->dump_bool(key, value == "true" || value == "True"); + } else if (key == "req" && HAVE_FEATURE(features, SERVER_QUINCY)) { + f->dump_bool(key, value == "true" || value == "True"); + } else { + f->dump_string(key, value); } - f->dump_string(key, value); } f->close_section(); // attribute object for individual desc } diff --git a/src/mgr/MgrCommands.h b/src/mgr/MgrCommands.h index 11607446b84..439f07c6701 100644 --- a/src/mgr/MgrCommands.h +++ b/src/mgr/MgrCommands.h @@ -181,7 +181,7 @@ COMMAND("service status", "dump service state", "service", "r") COMMAND("config show " \ - "name=who,type=CephString name=key,type=CephString,req=False", + "name=who,type=CephString name=key,type=CephString,req=false", "Show running configuration", "mgr", "r") COMMAND("config show-with-defaults " \ @@ -203,7 +203,7 @@ COMMAND("device ls-by-host name=host,type=CephString", "mgr", "r") COMMAND("device set-life-expectancy name=devid,type=CephString "\ "name=from,type=CephString "\ - "name=to,type=CephString,req=False", + "name=to,type=CephString,req=false", "Set predicted device life expectancy", "mgr", "rw") COMMAND("device rm-life-expectancy name=devid,type=CephString", diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index df03ca4a8a8..d2d00ddfc7c 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -1294,7 +1294,7 @@ COMMAND("config rm" "config", "rw") COMMAND("config get " "name=who,type=CephString " - "name=key,type=CephString,req=False", + "name=key,type=CephString,req=false", "Show configuration option(s) for an entity", "config", "r") COMMAND("config dump", @@ -1310,7 +1310,7 @@ COMMAND("config ls", COMMAND("config assimilate-conf", "Assimilate options from a conf, and return a new, minimal conf file", "config", "rw") -COMMAND("config log name=num,type=CephInt,req=False", +COMMAND("config log name=num,type=CephInt,req=false", "Show recent history of config changes", "config", "r") COMMAND("config reset " -- 2.39.5