From cb3bff0541f9291a1a8460bf14c70d9710e37f87 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 10 Mar 2020 13:56:48 +0800 Subject: [PATCH] crimson/asok: pass vector to parse_cmd() prepare for the tell command, as the payload of MCommand is a `vector`, and `cmdmap_from_json()` expects a `vector` Signed-off-by: Kefu Chai --- src/crimson/admin/admin_socket.cc | 8 ++++---- src/crimson/admin/admin_socket.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/crimson/admin/admin_socket.cc b/src/crimson/admin/admin_socket.cc index 1c677ff107957..afbffa3d6dad1 100644 --- a/src/crimson/admin/admin_socket.cc +++ b/src/crimson/admin/admin_socket.cc @@ -51,8 +51,8 @@ AdminSocket::register_command(std::unique_ptr&& hook) /* * Note: parse_cmd() is executed with servers_tbl_rwlock held as shared */ -AdminSocket::maybe_parsed_t AdminSocket::parse_cmd(std::string cmd, - ceph::bufferlist& out) +AdminSocket::maybe_parsed_t +AdminSocket::parse_cmd(const std::vector& cmd, ceph::bufferlist& out) { // preliminaries: // - create the formatter specified by the cmd parameters @@ -63,7 +63,7 @@ AdminSocket::maybe_parsed_t AdminSocket::parse_cmd(std::string cmd, try { stringstream errss; // note that cmdmap_from_json() may throw on syntax issues - if (!cmdmap_from_json({cmd}, &cmdmap, errss)) { + if (!cmdmap_from_json(cmd, &cmdmap, errss)) { logger().error("{}: incoming command error: {}", __func__, errss.str()); out.append("error:"s); out.append(errss.str()); @@ -142,7 +142,7 @@ seastar::future<> AdminSocket::execute_line(std::string cmdline, return seastar::with_shared(servers_tbl_rwlock, [this, cmdline, &out]() mutable { ceph::bufferlist err; - auto parsed = parse_cmd(cmdline, err); + auto parsed = parse_cmd({cmdline}, err); if (!parsed.has_value() || !validate_command(*parsed, cmdline, err)) { return finalize_response(out, std::move(err)); diff --git a/src/crimson/admin/admin_socket.h b/src/crimson/admin/admin_socket.h index 4b57b68ad40af..a6358d4acec71 100644 --- a/src/crimson/admin/admin_socket.h +++ b/src/crimson/admin/admin_socket.h @@ -146,11 +146,11 @@ class AdminSocket : public seastar::enable_lw_shared_from_this { seastar::gate stop_gate; /** - * parse the incoming command line into the sequence of words that identifies + * parse the incoming command into the sequence of words that identifies * the API, and into its arguments. Locate the command string in the * registered blocks. */ - maybe_parsed_t parse_cmd(std::string command_text, bufferlist& out); + maybe_parsed_t parse_cmd(const std::vector& cmd, bufferlist& out); /** * The servers table is protected by a rw-lock, to be acquired exclusively -- 2.39.5