]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MgrMonitor: feed our MgrClient MgrMaps
authorSage Weil <sage@redhat.com>
Sat, 25 Feb 2017 03:28:25 +0000 (22:28 -0500)
committerSage Weil <sage@redhat.com>
Wed, 29 Mar 2017 15:39:25 +0000 (11:39 -0400)
We don't have a MonClient so we don't subscribe to these in the
usual way.  This will do.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/MgrMonitor.cc

index d9cee80b463fc2ba15c026fe63c95d14066c5d04..871478a7b3e67c08df787dbf96a3e4676b8dabcd 100644 (file)
@@ -33,23 +33,24 @@ void MgrMonitor::create_initial()
 void MgrMonitor::update_from_paxos(bool *need_bootstrap)
 {
   version_t version = get_last_committed();
-  if (version == map.epoch) {
-    return;
-  }
+  if (version != map.epoch) {
+    dout(4) << "loading version " << version << dendl;
 
-  dout(4) << "loading version " << version << dendl;
+    bufferlist bl;
+    int err = get_version(version, bl);
+    assert(err == 0);
 
-  bufferlist bl;
-  int err = get_version(version, bl);
-  assert(err == 0);
+    bufferlist::iterator p = bl.begin();
+    map.decode(p);
 
-  bufferlist::iterator p = bl.begin();
-  map.decode(p);
+    dout(4) << "active server: " << map.active_addr
+           << "(" << map.active_gid << ")" << dendl;
 
-  dout(4) << "active server: " << map.active_addr
-          << "(" << map.active_gid << ")" << dendl;
+    check_subs();
+  }
 
-  check_subs();
+  // feed our pet MgrClient
+  mon->mgr_client.ms_dispatch(new MMgrMap(map));
 }
 
 void MgrMonitor::create_pending()