584 |
584 |
"""RPC runner class.
|
585 |
585 |
|
586 |
586 |
"""
|
587 |
|
def __init__(self, context):
|
|
587 |
def __init__(self, cfg, lock_monitor_cb, _req_process_fn=None, _getents=None):
|
588 |
588 |
"""Initialized the RPC runner.
|
589 |
589 |
|
590 |
|
@type context: C{masterd.GanetiContext}
|
591 |
|
@param context: Ganeti context
|
|
590 |
@type cfg: L{config.ConfigWriter}
|
|
591 |
@param cfg: Configuration
|
|
592 |
@type lock_monitor_cb: callable
|
|
593 |
@param lock_monitor_cb: Lock monitor callback
|
592 |
594 |
|
593 |
595 |
"""
|
594 |
|
self._cfg = context.cfg
|
|
596 |
self._cfg = cfg
|
595 |
597 |
|
596 |
598 |
encoders = _ENCODERS.copy()
|
597 |
599 |
|
... | ... | |
603 |
605 |
})
|
604 |
606 |
|
605 |
607 |
# Resolver using configuration
|
606 |
|
resolver = compat.partial(_NodeConfigResolver, self._cfg.GetNodeInfo,
|
607 |
|
self._cfg.GetAllNodesInfo)
|
|
608 |
resolver = compat.partial(_NodeConfigResolver, cfg.GetNodeInfo,
|
|
609 |
cfg.GetAllNodesInfo)
|
608 |
610 |
|
609 |
611 |
# Pylint doesn't recognize multiple inheritance properly, see
|
610 |
612 |
# <http://www.logilab.org/ticket/36586> and
|
611 |
613 |
# <http://www.logilab.org/ticket/35642>
|
612 |
614 |
# pylint: disable=W0233
|
613 |
615 |
_RpcClientBase.__init__(self, resolver, encoders.get,
|
614 |
|
lock_monitor_cb=context.glm.AddToLockMonitor)
|
|
616 |
lock_monitor_cb=lock_monitor_cb,
|
|
617 |
_req_process_fn=_req_process_fn)
|
615 |
618 |
_generated_rpc.RpcClientConfig.__init__(self)
|
616 |
619 |
_generated_rpc.RpcClientBootstrap.__init__(self)
|
617 |
620 |
_generated_rpc.RpcClientDefault.__init__(self)
|