Changeset View
Changeset View
Standalone View
Standalone View
wallace/modules.py
Show First 20 Lines • Show All 127 Lines • ▼ Show 20 Lines | if 'function' not in modules[name] and 'group' not in modules[name]: | ||||
sys.exit(1) | sys.exit(1) | ||||
try: | try: | ||||
return modules[name]['function'](*args, **kw) | return modules[name]['function'](*args, **kw) | ||||
except Exception as errmsg: | except Exception as errmsg: | ||||
log.exception(_("Module %r - Unknown error occurred; %r") % (name, errmsg)) | log.exception(_("Module %r - Unknown error occurred; %r") % (name, errmsg)) | ||||
def heartbeat(name, *args, **kw): | def heartbeat(name, *args, **kw): | ||||
if not modules.has_key(name): | if name not in modules: | ||||
log.warning(_("No such module %r in modules %r (1).") % (name, modules)) | log.warning(_("No such module %r in modules %r (1).") % (name, modules)) | ||||
if modules[name].has_key('heartbeat'): | if 'heartbeat' in modules[name]: | ||||
return modules[name]['heartbeat'](*args, **kw) | return modules[name]['heartbeat'](*args, **kw) | ||||
def _sendmail(sender, recipients, msg): | def _sendmail(sender, recipients, msg): | ||||
# NOTE: Use "127.0.0.1" here for IPv6 (see also the service | # NOTE: Use "127.0.0.1" here for IPv6 (see also the service | ||||
# definition in master.cf). | # definition in master.cf). | ||||
sl = pykolab.logger.StderrToLogger(log) | sl = pykolab.logger.StderrToLogger(log) | ||||
smtplib.stderr = sl | smtplib.stderr = sl | ||||
▲ Show 20 Lines • Show All 273 Lines • ▼ Show 20 Lines | def register(name, func, group=None, description=None, aliases=[], heartbeat=None): | ||||
if not group == None: | if not group == None: | ||||
module = "%s_%s" % (group,name) | module = "%s_%s" % (group,name) | ||||
else: | else: | ||||
module = name | module = name | ||||
if isinstance(aliases, basestring): | if isinstance(aliases, basestring): | ||||
aliases = [aliases] | aliases = [aliases] | ||||
if modules.has_key(module): | if module in modules: | ||||
log.fatal(_("Module '%s' already registered") % (module)) | log.fatal(_("Module '%s' already registered") % (module)) | ||||
sys.exit(1) | sys.exit(1) | ||||
if callable(func): | if callable(func): | ||||
if group == None: | if group == None: | ||||
modules[name] = { | modules[name] = { | ||||
'function': func, | 'function': func, | ||||
'description': description | 'description': description | ||||
Show All 19 Lines |