]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: split prepare_command in two
authorLoic Dachary <loic@dachary.org>
Wed, 12 Feb 2014 15:45:40 +0000 (16:45 +0100)
committerLoic Dachary <loic@dachary.org>
Thu, 13 Feb 2014 08:45:55 +0000 (09:45 +0100)
So that it is possible to call prepare_command without a session
established and a cmdmap that has already been parsed.

Signed-off-by: Loic Dachary <loic@dachary.org>
src/mon/OSDMonitor.cc
src/mon/OSDMonitor.h

index a3ff89abedcbbdd585ec0d56576586730361cb52..eea7bcb7d6a104cb827a0859a29d5481addf0daa 100644 (file)
@@ -3230,12 +3230,7 @@ int OSDMonitor::prepare_command_pool_set(map<string,cmd_vartype> &cmdmap,
 
 bool OSDMonitor::prepare_command(MMonCommand *m)
 {
-  bool ret = false;
   stringstream ss;
-  string rs;
-  bufferlist rdata;
-  int err = 0;
-
   map<string, cmd_vartype> cmdmap;
   if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
     string rs = ss.str();
@@ -3243,16 +3238,28 @@ bool OSDMonitor::prepare_command(MMonCommand *m)
     return true;
   }
 
-  string format;
-  cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain"));
-  boost::scoped_ptr<Formatter> f(new_formatter(format));
-
   MonSession *session = m->get_session();
   if (!session) {
     mon->reply_command(m, -EACCES, "access denied", get_last_committed());
     return true;
   }
 
+  return prepare_command_impl(m, cmdmap);
+}
+
+bool OSDMonitor::prepare_command_impl(MMonCommand *m,
+                                     map<string,cmd_vartype> &cmdmap)
+{
+  bool ret = false;
+  stringstream ss;
+  string rs;
+  bufferlist rdata;
+  int err = 0;
+
+  string format;
+  cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain"));
+  boost::scoped_ptr<Formatter> f(new_formatter(format));
+
   string prefix;
   cmd_getval(g_ceph_context, cmdmap, "prefix", prefix);
 
index fc225d5ed70c14fdfba21397c3c1f83835e50109..73f8a9a26300cd71ea70c2c0b6e134f019c7d7d5 100644 (file)
@@ -348,6 +348,7 @@ private:
                  list<pair<health_status_t,string> > *detail) const;
   bool preprocess_command(MMonCommand *m);
   bool prepare_command(MMonCommand *m);
+  bool prepare_command_impl(MMonCommand *m, map<string,cmd_vartype> &cmdmap);
 
   int prepare_command_pool_set(map<string,cmd_vartype> &cmdmap,
                                stringstream& ss);