diff options
author | Eugeni Dodonov <eugeni@mandriva.org> | 2009-02-05 21:19:26 +0000 |
---|---|---|
committer | Eugeni Dodonov <eugeni@mandriva.org> | 2009-02-05 21:19:26 +0000 |
commit | 5931a0b6c4197e7c9801a7f156a63966a06cf099 (patch) | |
tree | 2e56ac45e0d3321a2dea57604ac1829e27dc2374 /src/msec/libmsec.py | |
parent | d424120e150c2b10b44202c3cb3cd49424ef401c (diff) | |
download | msec-5931a0b6c4197e7c9801a7f156a63966a06cf099.tar msec-5931a0b6c4197e7c9801a7f156a63966a06cf099.tar.gz msec-5931a0b6c4197e7c9801a7f156a63966a06cf099.tar.bz2 msec-5931a0b6c4197e7c9801a7f156a63966a06cf099.tar.xz msec-5931a0b6c4197e7c9801a7f156a63966a06cf099.zip |
Added initial support for plugins.
Diffstat (limited to 'src/msec/libmsec.py')
-rwxr-xr-x | src/msec/libmsec.py | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/msec/libmsec.py b/src/msec/libmsec.py index 98a022d..b1448a8 100755 --- a/src/msec/libmsec.py +++ b/src/msec/libmsec.py @@ -721,6 +721,9 @@ class MSEC: self.configfiles.add_config_assoc(SYSLOGCONF, '[ -f /var/lock/subsys/syslog ] && service syslog reload') self.configfiles.add_config_assoc('^/etc/issue$', '/usr/bin/killall mingetty') + # plugins + self.plugins = {} + def reset(self): """Resets the configuration""" self.log.debug("Resetting msec data.") @@ -728,10 +731,30 @@ class MSEC: def get_action(self, name): """Determines correspondent function for requested action.""" + # finding out what function to call + try: + plugin, callback = name.split(".", 1) + except: + # bad format? + self.log.error(_("Invalid callback: %s") % (name)) + return None + + # is it a main function or a plugin? + if plugin == config.MAIN_LIB: + plugin_ = self + else: + if plugin in self.plugins: + plugin_ = self.plugins[plugin] + else: + self.log.info(_("Plugin %s not found") % plugin) + return self.log.info + return None try: - func = getattr(self, name) + func = getattr(plugin_, callback) return func except: + self.log.info(_("Not supported function '%s' in '%s'") % (callback, plugin)) + traceback.print_exc() return None def commit(self, really_commit=True): |