]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mon: allow asok commands to return an error code
authorSage Weil <sage@redhat.com>
Fri, 11 Oct 2019 00:03:08 +0000 (19:03 -0500)
committerSage Weil <sage@redhat.com>
Fri, 11 Oct 2019 14:33:51 +0000 (09:33 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/Monitor.cc
src/mon/Monitor.h

index 534b85cad80f1e13067ca3279c3a574698af7aa0..a4f6def716cad7d7d9b909afe54f85f5b291049e 100644 (file)
@@ -271,13 +271,13 @@ public:
           std::ostream& errss,
           bufferlist& out) override {
     stringstream outss;
-    mon->do_admin_command(command, cmdmap, f, errss, outss);
+    int r = mon->do_admin_command(command, cmdmap, f, errss, outss);
     out.append(outss);
-    return 0;
+    return r;
   }
 };
 
-void Monitor::do_admin_command(
+int Monitor::do_admin_command(
   std::string_view command,
   const cmdmap_t& cmdmap,
   Formatter *f,
@@ -286,6 +286,7 @@ void Monitor::do_admin_command(
 {
   std::lock_guard l(lock);
 
+  int r = 0;
   string args;
   for (auto p = cmdmap.begin();
        p != cmdmap.end(); ++p) {
@@ -405,7 +406,7 @@ void Monitor::do_admin_command(
     << "entity='admin socket' "
     << "cmd=" << command << " "
     << "args=" << args << ": finished";
-  return;
+  return r;
 
 abort:
   (read_only ? audit_clog->debug() : audit_clog->info())
@@ -413,6 +414,7 @@ abort:
     << "entity='admin socket' "
     << "cmd=" << command << " "
     << "args=" << args << ": aborted";
+  return r;
 }
 
 void Monitor::handle_signal(int signum)
index 81a653edfdfbf456184bc692f945e6a46059fc18..294fbe3b7e6504a01b04bed034f723de28f680c9 100644 (file)
@@ -988,10 +988,10 @@ private:
   int write_fsid();
   int write_fsid(MonitorDBStore::TransactionRef t);
 
-  void do_admin_command(std::string_view command, const cmdmap_t& cmdmap,
-                       Formatter *f,
-                       std::ostream& err,
-                       std::ostream& out);
+  int do_admin_command(std::string_view command, const cmdmap_t& cmdmap,
+                      Formatter *f,
+                      std::ostream& err,
+                      std::ostream& out);
 
 private:
   // don't allow copying