This is always the cmddesc prefix.
Signed-off-by: Sage Weil <sage@redhat.com>
AdminSocket* admin_socket = cct->get_admin_socket();
int ret = admin_socket->register_command("mds_requests",
- "mds_requests",
&m_command_hook,
"show in-progress mds requests");
if (ret < 0) {
<< cpp_strerror(-ret) << dendl;
}
ret = admin_socket->register_command("mds_sessions",
- "mds_sessions",
&m_command_hook,
"show mds session state");
if (ret < 0) {
<< cpp_strerror(-ret) << dendl;
}
ret = admin_socket->register_command("dump_cache",
- "dump_cache",
&m_command_hook,
"show in-memory metadata cache contents");
if (ret < 0) {
<< cpp_strerror(-ret) << dendl;
}
ret = admin_socket->register_command("kick_stale_sessions",
- "kick_stale_sessions",
&m_command_hook,
"kick sessions that were remote reset");
if (ret < 0) {
<< cpp_strerror(-ret) << dendl;
}
ret = admin_socket->register_command("status",
- "status",
&m_command_hook,
"show overall client status");
if (ret < 0) {
}
}
-int AdminSocket::register_command(std::string_view command,
- std::string_view cmddesc,
+int AdminSocket::register_command(std::string_view cmddesc,
AdminSocketHook *hook,
std::string_view help)
{
m_path = path;
version_hook = std::make_unique<VersionHook>();
- register_command("0", "0", version_hook.get(), "");
- register_command("version", "version", version_hook.get(), "get ceph version");
- register_command("git_version", "git_version", version_hook.get(),
+ register_command("0", version_hook.get(), "");
+ register_command("version", version_hook.get(), "get ceph version");
+ register_command("git_version", version_hook.get(),
"get git sha1");
help_hook = std::make_unique<HelpHook>(this);
- register_command("help", "help", help_hook.get(),
+ register_command("help", help_hook.get(),
"list available commands");
getdescs_hook = std::make_unique<GetdescsHook>(this);
- register_command("get_command_descriptions", "get_command_descriptions",
+ register_command("get_command_descriptions",
getdescs_hook.get(), "list available commands");
th = make_named_thread("admin_socket", &AdminSocket::entry, this);
*
* @return 0 for success, -EEXIST if command already registered.
*/
- int register_command(std::string_view command,
- std::string_view cmddesc,
+ int register_command(std::string_view cmddesc,
AdminSocketHook *hook,
std::string_view help);
: cct(cct), lock(ceph::make_mutex("mem_pool_obs")) {
cct->_conf.add_observer(this);
int r = cct->get_admin_socket()->register_command(
- "dump_mempools",
"dump_mempools",
this,
"get mempool stats");
_plugin_registry = new PluginRegistry(this);
_admin_hook = new CephContextHook(this);
- _admin_socket->register_command("assert", "assert", _admin_hook, "");
- _admin_socket->register_command("abort", "abort", _admin_hook, "");
- _admin_socket->register_command("perfcounters_dump", "perfcounters_dump", _admin_hook, "");
- _admin_socket->register_command("1", "1", _admin_hook, "");
- _admin_socket->register_command("perf dump", "perf dump name=logger,type=CephString,req=false name=counter,type=CephString,req=false", _admin_hook, "dump perfcounters value");
- _admin_socket->register_command("perfcounters_schema", "perfcounters_schema", _admin_hook, "");
- _admin_socket->register_command("perf histogram dump", "perf histogram dump name=logger,type=CephString,req=false name=counter,type=CephString,req=false", _admin_hook, "dump perf histogram values");
- _admin_socket->register_command("2", "2", _admin_hook, "");
- _admin_socket->register_command("perf schema", "perf schema", _admin_hook, "dump perfcounters schema");
- _admin_socket->register_command("perf histogram schema", "perf histogram schema", _admin_hook, "dump perf histogram schema");
- _admin_socket->register_command("perf reset", "perf reset name=var,type=CephString", _admin_hook, "perf reset <name>: perf reset all or one perfcounter name");
- _admin_socket->register_command("config show", "config show", _admin_hook, "dump current config settings");
- _admin_socket->register_command("config help", "config help name=var,type=CephString,req=false", _admin_hook, "get config setting schema and descriptions");
- _admin_socket->register_command("config set", "config set name=var,type=CephString name=val,type=CephString,n=N", _admin_hook, "config set <field> <val> [<val> ...]: set a config variable");
- _admin_socket->register_command("config unset", "config unset name=var,type=CephString", _admin_hook, "config unset <field>: unset a config variable");
- _admin_socket->register_command("config get", "config get name=var,type=CephString", _admin_hook, "config get <field>: get the config value");
- _admin_socket->register_command("config diff",
+ _admin_socket->register_command("assert", _admin_hook, "");
+ _admin_socket->register_command("abort", _admin_hook, "");
+ _admin_socket->register_command("perfcounters_dump", _admin_hook, "");
+ _admin_socket->register_command("1", _admin_hook, "");
+ _admin_socket->register_command("perf dump name=logger,type=CephString,req=false name=counter,type=CephString,req=false", _admin_hook, "dump perfcounters value");
+ _admin_socket->register_command("perfcounters_schema", _admin_hook, "");
+ _admin_socket->register_command("perf histogram dump name=logger,type=CephString,req=false name=counter,type=CephString,req=false", _admin_hook, "dump perf histogram values");
+ _admin_socket->register_command("2", _admin_hook, "");
+ _admin_socket->register_command("perf schema", _admin_hook, "dump perfcounters schema");
+ _admin_socket->register_command("perf histogram schema", _admin_hook, "dump perf histogram schema");
+ _admin_socket->register_command("perf reset name=var,type=CephString", _admin_hook, "perf reset <name>: perf reset all or one perfcounter name");
+ _admin_socket->register_command("config show", _admin_hook, "dump current config settings");
+ _admin_socket->register_command("config help name=var,type=CephString,req=false", _admin_hook, "get config setting schema and descriptions");
+ _admin_socket->register_command("config set name=var,type=CephString name=val,type=CephString,n=N", _admin_hook, "config set <field> <val> [<val> ...]: set a config variable");
+ _admin_socket->register_command("config unset name=var,type=CephString", _admin_hook, "config unset <field>: unset a config variable");
+ _admin_socket->register_command("config get name=var,type=CephString", _admin_hook, "config get <field>: get the config value");
+ _admin_socket->register_command(
"config diff", _admin_hook,
"dump diff of current config and default config");
- _admin_socket->register_command("config diff get",
+ _admin_socket->register_command(
"config diff get name=var,type=CephString", _admin_hook,
"dump diff get <field>: dump diff of current and default config setting <field>");
- _admin_socket->register_command("log flush", "log flush", _admin_hook, "flush log entries to log file");
- _admin_socket->register_command("log dump", "log dump", _admin_hook, "dump recent log entries to log file");
- _admin_socket->register_command("log reopen", "log reopen", _admin_hook, "reopen log file");
+ _admin_socket->register_command("log flush", _admin_hook, "flush log entries to log file");
+ _admin_socket->register_command("log dump", _admin_hook, "dump recent log entries to log file");
+ _admin_socket->register_command("log reopen", _admin_hook, "reopen log file");
_crypto_none = CryptoHandler::create(CEPH_CRYPTO_NONE);
_crypto_aes = CryptoHandler::create(CEPH_CRYPTO_AES);
imagename = ictx->md_ctx.get_pool_name() + "/" + ictx->name;
command = "rbd cache flush " + imagename;
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"flush rbd image " + imagename +
" cache");
if (r == 0) {
}
command = "rbd cache invalidate " + imagename;
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"invalidate rbd image " + imagename +
" cache");
if (r == 0) {
AdminSocket *admin_socket = g_ceph_context->get_admin_socket();
ceph_assert(asok_hook == nullptr);
asok_hook = new MDSSocketHook(this);
- r = admin_socket->register_command("status", "status", asok_hook,
+ r = admin_socket->register_command("status", asok_hook,
"high-level status of MDS");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_ops_in_flight",
- "dump_ops_in_flight", asok_hook,
+ r = admin_socket->register_command("dump_ops_in_flight", asok_hook,
"show the ops currently in flight");
ceph_assert(r == 0);
- r = admin_socket->register_command("ops",
- "ops", asok_hook,
+ r = admin_socket->register_command("ops", asok_hook,
"show the ops currently in flight");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_blocked_ops", "dump_blocked_ops",
+ r = admin_socket->register_command("dump_blocked_ops",
asok_hook,
"show the blocked ops currently in flight");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_historic_ops", "dump_historic_ops",
+ r = admin_socket->register_command("dump_historic_ops",
asok_hook,
"show recent ops");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_historic_ops_by_duration", "dump_historic_ops_by_duration",
+ r = admin_socket->register_command("dump_historic_ops_by_duration",
asok_hook,
"show recent ops, sorted by op duration");
ceph_assert(r == 0);
- r = admin_socket->register_command("scrub_path",
- "scrub_path name=path,type=CephString "
+ r = admin_socket->register_command("scrub_path name=path,type=CephString "
"name=scrubops,type=CephChoices,"
"strings=force|recursive|repair,n=N,req=false",
asok_hook,
"scrub an inode and output results");
ceph_assert(r == 0);
- r = admin_socket->register_command("tag path",
- "tag path name=path,type=CephString"
+ r = admin_socket->register_command("tag path name=path,type=CephString"
" name=tag,type=CephString",
asok_hook,
"Apply scrub tag recursively");
ceph_assert(r == 0);
- r = admin_socket->register_command("flush_path",
- "flush_path name=path,type=CephString",
+ r = admin_socket->register_command("flush_path name=path,type=CephString",
asok_hook,
"flush an inode (and its dirfrags)");
ceph_assert(r == 0);
- r = admin_socket->register_command("export dir",
- "export dir "
+ r = admin_socket->register_command("export dir "
"name=path,type=CephString "
"name=rank,type=CephInt",
asok_hook,
"migrate a subtree to named MDS");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump cache",
- "dump cache name=path,type=CephString,req=false",
+ r = admin_socket->register_command("dump cache name=path,type=CephString,req=false",
asok_hook,
"dump metadata cache (optionally to a file)");
ceph_assert(r == 0);
r = admin_socket->register_command("cache status",
- "cache status",
asok_hook,
"show cache status");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump tree",
- "dump tree "
+ r = admin_socket->register_command("dump tree "
"name=root,type=CephString,req=true "
"name=depth,type=CephInt,req=false ",
asok_hook,
"dump metadata cache for subtree");
ceph_assert(r == 0);
r = admin_socket->register_command("dump loads",
- "dump loads",
asok_hook,
"dump metadata loads");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump snaps",
- "dump snaps name=server,type=CephChoices,strings=--server,req=false",
+ r = admin_socket->register_command("dump snaps name=server,type=CephChoices,strings=--server,req=false",
asok_hook,
"dump snapshots");
ceph_assert(r == 0);
- r = admin_socket->register_command("session evict",
- "session evict name=client_id,type=CephString",
+ r = admin_socket->register_command("session evict name=client_id,type=CephString",
asok_hook,
"Evict a CephFS client");
ceph_assert(r == 0);
r = admin_socket->register_command("session ls",
- "session ls",
asok_hook,
"Enumerate connected CephFS clients");
ceph_assert(r == 0);
- r = admin_socket->register_command("session config",
- "session config name=client_id,type=CephInt,req=true "
+ r = admin_socket->register_command("session config name=client_id,type=CephInt,req=true "
"name=option,type=CephString,req=true "
"name=value,type=CephString,req=false ",
asok_hook,
"Config a CephFS client session");
assert(r == 0);
- r = admin_socket->register_command("osdmap barrier",
- "osdmap barrier name=target_epoch,type=CephInt",
+ r = admin_socket->register_command("osdmap barrier name=target_epoch,type=CephInt",
asok_hook,
"Wait until the MDS has this OSD map epoch");
ceph_assert(r == 0);
r = admin_socket->register_command("flush journal",
- "flush journal",
asok_hook,
"Flush the journal to the backing store");
ceph_assert(r == 0);
r = admin_socket->register_command("force_readonly",
- "force_readonly",
asok_hook,
"Force MDS to read-only mode");
ceph_assert(r == 0);
r = admin_socket->register_command("get subtrees",
- "get subtrees",
asok_hook,
"Return the subtree map");
ceph_assert(r == 0);
- r = admin_socket->register_command("dirfrag split",
- "dirfrag split "
+ r = admin_socket->register_command("dirfrag split "
"name=path,type=CephString,req=true "
"name=frag,type=CephString,req=true "
"name=bits,type=CephInt,req=true ",
asok_hook,
"Fragment directory by path");
ceph_assert(r == 0);
- r = admin_socket->register_command("dirfrag merge",
- "dirfrag merge "
+ r = admin_socket->register_command("dirfrag merge "
"name=path,type=CephString,req=true "
"name=frag,type=CephString,req=true",
asok_hook,
"De-fragment directory by path");
ceph_assert(r == 0);
- r = admin_socket->register_command("dirfrag ls",
- "dirfrag ls "
+ r = admin_socket->register_command("dirfrag ls "
"name=path,type=CephString,req=true",
asok_hook,
"List fragments in directory");
ceph_assert(r == 0);
r = admin_socket->register_command("openfiles ls",
- "openfiles ls",
asok_hook,
"List the opening files and their caps");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump inode",
- "dump inode "
+ r = admin_socket->register_command("dump inode "
"name=number,type=CephInt,req=true",
asok_hook,
"dump inode by inode number");
{
AdminSocket *admin_socket = g_ceph_context->get_admin_socket();
asok_hook = new ClusterSocketHook(this);
- int r = admin_socket->register_command("dump_osd_network",
- "dump_osd_network name=value,type=CephInt,req=false", asok_hook,
- "Dump osd heartbeat network ping times");
+ int r = admin_socket->register_command(
+ "dump_osd_network name=value,type=CephInt,req=false", asok_hook,
+ "Dump osd heartbeat network ping times");
ceph_assert(r == 0);
}
// unlock while registering to avoid mon_lock -> admin socket lock dependency.
l.unlock();
- r = admin_socket->register_command("mon_status", "mon_status", admin_hook,
+ r = admin_socket->register_command("mon_status", admin_hook,
"show current monitor status");
ceph_assert(r == 0);
- r = admin_socket->register_command("quorum_status", "quorum_status",
+ r = admin_socket->register_command("quorum_status",
admin_hook, "show current quorum status");
ceph_assert(r == 0);
- r = admin_socket->register_command("sync_force",
- "sync_force name=validate,"
+ r = admin_socket->register_command("sync_force name=validate,"
"type=CephChoices,"
"strings=--yes-i-really-mean-it",
admin_hook,
"force sync of and clear monitor store");
ceph_assert(r == 0);
- r = admin_socket->register_command("add_bootstrap_peer_hint",
- "add_bootstrap_peer_hint name=addr,"
+ r = admin_socket->register_command("add_bootstrap_peer_hint name=addr,"
"type=CephIPAddr",
admin_hook,
"add peer address as potential bootstrap"
" peer for cluster bringup");
ceph_assert(r == 0);
- r = admin_socket->register_command("add_bootstrap_peer_hintv",
- "add_bootstrap_peer_hintv name=addrv,"
+ r = admin_socket->register_command("add_bootstrap_peer_hintv name=addrv,"
"type=CephString",
admin_hook,
"add peer address vector as potential bootstrap"
" peer for cluster bringup");
ceph_assert(r == 0);
- r = admin_socket->register_command("quorum enter", "quorum enter",
+ r = admin_socket->register_command("quorum enter",
admin_hook,
"force monitor back into quorum");
ceph_assert(r == 0);
- r = admin_socket->register_command("quorum exit", "quorum exit",
+ r = admin_socket->register_command("quorum exit",
admin_hook,
"force monitor out of the quorum");
ceph_assert(r == 0);
r = admin_socket->register_command("ops",
- "ops",
admin_hook,
"show the ops currently in flight");
ceph_assert(r == 0);
r = admin_socket->register_command("sessions",
- "sessions",
admin_hook,
"list existing sessions");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_historic_ops", "dump_historic_ops",
+ r = admin_socket->register_command("dump_historic_ops",
admin_hook,
"show recent ops");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_historic_ops_by_duration", "dump_historic_ops_by_duration",
+ r = admin_socket->register_command("dump_historic_ops_by_duration",
admin_hook,
"show recent ops, sorted by duration");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_historic_slow_ops", "dump_historic_slow_ops",
+ r = admin_socket->register_command("dump_historic_slow_ops",
admin_hook,
"show recent slow ops");
ceph_assert(r == 0);
name = to_string((uintptr_t)this);
}
if (admin_socket) {
- int r = admin_socket->register_command(("bluestore allocator dump " + name).c_str(),
- ("bluestore allocator dump " + name).c_str(),
- this,
- "dump allocator free regions");
+ int r = admin_socket->register_command(
+ ("bluestore allocator dump " + name).c_str(),
+ this,
+ "dump allocator free regions");
if (r != 0)
alloc = nullptr; //some collision, disable
if (alloc) {
- r = admin_socket->register_command(("bluestore allocator score " + name).c_str(),
- ("bluestore allocator score " + name).c_str(),
- this,
- "give score on allocator fragmentation (0-no fragmentation, 1-absolute fragmentation)");
+ r = admin_socket->register_command(
+ ("bluestore allocator score " + name).c_str(),
+ this,
+ "give score on allocator fragmentation (0-no fragmentation, 1-absolute fragmentation)");
ceph_assert(r == 0);
- r = admin_socket->register_command(("bluestore allocator fragmentation " + name).c_str(),
+ r = admin_socket->register_command(
("bluestore allocator fragmentation " + name).c_str(),
this,
"give allocator fragmentation (0-no fragmentation, 1-absolute fragmentation)");
AdminSocket* admin_socket = bluefs->cct->get_admin_socket();
if (admin_socket) {
hook = new BlueFS::SocketHook(bluefs);
- int r = admin_socket->register_command("bluestore bluefs available",
- "bluestore bluefs available "
+ int r = admin_socket->register_command("bluestore bluefs available "
"name=alloc_size,type=CephInt,req=false",
hook,
"Report available space for bluefs. "
{
AdminSocket *admin_socket = cct->get_admin_socket();
asok_hook = new OSDSocketHook(this);
- int r = admin_socket->register_command("status", "status", asok_hook,
+ int r = admin_socket->register_command("status", asok_hook,
"high-level status of OSD");
ceph_assert(r == 0);
- r = admin_socket->register_command("flush_journal", "flush_journal",
+ r = admin_socket->register_command("flush_journal",
asok_hook,
"flush the journal to permanent store");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_ops_in_flight",
- "dump_ops_in_flight " \
+ r = admin_socket->register_command("dump_ops_in_flight " \
"name=filterstr,type=CephString,n=N,req=false",
asok_hook,
"show the ops currently in flight");
ceph_assert(r == 0);
- r = admin_socket->register_command("ops",
- "ops " \
+ r = admin_socket->register_command("ops " \
"name=filterstr,type=CephString,n=N,req=false",
asok_hook,
"show the ops currently in flight");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_blocked_ops",
- "dump_blocked_ops " \
+ r = admin_socket->register_command("dump_blocked_ops " \
"name=filterstr,type=CephString,n=N,req=false",
asok_hook,
"show the blocked ops currently in flight");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_historic_ops",
- "dump_historic_ops " \
+ r = admin_socket->register_command("dump_historic_ops " \
"name=filterstr,type=CephString,n=N,req=false",
asok_hook,
"show recent ops");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_historic_slow_ops",
- "dump_historic_slow_ops " \
+ r = admin_socket->register_command("dump_historic_slow_ops " \
"name=filterstr,type=CephString,n=N,req=false",
asok_hook,
"show slowest recent ops");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_historic_ops_by_duration",
- "dump_historic_ops_by_duration " \
+ r = admin_socket->register_command("dump_historic_ops_by_duration " \
"name=filterstr,type=CephString,n=N,req=false",
asok_hook,
"show slowest recent ops, sorted by duration");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_op_pq_state", "dump_op_pq_state",
+ r = admin_socket->register_command("dump_op_pq_state",
asok_hook,
"dump op priority queue state");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_blacklist", "dump_blacklist",
+ r = admin_socket->register_command("dump_blacklist",
asok_hook,
"dump blacklisted clients and times");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_watchers", "dump_watchers",
+ r = admin_socket->register_command("dump_watchers",
asok_hook,
"show clients which have active watches,"
" and on which objects");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_recovery_reservations", "dump_recovery_reservations",
+ r = admin_socket->register_command("dump_recovery_reservations",
asok_hook,
"show recovery reservations");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_scrub_reservations", "dump_scrub_reservations",
+ r = admin_socket->register_command("dump_scrub_reservations",
asok_hook,
- "show scrub reservations");
+ "show recovery reservations");
ceph_assert(r == 0);
- r = admin_socket->register_command("get_latest_osdmap", "get_latest_osdmap",
+ r = admin_socket->register_command("get_latest_osdmap",
asok_hook,
"force osd to update the latest map from "
"the mon");
ceph_assert(r == 0);
- r = admin_socket->register_command( "heap",
- "heap " \
+ r = admin_socket->register_command( "heap " \
"name=heapcmd,type=CephString " \
"name=value,type=CephString,req=false",
asok_hook,
"compiled with tcmalloc)");
ceph_assert(r == 0);
- r = admin_socket->register_command("set_heap_property",
- "set_heap_property " \
+ r = admin_socket->register_command("set_heap_property " \
"name=property,type=CephString " \
"name=value,type=CephInt",
asok_hook,
"update malloc extension heap property");
ceph_assert(r == 0);
- r = admin_socket->register_command("get_heap_property",
- "get_heap_property " \
+ r = admin_socket->register_command("get_heap_property " \
"name=property,type=CephString",
asok_hook,
"get malloc extension heap property");
ceph_assert(r == 0);
r = admin_socket->register_command("dump_objectstore_kv_stats",
- "dump_objectstore_kv_stats",
asok_hook,
"print statistics of kvdb which used by bluestore");
ceph_assert(r == 0);
r = admin_socket->register_command("dump_scrubs",
- "dump_scrubs",
asok_hook,
"print scheduled scrubs");
ceph_assert(r == 0);
r = admin_socket->register_command("calc_objectstore_db_histogram",
- "calc_objectstore_db_histogram",
asok_hook,
"Generate key value histogram of kvdb(rocksdb) which used by bluestore");
ceph_assert(r == 0);
r = admin_socket->register_command("flush_store_cache",
- "flush_store_cache",
asok_hook,
"Flush bluestore internal cache");
ceph_assert(r == 0);
- r = admin_socket->register_command("dump_pgstate_history", "dump_pgstate_history",
+ r = admin_socket->register_command("dump_pgstate_history",
asok_hook,
"show recent state history");
ceph_assert(r == 0);
- r = admin_socket->register_command("compact", "compact",
+ r = admin_socket->register_command("compact",
asok_hook,
"Commpact object store's omap."
" WARNING: Compaction probably slows your requests");
ceph_assert(r == 0);
- r = admin_socket->register_command("get_mapped_pools", "get_mapped_pools",
+ r = admin_socket->register_command("get_mapped_pools",
asok_hook,
"dump pools whose PG(s) are mapped to this OSD.");
ceph_assert(r == 0);
- r = admin_socket->register_command("smart", "smart name=devid,type=CephString,req=False",
+ r = admin_socket->register_command("smart name=devid,type=CephString,req=False",
asok_hook,
"probe OSD devices for SMART data.");
ceph_assert(r == 0);
- r = admin_socket->register_command("list_devices", "list_devices",
+ r = admin_socket->register_command("list_devices",
asok_hook,
"list OSD devices.");
- r = admin_socket->register_command("send_beacon", "send_beacon",
+ r = admin_socket->register_command("send_beacon",
asok_hook,
"send OSD beacon to mon immediately");
- r = admin_socket->register_command("dump_osd_network", "dump_osd_network name=value,type=CephInt,req=false", asok_hook,
- "Dump osd heartbeat network ping times");
+ r = admin_socket->register_command(
+ "dump_osd_network name=value,type=CephInt,req=false", asok_hook,
+ "Dump osd heartbeat network ping times");
ceph_assert(r == 0);
test_ops_hook = new TestOpsSocketHook(&(this->service), this->store);
// Note: pools are CephString instead of CephPoolname because
// these commands traditionally support both pool names and numbers
r = admin_socket->register_command(
- "setomapval",
"setomapval " \
"name=pool,type=CephString " \
"name=objname,type=CephObjectname " \
"set omap key");
ceph_assert(r == 0);
r = admin_socket->register_command(
- "rmomapkey",
"rmomapkey " \
"name=pool,type=CephString " \
"name=objname,type=CephObjectname " \
"remove omap key");
ceph_assert(r == 0);
r = admin_socket->register_command(
- "setomapheader",
"setomapheader " \
"name=pool,type=CephString " \
"name=objname,type=CephObjectname " \
ceph_assert(r == 0);
r = admin_socket->register_command(
- "getomap",
"getomap " \
"name=pool,type=CephString " \
"name=objname,type=CephObjectname",
ceph_assert(r == 0);
r = admin_socket->register_command(
- "truncobj",
"truncobj " \
"name=pool,type=CephString " \
"name=objname,type=CephObjectname " \
ceph_assert(r == 0);
r = admin_socket->register_command(
- "injectdataerr",
"injectdataerr " \
"name=pool,type=CephString " \
"name=objname,type=CephObjectname " \
ceph_assert(r == 0);
r = admin_socket->register_command(
- "injectmdataerr",
"injectmdataerr " \
"name=pool,type=CephString " \
"name=objname,type=CephObjectname " \
"inject metadata error to an object");
ceph_assert(r == 0);
r = admin_socket->register_command(
- "set_recovery_delay",
"set_recovery_delay " \
"name=utime,type=CephInt,req=false",
test_ops_hook,
"Delay osd recovery by specified seconds");
ceph_assert(r == 0);
r = admin_socket->register_command(
- "trigger_scrub",
"trigger_scrub " \
"name=pgid,type=CephString " \
"name=time,type=CephInt,req=false",
"Trigger a scheduled scrub ");
ceph_assert(r == 0);
r = admin_socket->register_command(
- "trigger_deep_scrub",
"trigger_deep_scrub " \
"name=pgid,type=CephString " \
"name=time,type=CephInt,req=false",
"Trigger a scheduled deep scrub ");
ceph_assert(r == 0);
r = admin_socket->register_command(
- "injectfull",
"injectfull " \
"name=type,type=CephString,req=false " \
"name=count,type=CephInt,req=false ",
m_request_state_hook = new RequestStateHook(this);
AdminSocket* admin_socket = cct->get_admin_socket();
int ret = admin_socket->register_command("objecter_requests",
- "objecter_requests",
m_request_state_hook,
"show in-progress osd requests");
admin_socket->unregister_command(admin_command);
}
admin_command = command;
- int r = admin_socket->register_command(admin_command, admin_command, this,
+ int r = admin_socket->register_command(admin_command, this,
"dump current coroutines stack state");
if (r < 0) {
lderr(cct) << "ERROR: fail to register admin socket command (r=" << r << ")" << dendl;
{
AdminSocket *admin_socket = cct->get_admin_socket();
- admin_commands = { { "sync trace show", "sync trace show name=search,type=CephString,req=false", "sync trace show [filter_str]: show current multisite tracing information" },
- { "sync trace history", "sync trace history name=search,type=CephString,req=false", "sync trace history [filter_str]: show history of multisite tracing information" },
- { "sync trace active", "sync trace active name=search,type=CephString,req=false", "show active multisite sync entities information" },
- { "sync trace active_short", "sync trace active_short name=search,type=CephString,req=false", "show active multisite sync entities entries" } };
+ admin_commands = { { "sync trace show name=search,type=CephString,req=false", "sync trace show [filter_str]: show current multisite tracing information" },
+ { "sync trace history name=search,type=CephString,req=false", "sync trace history [filter_str]: show history of multisite tracing information" },
+ { "sync trace active name=search,type=CephString,req=false", "show active multisite sync entities information" },
+ { "sync trace active_short name=search,type=CephString,req=false", "show active multisite sync entities entries" } };
for (auto cmd : admin_commands) {
- int r = admin_socket->register_command(cmd[0], cmd[1], this,
- cmd[2]);
+ int r = admin_socket->register_command(cmd[0], this,
+ cmd[1]);
if (r < 0) {
lderr(cct) << "ERROR: fail to register admin socket command (r=" << r << ")" << dendl;
return r;
{ "cache list",
"cache list name=filter,type=CephString,req=false",
"cache list [filter_str]: list object cache, possibly matching substrings" },
- { "cache inspect",
- "cache inspect name=target,type=CephString,req=true",
+ { "cache inspect name=target,type=CephString,req=true",
"cache inspect target: print cache element" },
- { "cache erase",
- "cache erase name=target,type=CephString,req=true",
+ { "cache erase name=target,type=CephString,req=true",
"cache erase target: erase element from cache" },
{ "cache zap",
- "cache zap",
"cache zap: erase all elements from cache" }
};
{
auto admin_socket = svc->ctx()->get_admin_socket();
for (auto cmd : admin_commands) {
- int r = admin_socket->register_command(cmd[0], cmd[1], this,
- cmd[2]);
+ int r = admin_socket->register_command(cmd[0], this, cmd[1]);
if (r < 0) {
ldout(svc->ctx(), 0) << "ERROR: fail to register admin socket command (r=" << r
<< ")" << dendl;
ASSERT_EQ(true, asoct.shutdown());
ASSERT_EQ(true, asoct.init(get_rand_socket_path()));
AdminSocketClient client(get_rand_socket_path());
- ASSERT_EQ(0, asoct.m_asokc->register_command("test", "test", my_test_asok.get(), ""));
+ ASSERT_EQ(0, asoct.m_asokc->register_command("test", my_test_asok.get(), ""));
string result;
ASSERT_EQ("", client.do_request("{\"prefix\":\"test\"}", &result));
ASSERT_EQ("test|", result);
ASSERT_EQ(true, asoct.shutdown());
ASSERT_EQ(true, asoct.init(get_rand_socket_path()));
AdminSocketClient client(get_rand_socket_path());
- ASSERT_EQ(0, asoct.m_asokc->register_command("test", "test name=args,type=CephString,n=N", my_test_asok.get(), ""));
- ASSERT_EQ(0, asoct.m_asokc->register_command("test command", "test command name=args,type=CephString,n=N", my_test2_asok.get(), ""));
+ ASSERT_EQ(0, asoct.m_asokc->register_command("test name=args,type=CephString,n=N", my_test_asok.get(), ""));
+ ASSERT_EQ(0, asoct.m_asokc->register_command("test command name=args,type=CephString,n=N", my_test2_asok.get(), ""));
string result;
ASSERT_EQ("", client.do_request("{\"prefix\":\"test\"}", &result));
ASSERT_EQ("test|", result);
{
AdminSocketTest asoct(asokc.get());
BlockingHook *blocking = new BlockingHook();
- ASSERT_EQ(0, asoct.m_asokc->register_command("0", "0", blocking, ""));
+ ASSERT_EQ(0, asoct.m_asokc->register_command("0", blocking, ""));
ASSERT_TRUE(asoct.init(path));
bool ok;
std::string result = client.ping(&ok);
int r;
command = "rbd mirror deletion status " + pool_name;
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"get status for image deleter");
if (r == 0) {
commands[command] = new StatusCommand<I>(image_del);
int register_commands() {
for (auto &it : commands) {
- int r = admin_socket->register_command(it.first, it.first, this,
+ int r = admin_socket->register_command(it.first, this,
it.second->desc);
if (r < 0) {
return r;
int r;
command = "rbd mirror status";
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"get status for rbd mirror");
if (r == 0) {
commands[command] = new StatusCommand(mirror);
}
command = "rbd mirror start";
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"start rbd mirror");
if (r == 0) {
commands[command] = new StartCommand(mirror);
}
command = "rbd mirror stop";
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"stop rbd mirror");
if (r == 0) {
commands[command] = new StopCommand(mirror);
}
command = "rbd mirror restart";
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"restart rbd mirror");
if (r == 0) {
commands[command] = new RestartCommand(mirror);
}
command = "rbd mirror flush";
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"flush rbd mirror");
if (r == 0) {
commands[command] = new FlushCommand(mirror);
}
command = "rbd mirror leader release";
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"release rbd mirror leader");
if (r == 0) {
commands[command] = new LeaderReleaseCommand(mirror);
int r;
command = "rbd mirror status " + name;
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"get status for rbd mirror " + name);
if (r == 0) {
commands[command] = new StatusCommand<I>(pool_replayer);
}
command = "rbd mirror start " + name;
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"start rbd mirror " + name);
if (r == 0) {
commands[command] = new StartCommand<I>(pool_replayer);
}
command = "rbd mirror stop " + name;
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"stop rbd mirror " + name);
if (r == 0) {
commands[command] = new StopCommand<I>(pool_replayer);
}
command = "rbd mirror restart " + name;
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"restart rbd mirror " + name);
if (r == 0) {
commands[command] = new RestartCommand<I>(pool_replayer);
}
command = "rbd mirror flush " + name;
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"flush rbd mirror " + name);
if (r == 0) {
commands[command] = new FlushCommand<I>(pool_replayer);
}
command = "rbd mirror leader release " + name;
- r = admin_socket->register_command(command, command, this,
+ r = admin_socket->register_command(command, this,
"release rbd mirror leader " + name);
if (r == 0) {
commands[command] = new LeaderReleaseCommand<I>(pool_replayer);