From 3390d80966b8d4557d5b5b4b2ec2cf833b36fa25 Mon Sep 17 00:00:00 2001 From: Adam Kupczyk Date: Wed, 8 Jun 2022 14:17:22 +0000 Subject: [PATCH] common/cmdparse: Unsplit crimson/classic Merges split of cmdparse functions to ceph::common and crimson::common namespaces. Now only one implementation is present: ceph::common::(cmdparse funcs). Signed-off-by: Adam Kupczyk --- src/common/admin_socket.cc | 2 +- src/common/cmdparse.cc | 25 +++++++++++------------- src/common/cmdparse.h | 5 ++--- src/crimson/admin/admin_socket.cc | 7 ++++++- src/crimson/admin/osd_admin.cc | 2 ++ src/crimson/admin/pg_commands.cc | 1 + src/crimson/os/alienstore/CMakeLists.txt | 1 - src/messages/MMonCommand.h | 4 ++-- src/messages/MMonCommandAck.h | 4 ++-- src/mon/PGMap.cc | 6 +++--- src/osd/OSDMap.cc | 2 +- 11 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/common/admin_socket.cc b/src/common/admin_socket.cc index 01021d94193..1f3b38649cc 100644 --- a/src/common/admin_socket.cc +++ b/src/common/admin_socket.cc @@ -552,7 +552,7 @@ AdminSocket::find_matched_hook(std::string& prefix, // make sure one of the registered commands with this prefix validates. stringstream errss; for (auto hook = hooks_begin; hook != hooks_end; ++hook) { - if (validate_cmd(m_cct, hook->second.desc, cmdmap, errss)) { + if (validate_cmd(hook->second.desc, cmdmap, errss)) { in_hook = true; return {0, hook->second.hook}; } diff --git a/src/common/cmdparse.cc b/src/common/cmdparse.cc index 368e1b726d7..009e6678c98 100644 --- a/src/common/cmdparse.cc +++ b/src/common/cmdparse.cc @@ -32,7 +32,7 @@ using namespace std::literals; * Given a cmddesc like "foo baz name=bar,type=CephString", * return the prefix "foo baz". */ -namespace TOPNSPC::common { +namespace ceph::common { std::string cmddesc_get_prefix(const std::string_view &cmddesc) { string tmp(cmddesc); // FIXME: stringstream ctor can't take string_view :( @@ -571,8 +571,7 @@ bool validate_str_arg(std::string_view value, } } -bool validate_bool(CephContext *cct, - const cmdmap_t& cmdmap, +bool validate_bool(const cmdmap_t& cmdmap, const arg_desc_t& desc, const std::string_view name, const std::string_view type, @@ -600,8 +599,7 @@ template, T>> -bool validate_arg(CephContext* cct, - const cmdmap_t& cmdmap, +bool validate_arg(const cmdmap_t& cmdmap, const arg_desc_t& desc, const std::string_view name, const std::string_view type, @@ -642,8 +640,7 @@ bool validate_arg(CephContext* cct, } } // anonymous namespace -bool validate_cmd(CephContext* cct, - const std::string& desc, +bool validate_cmd(const std::string& desc, const cmdmap_t& cmdmap, std::ostream& os) { @@ -658,27 +655,27 @@ bool validate_cmd(CephContext* cct, auto type = arg_desc["type"]; if (arg_desc.count("n")) { if (type == "CephInt") { - return !validate_arg(cct, cmdmap, arg_desc, + return !validate_arg(cmdmap, arg_desc, name, type, os); } else if (type == "CephFloat") { - return !validate_arg(cct, cmdmap, arg_desc, + return !validate_arg(cmdmap, arg_desc, name, type, os); } else { - return !validate_arg(cct, cmdmap, arg_desc, + return !validate_arg(cmdmap, arg_desc, name, type, os); } } else { if (type == "CephInt") { - return !validate_arg(cct, cmdmap, arg_desc, + return !validate_arg(cmdmap, arg_desc, name, type, os); } else if (type == "CephFloat") { - return !validate_arg(cct, cmdmap, arg_desc, + return !validate_arg(cmdmap, arg_desc, name, type, os); } else if (type == "CephBool") { - return !validate_bool(cct, cmdmap, arg_desc, + return !validate_bool(cmdmap, arg_desc, name, type, os); } else { - return !validate_arg(cct, cmdmap, arg_desc, + return !validate_arg(cmdmap, arg_desc, name, type, os); } } diff --git a/src/common/cmdparse.h b/src/common/cmdparse.h index f6edf0cb88d..fb7fb77f7b7 100644 --- a/src/common/cmdparse.h +++ b/src/common/cmdparse.h @@ -22,7 +22,7 @@ typedef boost::variant> cmd_vartype; typedef std::map> cmdmap_t; -namespace TOPNSPC::common { +namespace ceph::common { std::string cmddesc_get_prefix(const std::string_view &cmddesc); std::string cmddesc_get_prenautilus_compat(const std::string &cmddesc); void dump_cmd_to_json(ceph::Formatter *f, uint64_t features, @@ -118,8 +118,7 @@ cmd_putval(CephContext *cct, cmdmap_t& cmdmap, std::string_view k, const T& val) cmdmap.insert_or_assign(std::string{k}, val); } -bool validate_cmd(CephContext* cct, - const std::string& desc, +bool validate_cmd(const std::string& desc, const cmdmap_t& cmdmap, std::ostream& os); extern int parse_osd_id(const char *s, std::ostream *pss); diff --git a/src/crimson/admin/admin_socket.cc b/src/crimson/admin/admin_socket.cc index de7db209d2e..ffe0f4cbee1 100644 --- a/src/crimson/admin/admin_socket.cc +++ b/src/crimson/admin/admin_socket.cc @@ -22,6 +22,11 @@ using namespace crimson::common; using namespace std::literals; +using ceph::common::cmdmap_from_json; +using ceph::common::cmd_getval; +using ceph::common::bad_cmd_get; +using ceph::common::validate_cmd; +using ceph::common::dump_cmd_and_help_to_json; namespace { seastar::logger& logger() @@ -154,7 +159,7 @@ auto AdminSocket::execute_command(const std::vector& cmd, if (auto* parsed = std::get_if(&maybe_parsed); parsed) { stringstream os; string desc{parsed->hook.desc}; - if (!validate_cmd(nullptr, desc, parsed->params, os)) { + if (!validate_cmd(desc, parsed->params, os)) { logger().error("AdminSocket::execute_command: " "failed to validate '{}': {}", cmd, os.str()); ceph::bufferlist out; diff --git a/src/crimson/admin/osd_admin.cc b/src/crimson/admin/osd_admin.cc index 970010c970c..306ecf0f371 100644 --- a/src/crimson/admin/osd_admin.cc +++ b/src/crimson/admin/osd_admin.cc @@ -30,6 +30,8 @@ using std::unique_ptr; using crimson::osd::OSD; using crimson::common::local_conf; using namespace crimson::common; +using ceph::common::cmd_getval; +using ceph::common::cmd_getval_or; namespace crimson::admin { diff --git a/src/crimson/admin/pg_commands.cc b/src/crimson/admin/pg_commands.cc index dacfd515db4..c919111057a 100644 --- a/src/crimson/admin/pg_commands.cc +++ b/src/crimson/admin/pg_commands.cc @@ -18,6 +18,7 @@ using crimson::osd::OSD; using crimson::osd::PG; using namespace crimson::common; +using ceph::common::cmd_getval; namespace crimson::admin::pg { diff --git a/src/crimson/os/alienstore/CMakeLists.txt b/src/crimson/os/alienstore/CMakeLists.txt index f006ba33a85..09b618d91f8 100644 --- a/src/crimson/os/alienstore/CMakeLists.txt +++ b/src/crimson/os/alienstore/CMakeLists.txt @@ -10,7 +10,6 @@ set(crimson_alien_common_srcs ${PROJECT_SOURCE_DIR}/src/common/blkdev.cc ${PROJECT_SOURCE_DIR}/src/common/ceph_context.cc ${PROJECT_SOURCE_DIR}/src/common/ceph_crypto.cc - ${PROJECT_SOURCE_DIR}/src/common/cmdparse.cc ${PROJECT_SOURCE_DIR}/src/common/Finisher.cc ${PROJECT_SOURCE_DIR}/src/common/HeartbeatMap.cc ${PROJECT_SOURCE_DIR}/src/common/PluginRegistry.cc diff --git a/src/messages/MMonCommand.h b/src/messages/MMonCommand.h index 29e4269e878..0e9693ad9c2 100644 --- a/src/messages/MMonCommand.h +++ b/src/messages/MMonCommand.h @@ -20,8 +20,8 @@ #include #include -using TOPNSPC::common::cmdmap_from_json; -using TOPNSPC::common::cmd_getval; +using ceph::common::cmdmap_from_json; +using ceph::common::cmd_getval; class MMonCommand final : public PaxosServiceMessage { public: diff --git a/src/messages/MMonCommandAck.h b/src/messages/MMonCommandAck.h index d452035dbfc..bf96bcc639c 100644 --- a/src/messages/MMonCommandAck.h +++ b/src/messages/MMonCommandAck.h @@ -17,8 +17,8 @@ #include "messages/PaxosServiceMessage.h" -using TOPNSPC::common::cmdmap_from_json; -using TOPNSPC::common::cmd_getval; +using ceph::common::cmdmap_from_json; +using ceph::common::cmd_getval; class MMonCommandAck final : public PaxosServiceMessage { public: diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 7e2b42ea82a..d064f993017 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -33,9 +33,9 @@ using std::vector; using ceph::bufferlist; using ceph::fixed_u_to_string; - -using TOPNSPC::common::cmd_getval; -using TOPNSPC::common::cmd_getval_or; +using ceph::common::cmd_getval; +using ceph::common::cmd_getval_or; +using ceph::common::cmd_putval; MEMPOOL_DEFINE_OBJECT_FACTORY(PGMapDigest, pgmap_digest, pgmap); MEMPOOL_DEFINE_OBJECT_FACTORY(PGMap, pgmap, pgmap); diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index f5a19f9656c..99dfbce1978 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -6487,7 +6487,7 @@ int OSDMap::parse_osd_id_list(const vector& ls, set *out, get_all_osds(*out); break; } - long osd = TOPNSPC::common::parse_osd_id(i->c_str(), ss); + long osd = ceph::common::parse_osd_id(i->c_str(), ss); if (osd < 0) { *ss << "invalid osd id '" << *i << "'"; return -EINVAL; -- 2.39.5