mon: Monitor: use 'ceph mon compact' instead of 'ceph compact'

Makes it easier to identify the command as being related with the
monitor instead of cluster-wide.

This entails adding an exception to module 'mon' in order to have this
command handled by the Monitor class instead of MonmapMonitor (which is
the one traditionally handling 'mon' module commands).

Fixes: #11545

Signed-off-by: Joao Eduardo Luis <joao@suse.de>
This commit is contained in:
Joao Eduardo Luis 2015-05-09 00:06:35 +01:00
parent 66e7510cad
commit 16dcc40cfa
2 changed files with 13 additions and 2 deletions

View File

@ -274,6 +274,15 @@ COMMAND_WITH_FLAG("version", "show mon daemon version", "mon", "r", "cli,rest",
COMMAND("node ls " \
"name=type,type=CephChoices,strings=all|osd|mon|mds,req=false",
"list all nodes in cluster [type]", "mon", "r", "cli,rest")
/*
* Monitor-specific commands under module 'mon'
*/
COMMAND_WITH_FLAG("mon compact", \
"cause compaction of monitor's leveldb storage", \
"mon", "rw", "cli,rest", \
FLAG(NOFORWARD))
/*
* MDS commands (MDSMonitor.cc)
*/

View File

@ -2692,7 +2692,9 @@ void Monitor::handle_command(MMonCommand *m)
pgmon()->dispatch(m);
return;
}
if (module == "mon") {
if (module == "mon" &&
/* 'mon compact' will be handled by the Monitor class */
prefix != "mon compact") {
monmon()->dispatch(m);
return;
}
@ -2737,7 +2739,7 @@ void Monitor::handle_command(MMonCommand *m)
return;
}
if (prefix == "compact") {
if (prefix == "compact" || prefix == "mon compact") {
dout(1) << "triggering manual compaction" << dendl;
utime_t start = ceph_clock_now(g_ceph_context);
store->compact();