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));
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;
}
if (p == hooks.cend()) {
- lderr(m_cct) << "AdminSocket: request '" << cmd << "' not defined" << dendl;
+ lderr(m_cct) << "AdminSocket: request '" << cmdvec
+ << "' not defined" << dendl;
return false;
}
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:
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);