From 96e10e9328832f25e341918e783d3ef91b2c5203 Mon Sep 17 00:00:00 2001 From: John Spray Date: Mon, 25 Jul 2016 17:03:15 +0100 Subject: [PATCH] mds: embed a MgrClient Signed-off-by: John Spray --- src/mds/MDSDaemon.cc | 9 ++++++++- src/mds/MDSDaemon.h | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mds/MDSDaemon.cc b/src/mds/MDSDaemon.cc index c85769e4caa84..e89319dcdbcdc 100644 --- a/src/mds/MDSDaemon.cc +++ b/src/mds/MDSDaemon.cc @@ -122,6 +122,7 @@ MDSDaemon::MDSDaemon(const std::string &n, Messenger *m, MonClient *mc) : name(n), messenger(m), monc(mc), + mgrc(m->cct, m), log_client(m->cct, messenger, &mc->monmap, LogClient::NO_FLAGS), mds_rank(NULL), tick_event(0), @@ -470,7 +471,8 @@ int MDSDaemon::init() // get monmap monc->set_messenger(messenger); - monc->set_want_keys(CEPH_ENTITY_TYPE_MON | CEPH_ENTITY_TYPE_OSD | CEPH_ENTITY_TYPE_MDS); + monc->set_want_keys(CEPH_ENTITY_TYPE_MON | CEPH_ENTITY_TYPE_OSD | + CEPH_ENTITY_TYPE_MDS | CEPH_ENTITY_TYPE_MGR); int r = 0; r = monc->init(); if (r < 0) { @@ -509,6 +511,9 @@ int MDSDaemon::init() return -ETIMEDOUT; } + mgrc.init(); + messenger->add_dispatcher_head(&mgrc); + mds_lock.Lock(); if (beacon.get_want_state() == CEPH_MDS_STATE_DNE) { dout(4) << __func__ << ": terminated already, dropping out" << dendl; @@ -517,6 +522,7 @@ int MDSDaemon::init() } monc->sub_want("mdsmap", 0, 0); + monc->sub_want("mgrmap", 0, 0); monc->renew_subs(); mds_lock.Unlock(); @@ -1089,6 +1095,7 @@ void MDSDaemon::suicide() } else { timer.shutdown(); + mgrc.shutdown(); monc->shutdown(); messenger->shutdown(); } diff --git a/src/mds/MDSDaemon.h b/src/mds/MDSDaemon.h index c940ec682fac8..375cf8abaaec5 100644 --- a/src/mds/MDSDaemon.h +++ b/src/mds/MDSDaemon.h @@ -32,6 +32,7 @@ #include "common/TrackedOp.h" #include "common/Finisher.h" #include "common/cmdparse.h" +#include "mgr/MgrClient.h" #include "MDSRank.h" #include "MDSMap.h" @@ -81,6 +82,7 @@ class MDSDaemon : public Dispatcher, public md_config_obs_t { Messenger *messenger; MonClient *monc; + MgrClient mgrc; MDSMap *mdsmap; LogClient log_client; LogChannelRef clog; -- 2.39.5