From a0a4f653c1afb9eedae9fa530778b157c3708600 Mon Sep 17 00:00:00 2001 From: Mark Huang Date: Tue, 28 Nov 2006 19:44:10 +0000 Subject: [PATCH] - dynamically load, start, and callback into modules --- nm.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/nm.py b/nm.py index 47eb575..e44f78f 100644 --- a/nm.py +++ b/nm.py @@ -22,19 +22,13 @@ parser.add_option('-k', '--session', action='store', dest='session', default='/e parser.add_option('-p', '--period', action='store', dest='period', default=600, help='Polling interval (sec)') (options, args) = parser.parse_args() -# XXX - awaiting a real implementation -data = [] modules = [] def GetSlivers(plc): data = plc.GetSlivers() - - for mod in modules: mod.GetSlivers_callback(data) - -def start_and_register_callback(mod, config): - mod.start(options, config) - modules.append(mod) - + for module in modules: + callback = getattr(module, 'GetSlivers') + callback(data) def run(): try: @@ -51,13 +45,14 @@ def run(): except OSError, err: print "Warning while writing PID file:", err - try: - import sm - start_and_register_callback(sm, config) - import conf_files - start_and_register_callback(conf_files, config) - except ImportError, err: - print "Warning while registering callbacks:", err + # Load and start modules + for module in ['net', 'sm', 'conf_files']: + try: + m = __import__(module) + m.start(options, config) + modules.append(m) + except ImportError, err: + print "Warning while loading module %s:" % module, err # Load /etc/planetlab/session if os.path.exists(options.session): -- 2.43.0