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 <akupczyk@redhat.com>
// 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};
}
* 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 :(
}
}
-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,
typename Value = std::conditional_t<is_vector,
vector<T>,
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,
}
} // 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)
{
auto type = arg_desc["type"];
if (arg_desc.count("n")) {
if (type == "CephInt") {
- return !validate_arg<true, int64_t>(cct, cmdmap, arg_desc,
+ return !validate_arg<true, int64_t>(cmdmap, arg_desc,
name, type, os);
} else if (type == "CephFloat") {
- return !validate_arg<true, double>(cct, cmdmap, arg_desc,
+ return !validate_arg<true, double>(cmdmap, arg_desc,
name, type, os);
} else {
- return !validate_arg<true, string>(cct, cmdmap, arg_desc,
+ return !validate_arg<true, string>(cmdmap, arg_desc,
name, type, os);
}
} else {
if (type == "CephInt") {
- return !validate_arg<false, int64_t>(cct, cmdmap, arg_desc,
+ return !validate_arg<false, int64_t>(cmdmap, arg_desc,
name, type, os);
} else if (type == "CephFloat") {
- return !validate_arg<false, double>(cct, cmdmap, arg_desc,
+ return !validate_arg<false, double>(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<false, string>(cct, cmdmap, arg_desc,
+ return !validate_arg<false, string>(cmdmap, arg_desc,
name, type, os);
}
}
std::vector<double>> cmd_vartype;
typedef std::map<std::string, cmd_vartype, std::less<>> 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,
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);
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()
if (auto* parsed = std::get_if<parsed_command_t>(&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;
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 {
using crimson::osd::OSD;
using crimson::osd::PG;
using namespace crimson::common;
+using ceph::common::cmd_getval;
namespace crimson::admin::pg {
${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
#include <vector>
#include <string>
-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:
#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:
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);
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;