diff options
| author | Barry Warsaw | 2015-01-04 20:20:33 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2015-01-04 20:20:33 -0500 |
| commit | 4a612db8e89afed74173b93f3b64fa567b8417a3 (patch) | |
| tree | 81a687d113079a25f93279f35c7eee2aa2572510 /src/mailman/core/runner.py | |
| parent | 84af79988a4e916604cba31843778206efb7d1b8 (diff) | |
| parent | de181c1a40965a3a7deedd56a034a946f45b6984 (diff) | |
| download | mailman-4a612db8e89afed74173b93f3b64fa567b8417a3.tar.gz mailman-4a612db8e89afed74173b93f3b64fa567b8417a3.tar.zst mailman-4a612db8e89afed74173b93f3b64fa567b8417a3.zip | |
Diffstat (limited to 'src/mailman/core/runner.py')
| -rw-r--r-- | src/mailman/core/runner.py | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/src/mailman/core/runner.py b/src/mailman/core/runner.py index 81a2ea3d1..5ffc3f57d 100644 --- a/src/mailman/core/runner.py +++ b/src/mailman/core/runner.py @@ -17,9 +17,6 @@ """The process runner base class.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Runner', ] @@ -30,12 +27,7 @@ import signal import logging import traceback -from cStringIO import StringIO from lazr.config import as_boolean, as_timedelta -from zope.component import getUtility -from zope.event import notify -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.core.logging import reopen @@ -44,6 +36,10 @@ from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.listmanager import IListManager from mailman.interfaces.runner import IRunner, RunnerCrashEvent from mailman.utilities.string import expand +from six.moves import cStringIO as StringIO +from zope.component import getUtility +from zope.event import notify +from zope.interface import implementer dlog = logging.getLogger('mailman.debug') @@ -218,16 +214,26 @@ class Runner: # them out of our sight. # # Find out which mailing list this message is destined for. + mlist = None missing = object() - listname = msgdata.get('listname', missing) - mlist = (None - if listname is missing - else getUtility(IListManager).get(unicode(listname))) + # First try to dig out the target list by id. If there's no list-id + # in the metadata, fall back to the fqdn list name for backward + # compatibility. + list_manager = getUtility(IListManager) + list_id = msgdata.get('listid', missing) + fqdn_listname = None + if list_id is missing: + fqdn_listname = msgdata.get('listname', missing) + # XXX Deprecate. + if fqdn_listname is not missing: + mlist = list_manager.get(fqdn_listname) + else: + mlist = list_manager.get_by_list_id(list_id) if mlist is None: + identifier = (list_id if list_id is not None else fqdn_listname) elog.error( '%s runner "%s" shunting message for missing list: %s', - msg['message-id'], self.name, - ('n/a' if listname is missing else listname)) + msg['message-id'], self.name, identifier) config.switchboards['shunt'].enqueue(msg, msgdata) return # Now process this message. We also want to set up the language |
