]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
common/admin_socket: pass cmdvec to execute_command
authorSage Weil <sage@redhat.com>
Thu, 5 Sep 2019 19:24:02 +0000 (14:24 -0500)
committerSage Weil <sage@redhat.com>
Tue, 1 Oct 2019 21:30:52 +0000 (16:30 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/common/admin_socket.cc
src/common/admin_socket.h
src/os/bluestore/bluestore_tool.cc

index ff71c02b9ee1dfbe1fe3338616b2065a1995afdf..cea62e5f0e3e8a607f9bb7d1b4f848057e5c7f61 100644 (file)
@@ -345,7 +345,8 @@ bool AdminSocket::do_accept()
 
   bool rval;
   bufferlist out;
-  rval = execute_command(c, out);
+  std::vector<std::string> 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<std::string>& cmdvec,
+                                ceph::bufferlist& out)
 {
   cmdmap_t cmdmap;
   string format;
-  vector<string> 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;
   }
 
index 3591e1711d40a8c5449411e1aa4edf89fa5e8201..2e10fd074725f237869654fd81b320390837ceed 100644 (file)
@@ -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<std::string>& cmd,
+                     ceph::bufferlist& out);
 
 private:
 
index 63db8261f547f4c2766f18d555ceda7d27769332..dd227cad67bf6366c43672c15d8d90d5af9b19bc 100644 (file)
@@ -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);