From 16dcc40cfa82a843a7c615ade3eec07a15cf3b31 Mon Sep 17 00:00:00 2001 From: Joao Eduardo Luis Date: Sat, 9 May 2015 00:06:35 +0100 Subject: [PATCH] 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 --- src/mon/MonCommands.h | 9 +++++++++ src/mon/Monitor.cc | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 918db816e4c71..521b33f9749a0 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -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) */ diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index ac1af1e5998f9..5b8de2574668c 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -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(); -- 2.39.5