diff options
| author | Barry Warsaw | 2012-07-03 10:36:39 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2012-07-03 10:36:39 -0400 |
| commit | 01415190ab44e69a8f09a6411564a7cb288404e8 (patch) | |
| tree | 869503cb83afa74a17446363a6dbda5ba62d2b8d /src/mailman/core/switchboard.py | |
| parent | 3c8a07fc76176a8ea89ee6b73aef571d0b2c81ed (diff) | |
| parent | 011677d7457f1d4c9cea3b030c8a50e941657812 (diff) | |
| download | mailman-01415190ab44e69a8f09a6411564a7cb288404e8.tar.gz mailman-01415190ab44e69a8f09a6411564a7cb288404e8.tar.zst mailman-01415190ab44e69a8f09a6411564a7cb288404e8.zip | |
* `passlib`_ is now used for all password hashing instead of flufl.password.
The default hash is `sha512_crypt`. (LP: #1015758)
* Events renamed and moved:
* `mailman.chains.accept.AcceptNotification`
* `mailman.chains.base.ChainNotification`
* `mailman.chains.discard.DiscardNotification`
* `mailman.chains.hold.HoldNotification`
* `mailman.chains.owner.OwnerNotification`
* `mailman.chains.reject.RejectNotification`
changed to (respectively):
* `mailman.interfaces.chains.AcceptEvent`
* `mailman.interfaces.chains.ChainEvent`
* `mailman.interfaces.chains.DiscardEvent`
* `mailman.interfaces.chains.HoldEvent`
* `mailman.interfaces.chains.AcceptOwnerEvent`
* `mailman.interfaces.chains.RejectEvent`
* A `ConfigurationUpdatedEvent` is triggered when the system-wide global
configuration stack is pushed or popped.
* With the switch to `passlib`_, `[passwords]password_scheme` has been
removed. Instead use `[passwords]path` to specify where to find the
`passlib.cfg` file. See the comments in `schema.cfg` for details.
Diffstat (limited to 'src/mailman/core/switchboard.py')
| -rw-r--r-- | src/mailman/core/switchboard.py | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/mailman/core/switchboard.py b/src/mailman/core/switchboard.py index c65b92fac..1f16cb5fb 100644 --- a/src/mailman/core/switchboard.py +++ b/src/mailman/core/switchboard.py @@ -29,6 +29,7 @@ from __future__ import absolute_import, print_function, unicode_literals __metaclass__ = type __all__ = [ 'Switchboard', + 'handle_ConfigurationUpdatedEvent', ] @@ -44,6 +45,7 @@ from zope.interface import implementer from mailman.config import config from mailman.email.message import Message +from mailman.interfaces.configuration import ConfigurationUpdatedEvent from mailman.interfaces.switchboard import ISwitchboard from mailman.utilities.filesystem import makedirs from mailman.utilities.string import expand @@ -67,18 +69,6 @@ elog = logging.getLogger('mailman.error') class Switchboard: """See `ISwitchboard`.""" - @staticmethod - def initialize(): - """Initialize the global switchboards for input/output.""" - for conf in config.runner_configs: - name = conf.name.split('.')[-1] - assert name not in config.switchboards, ( - 'Duplicate runner name: {0}'.format(name)) - substitutions = config.paths - substitutions['name'] = name - path = expand(conf.path, substitutions) - config.switchboards[name] = Switchboard(name, path) - def __init__(self, name, queue_directory, slice=None, numslices=1, recover=False): """Create a switchboard object. @@ -264,3 +254,19 @@ class Switchboard: self.finish(filebase, preserve=True) else: os.rename(src, dst) + + + +def handle_ConfigurationUpdatedEvent(event): + """Initialize the global switchboards for input/output.""" + if not isinstance(event, ConfigurationUpdatedEvent): + return + config = event.config + for conf in config.runner_configs: + name = conf.name.split('.')[-1] + assert name not in config.switchboards, ( + 'Duplicate runner name: {0}'.format(name)) + substitutions = config.paths + substitutions['name'] = name + path = expand(conf.path, substitutions) + config.switchboards[name] = Switchboard(name, path) |
