From 4e78d68029311a5f541ebf71efda91f3449c66d6 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Tue, 24 Nov 2020 18:00:00 -0600 Subject: Make ModuleManager something everyone can access --- ncserver/base/modman.py | 4 ++++ ncserver/server.py | 17 ++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ncserver/base/modman.py b/ncserver/base/modman.py index a47fa3e..d8659a2 100644 --- a/ncserver/base/modman.py +++ b/ncserver/base/modman.py @@ -325,3 +325,7 @@ class ModuleManager: raise error.OperationNotSupportedAppError(rpc) self.logger.debug('Dispatching edit-config to %s', module.M_NAME) module.edit(session, rpc, child, def_op) + + +MODMAN = ModuleManager() +"""The global module manager instance.""" diff --git a/ncserver/server.py b/ncserver/server.py index 173d165..bbccec7 100644 --- a/ncserver/server.py +++ b/ncserver/server.py @@ -22,7 +22,7 @@ from netconf.server import NetconfSSHServer, SSHAuthorizedKeysController from ncserver.base.log import configure_logging, LOG_AUTH, LOG_CONFIG, \ LOG_OPERATIONAL -from ncserver.base.modman import ModuleManager +from ncserver.base.modman import MODMAN from ncserver.base.util import user_for_session from ncserver.config import ConfigManager @@ -104,9 +104,8 @@ class Server: self.auth, self, port, self.config.get('server', 'host_key'), self.debug ) - self.modman = ModuleManager() for module in self.config.get_list('server', 'modules'): - self.modman.load_module(module) + MODMAN.load_module(module) def __getattr__(self, attr): """Maybe pass RPC calls on.""" @@ -126,7 +125,7 @@ class Server: # Filter with XPath in addition to subtrees. 'urn:ietf:params:netconf:capability:xpath:1.0' ] - for capab in self.modman.capabilities(): + for capab in MODMAN.capabilities(): util.subelm(capabilities, 'capability').text = capab for capab in our_capabs: util.subelm(capabilities, 'capability').text = capab @@ -138,9 +137,9 @@ class Server: 'RPC %s invoked by %s on session %d', name, user_for_session(session), session.session_id ) - if self.modman.has_rpc(name): + if MODMAN.has_rpc(name): try: - result = self.modman.rpc(name)(session, rpc, *params) + result = MODMAN.rpc(name)(session, rpc, *params) LOG_OPERATIONAL.info( 'RPC %s invoked by %s on session %d completed', name, user_for_session(session), session.session_id @@ -164,7 +163,7 @@ class Server: """Handle the RPC.""" log_read(session, rpc) root = util.elm('nc:data') - self.modman.collect_operational(root) + MODMAN.collect_operational(root) return util.filter_results(rpc, root, filter_or_none, self.debug) @@ -173,7 +172,7 @@ class Server: """Handle the RPC.""" log_read(session, rpc) root = util.elm('nc:data') - self.modman.collect_running(root) + MODMAN.collect_running(root) return util.filter_results(rpc, root, filter_or_none, self.debug) @@ -196,7 +195,7 @@ class Server: else: def_op = default_or_none.text - self.modman.collect_edit(session, rpc, config, def_op) + MODMAN.collect_edit(session, rpc, config, def_op) root = util.elm('nc:ok') return root -- cgit v1.2.3-70-g09d2