asok_hook,
"dump snapshots");
ceph_assert(r == 0);
+ r = admin_socket->register_command("session ls name=filters,type=CephString,n=N,req=false",
+ asok_hook,
+ "List client sessions based on a filter");
+ ceph_assert(r == 0);
+ r = admin_socket->register_command("client ls name=filters,type=CephString,n=N,req=false",
+ asok_hook,
+ "List client sessions based on a filter");
+ ceph_assert(r == 0);
r = admin_socket->register_command("session evict name=filters,type=CephString,n=N,req=false",
asok_hook,
"Evict client session(s) based on a filter");
const std::vector<MDSDaemon::MDSCommand>& MDSDaemon::get_commands()
{
static const std::vector<MDSCommand> commands = {
- MDSCommand("session ls name=filters,type=CephString,n=N,req=false", "List client sessions"),
- MDSCommand("client ls name=filters,type=CephString,n=N,req=false", "List client sessions"),
MDSCommand("session config name=client_id,type=CephInt name=option,type=CephString name=value,type=CephString,req=false",
"Config a client session"),
MDSCommand("client config name=client_id,type=CephInt name=option,type=CephString name=value,type=CephString,req=false",
dout(4) << __func__ << ": waiting for OSD epoch " << target_epoch << dendl;
cond.wait();
}
- } else if (command == "session ls") {
+ } else if (command == "session ls" ||
+ command == "client ls") {
std::lock_guard l(mds_lock);
-
- heartbeat_reset();
-
- dump_sessions(SessionFilter(), f);
+ std::vector<std::string> filter_args;
+ cmd_getval(g_ceph_context, cmdmap, "filters", filter_args);
+ SessionFilter filter;
+ r = filter.parse(filter_args, &ss);
+ if (r != 0) {
+ goto out;
+ }
+ dump_sessions(filter, f);
} else if (command == "session evict" ||
command == "client evict") {
std::lock_guard l(mds_lock);
std::string prefix;
cmd_getval(g_ceph_context, cmdmap, "prefix", prefix);
- if (prefix == "session ls" || prefix == "client ls") {
- std::vector<std::string> filter_args;
- cmd_getval(g_ceph_context, cmdmap, "filters", filter_args);
-
- SessionFilter filter;
- *r = filter.parse(filter_args, ss);
- if (*r != 0) {
- return true;
- }
-
- JSONFormatter f(true);
- dump_sessions(filter, &f);
- f.flush(*ds);
- return true;
- } else if (prefix == "session config" || prefix == "client config") {
+ if (prefix == "session config" || prefix == "client config") {
int64_t client_id;
std::string option;
std::string value;