From 562089d2a1c216fbe49654da81b64a0f808e3b56 Mon Sep 17 00:00:00 2001 From: John Spray Date: Sat, 4 Feb 2017 21:20:44 +0000 Subject: [PATCH] mgr: expose Objecter to PyModules Same motivation as exposing MonClient: so that modules can get at the command sending code. Signed-off-by: John Spray --- src/mgr/Mgr.cc | 2 +- src/mgr/PyModules.cc | 5 ++++- src/mgr/PyModules.h | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mgr/Mgr.cc b/src/mgr/Mgr.cc index eb6c9a1639b28..fa534aa0b1406 100644 --- a/src/mgr/Mgr.cc +++ b/src/mgr/Mgr.cc @@ -46,7 +46,7 @@ Mgr::Mgr(MonClient *monc_, Messenger *clientm_, Objecter *objecter_, lock("Mgr::lock"), timer(g_ceph_context, lock), finisher(g_ceph_context, "Mgr", "mgr-fin"), - py_modules(daemon_state, cluster_state, *monc, finisher), + py_modules(daemon_state, cluster_state, *monc, *objecter, finisher), cluster_state(monc, nullptr), server(monc, finisher, daemon_state, cluster_state, py_modules, clog_, audit_clog_), diff --git a/src/mgr/PyModules.cc b/src/mgr/PyModules.cc index b8c077ceceea9..0c28ef2e91f11 100644 --- a/src/mgr/PyModules.cc +++ b/src/mgr/PyModules.cc @@ -61,8 +61,11 @@ namespace { #define dout_prefix *_dout << "mgr " << __func__ << " " PyModules::PyModules(DaemonStateIndex &ds, ClusterState &cs, MonClient &mc, + Objecter &objecter_, Finisher &f) - : daemon_state(ds), cluster_state(cs), monc(mc), finisher(f) + : daemon_state(ds), cluster_state(cs), monc(mc), + objecter(objecter_), + finisher(f) {} // we can not have the default destructor in header, because ServeThread is diff --git a/src/mgr/PyModules.h b/src/mgr/PyModules.h index 6c6361a812592..0005dabb1b0b6 100644 --- a/src/mgr/PyModules.h +++ b/src/mgr/PyModules.h @@ -32,6 +32,7 @@ class PyModules DaemonStateIndex &daemon_state; ClusterState &cluster_state; MonClient &monc; + Objecter &objecter; Finisher &finisher; mutable Mutex lock{"PyModules"}; @@ -42,12 +43,14 @@ public: static constexpr auto config_prefix = "mgr."; PyModules(DaemonStateIndex &ds, ClusterState &cs, MonClient &mc, + Objecter &objecter_, Finisher &f); ~PyModules(); // FIXME: wrap for send_command? MonClient &get_monc() {return monc;} + Objecter &get_objecter() {return objecter;} PyObject *get_python(const std::string &what); PyObject *get_server_python(const std::string &hostname); -- 2.39.5