From: Joao Eduardo Luis Date: Fri, 8 May 2015 18:02:58 +0000 (+0100) Subject: mon: Monitor: add support to have OBSOLETE commands X-Git-Tag: v9.0.3~21^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5b2a4eb8654db594109cb172a3c5eb3597aa5b00;p=ceph.git mon: Monitor: add support to have OBSOLETE commands Signed-off-by: Joao Eduardo Luis --- diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 96b48abe1a35..126588e037f5 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -109,6 +109,7 @@ * * NONE - no flag assigned * NOFORWARD - command may not be forwarded + * OBSOLETE - command is considered obsolete */ /* diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 9bc21e946f39..298624e6228b 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -2635,6 +2635,13 @@ void Monitor::handle_command(MMonCommand *m) } } + if (mon_cmd->is_obsolete()) { + reply_command(m, -ENOTSUP, + "command is obsolete; please check usage and/or man page", + 0); + return; + } + if (session->proxy_con && mon_cmd->has_flag(MonCommand::FLAG_NOFORWARD)) { dout(10) << "Got forward for noforward command " << m << dendl; reply_command(m, -EINVAL, "forward for noforward command", rdata, 0); diff --git a/src/mon/Monitor.h b/src/mon/Monitor.h index 1dbe8c858ded..585e8f3f1bf8 100644 --- a/src/mon/Monitor.h +++ b/src/mon/Monitor.h @@ -948,6 +948,7 @@ struct MonCommand { // MonCommand flags static const uint64_t FLAG_NONE = 0; static const uint64_t FLAG_NOFORWARD = 1 << 0; + static const uint64_t FLAG_OBSOLETE = 1 << 1; bool has_flag(uint64_t flag) const { return (flags & flag) != 0; } void set_flag(uint64_t flag) { flags |= flag; } @@ -978,6 +979,9 @@ struct MonCommand { availability == o->availability; } + bool is_obsolete() const { + return has_flag(MonCommand::FLAG_OBSOLETE); + } static void encode_array(const MonCommand *cmds, int size, bufferlist &bl) { ENCODE_START(2, 1, bl); uint16_t s = size;