diff --git a/lib/rpc.py b/lib/rpc.py index bf854046f7ebda156b2cecab0c325700508a3562..954beb7d62d031cd1c4741d7d14cc3e37bbca233 100644 --- a/lib/rpc.py +++ b/lib/rpc.py @@ -584,14 +584,16 @@ class RpcRunner(_RpcClientBase, """RPC runner class. """ - def __init__(self, context): + def __init__(self, cfg, lock_monitor_cb, _req_process_fn=None, _getents=None): """Initialized the RPC runner. - @type context: C{masterd.GanetiContext} - @param context: Ganeti context + @type cfg: L{config.ConfigWriter} + @param cfg: Configuration + @type lock_monitor_cb: callable + @param lock_monitor_cb: Lock monitor callback """ - self._cfg = context.cfg + self._cfg = cfg encoders = _ENCODERS.copy() @@ -603,15 +605,16 @@ class RpcRunner(_RpcClientBase, }) # Resolver using configuration - resolver = compat.partial(_NodeConfigResolver, self._cfg.GetNodeInfo, - self._cfg.GetAllNodesInfo) + resolver = compat.partial(_NodeConfigResolver, cfg.GetNodeInfo, + cfg.GetAllNodesInfo) # Pylint doesn't recognize multiple inheritance properly, see # <http://www.logilab.org/ticket/36586> and # <http://www.logilab.org/ticket/35642> # pylint: disable=W0233 _RpcClientBase.__init__(self, resolver, encoders.get, - lock_monitor_cb=context.glm.AddToLockMonitor) + lock_monitor_cb=lock_monitor_cb, + _req_process_fn=_req_process_fn) _generated_rpc.RpcClientConfig.__init__(self) _generated_rpc.RpcClientBootstrap.__init__(self) _generated_rpc.RpcClientDefault.__init__(self) diff --git a/lib/server/masterd.py b/lib/server/masterd.py index ed294adeedfc771673d51a74bd094770fa9a8538..41df24edeeef710b6d6f850e7332399c6d054547 100644 --- a/lib/server/masterd.py +++ b/lib/server/masterd.py @@ -469,7 +469,7 @@ class GanetiContext(object): self.cfg.SetContext(self) # RPC runner - self.rpc = rpc.RpcRunner(self) + self.rpc = rpc.RpcRunner(self.cfg, self.glm.AddToLockMonitor) # Job queue self.jobqueue = jqueue.JobQueue(self)