]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MDSMonitor: add "mds repaired"
authorJohn Spray <john.spray@redhat.com>
Mon, 16 Mar 2015 01:02:03 +0000 (01:02 +0000)
committerJohn Spray <john.spray@redhat.com>
Mon, 23 Mar 2015 10:55:08 +0000 (10:55 +0000)
For clearing an MDS rank out of `damaged`

Signed-off-by: John Spray <john.spray@redhat.com>
src/mon/MDSMonitor.cc
src/mon/MonCommands.h

index eaab48da6b2a4505e241188ae01ef2f14e6bb409..6c4d13c9edaa784cce944772461e53fbdbbd207d 100644 (file)
@@ -1503,6 +1503,17 @@ int MDSMonitor::filesystem_command(
       return -EAGAIN; // don't propose yet; wait for message to be retried
     }
 
+  } else if (prefix == "mds repaired") {
+    mds_rank_t rank;
+    cmd_getval(g_ceph_context, cmdmap, "rank", rank);
+    if (pending_mdsmap.damaged.count(rank)) {
+      dout(4) << "repaired: restoring rank " << rank << dendl;
+      pending_mdsmap.damaged.erase(rank);
+      pending_mdsmap.failed.insert(rank);
+    } else {
+      dout(4) << "repaired: no-op on rank " << rank << dendl;
+    }
+    r = 0;
   } else if (prefix == "mds rm") {
     mds_gid_t gid;
     if (!cmd_getval(g_ceph_context, cmdmap, "gid", gid)) {
index cdb6b68d8ce5f2c96ab7c84fa96a01a52ee5d028..0bfa1fc23e8913215971242f7edba9e6a77be08b 100644 (file)
@@ -295,6 +295,8 @@ COMMAND("mds set_state " \
        "set mds state of <gid> to <numeric-state>", "mds", "rw", "cli,rest")
 COMMAND("mds fail name=who,type=CephString", \
        "force mds to status failed", "mds", "rw", "cli,rest")
+COMMAND("mds repaired name=rank,type=CephInt", \
+       "mark a damaged MDS rank as no longer damaged", "mds", "rw", "cli,rest")
 COMMAND("mds rm " \
        "name=gid,type=CephInt,range=0 " \
        "name=who,type=CephName", \