From: Sage Weil Date: Thu, 5 Sep 2019 19:24:02 +0000 (-0500) Subject: common/admin_socket: pass cmdvec to execute_command X-Git-Tag: v15.1.0~1323^2~47 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=32ad6692de0d792ad807d80cc3c18d076e312481;p=ceph-ci.git common/admin_socket: pass cmdvec to execute_command Signed-off-by: Sage Weil --- diff --git a/src/common/admin_socket.cc b/src/common/admin_socket.cc index ff71c02b9ee..cea62e5f0e3 100644 --- a/src/common/admin_socket.cc +++ b/src/common/admin_socket.cc @@ -345,7 +345,8 @@ bool AdminSocket::do_accept() bool rval; bufferlist out; - rval = execute_command(c, out); + std::vector cmdvec = { c }; + rval = execute_command(cmdvec, out); if (rval) { uint32_t len = htonl(out.length()); int ret = safe_write(connection_fd, &len, sizeof(len)); @@ -363,13 +364,13 @@ bool AdminSocket::do_accept() return rval; } -int AdminSocket::execute_command(const std::string& cmd, ceph::bufferlist& out) +int AdminSocket::execute_command(const std::vector& cmdvec, + ceph::bufferlist& out) { cmdmap_t cmdmap; string format; - vector cmdvec; stringstream errss; - cmdvec.push_back(cmd); + ldout(m_cct,10) << __func__ << " cmdvec='" << cmdvec << "'" << dendl; if (!cmdmap_from_json(cmdvec, &cmdmap, errss)) { ldout(m_cct, 0) << "AdminSocket: " << errss.str() << dendl; return false; @@ -403,7 +404,8 @@ int AdminSocket::execute_command(const std::string& cmd, ceph::bufferlist& out) } if (p == hooks.cend()) { - lderr(m_cct) << "AdminSocket: request '" << cmd << "' not defined" << dendl; + lderr(m_cct) << "AdminSocket: request '" << cmdvec + << "' not defined" << dendl; return false; } diff --git a/src/common/admin_socket.h b/src/common/admin_socket.h index 3591e1711d4..2e10fd07472 100644 --- a/src/common/admin_socket.h +++ b/src/common/admin_socket.h @@ -94,7 +94,8 @@ public: void chown(uid_t uid, gid_t gid); void chmod(mode_t mode); - int execute_command(const std::string& cmd, ceph::bufferlist& out); + int execute_command(const std::vector& cmd, + ceph::bufferlist& out); private: diff --git a/src/os/bluestore/bluestore_tool.cc b/src/os/bluestore/bluestore_tool.cc index 63db8261f54..dd227cad67b 100644 --- a/src/os/bluestore/bluestore_tool.cc +++ b/src/os/bluestore/bluestore_tool.cc @@ -846,7 +846,7 @@ int main(int argc, char **argv) for (auto alloc_name : allocs_name) { ceph::bufferlist out; bool b = admin_socket->execute_command( - "{\"prefix\": \"bluestore allocator " + action_name + " " + alloc_name + "\"}", out); + {"{\"prefix\": \"bluestore allocator " + action_name + " " + alloc_name + "\"}"}, out); if (!b) { cerr << "failure querying '" << alloc_name << "'" << std::endl; exit(EXIT_FAILURE);