diff options
| author | Barry Warsaw | 2008-12-20 15:41:16 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2008-12-20 15:41:16 -0500 |
| commit | dfccf2b7d2b5749c86267645aaf870f128dab2d8 (patch) | |
| tree | 205cc5253b2b5462e9e5409b09b0a7cea7f30a7b /mailman/pipeline | |
| parent | 33a924c56669b12e268bce5df68f598b690cdcf0 (diff) | |
| download | mailman-dfccf2b7d2b5749c86267645aaf870f128dab2d8.tar.gz mailman-dfccf2b7d2b5749c86267645aaf870f128dab2d8.tar.zst mailman-dfccf2b7d2b5749c86267645aaf870f128dab2d8.zip | |
Lots of changes to make bin/withlist work under a buildout environment.
mailman.configuration -> mailman.config.config
mailman.initialize -> mailma.core.initialize
mailman.loginit -> mailman.core.logging (yay future absolute imports!)
Convert all configurations to lazr.config, though some legacy still remains,
and I haven't been able to remove Defaults.py yet. Added as_boolean() and
as_log_level() helpers for explicit type conversion. Added a schema.cfg.
Diffstat (limited to 'mailman/pipeline')
| -rw-r--r-- | mailman/pipeline/acknowledge.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/avoid_duplicates.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/calculate_recipients.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/cleanse_dkim.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/cook_headers.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/decorate.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/mime_delete.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/moderate.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/scrubber.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/smtp_direct.py | 109 | ||||
| -rw-r--r-- | mailman/pipeline/to_archive.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/to_digest.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/to_outgoing.py | 2 | ||||
| -rw-r--r-- | mailman/pipeline/to_usenet.py | 2 |
14 files changed, 60 insertions, 75 deletions
diff --git a/mailman/pipeline/acknowledge.py b/mailman/pipeline/acknowledge.py index 41fc931ae..7421fcdd6 100644 --- a/mailman/pipeline/acknowledge.py +++ b/mailman/pipeline/acknowledge.py @@ -28,7 +28,7 @@ from zope.interface import implements from mailman import Message from mailman import Utils -from mailman.configuration import config +from mailman.config import config from mailman.i18n import _ from mailman.interfaces import IHandler diff --git a/mailman/pipeline/avoid_duplicates.py b/mailman/pipeline/avoid_duplicates.py index d228c6ad9..604d8b162 100644 --- a/mailman/pipeline/avoid_duplicates.py +++ b/mailman/pipeline/avoid_duplicates.py @@ -30,7 +30,7 @@ __all__ = ['AvoidDuplicates'] from email.Utils import getaddresses, formataddr from zope.interface import implements -from mailman.configuration import config +from mailman.config import config from mailman.i18n import _ from mailman.interfaces import IHandler diff --git a/mailman/pipeline/calculate_recipients.py b/mailman/pipeline/calculate_recipients.py index f892435cd..3207a398e 100644 --- a/mailman/pipeline/calculate_recipients.py +++ b/mailman/pipeline/calculate_recipients.py @@ -30,7 +30,7 @@ from zope.interface import implements from mailman import Message from mailman import Utils -from mailman.configuration import config +from mailman.config import config from mailman.core import errors from mailman.i18n import _ from mailman.interfaces import DeliveryStatus, IHandler diff --git a/mailman/pipeline/cleanse_dkim.py b/mailman/pipeline/cleanse_dkim.py index ae51fc27c..bc76e2726 100644 --- a/mailman/pipeline/cleanse_dkim.py +++ b/mailman/pipeline/cleanse_dkim.py @@ -31,7 +31,7 @@ __all__ = ['CleanseDKIM'] from zope.interface import implements -from mailman.configuration import config +from mailman.config import config from mailman.i18n import _ from mailman.interfaces import IHandler diff --git a/mailman/pipeline/cook_headers.py b/mailman/pipeline/cook_headers.py index 362c8ecf7..bd3ad8a84 100644 --- a/mailman/pipeline/cook_headers.py +++ b/mailman/pipeline/cook_headers.py @@ -32,7 +32,7 @@ from email.utils import parseaddr, formataddr, getaddresses from zope.interface import implements from mailman import Utils -from mailman.configuration import config +from mailman.config import config from mailman.core.plugins import get_plugins from mailman.i18n import _ from mailman.interfaces import IHandler, Personalization, ReplyToMunging diff --git a/mailman/pipeline/decorate.py b/mailman/pipeline/decorate.py index 3e9c6360b..bc684a1b1 100644 --- a/mailman/pipeline/decorate.py +++ b/mailman/pipeline/decorate.py @@ -30,7 +30,7 @@ from zope.interface import implements from mailman import Utils from mailman.Message import Message -from mailman.configuration import config +from mailman.config import config from mailman.i18n import _ from mailman.interfaces import IHandler diff --git a/mailman/pipeline/mime_delete.py b/mailman/pipeline/mime_delete.py index 9cb34297f..6de3d0a72 100644 --- a/mailman/pipeline/mime_delete.py +++ b/mailman/pipeline/mime_delete.py @@ -39,7 +39,7 @@ from zope.interface import implements from mailman.Message import UserNotification from mailman.Utils import oneline -from mailman.configuration import config +from mailman.config import config from mailman.core import errors from mailman.i18n import _ from mailman.interfaces import IHandler diff --git a/mailman/pipeline/moderate.py b/mailman/pipeline/moderate.py index 11471dd3a..aa78eaa36 100644 --- a/mailman/pipeline/moderate.py +++ b/mailman/pipeline/moderate.py @@ -24,7 +24,7 @@ from email.MIMEText import MIMEText from mailman import Message from mailman import Utils -from mailman.configuration import config +from mailman.config import config from mailman.core import errors from mailman.i18n import _ diff --git a/mailman/pipeline/scrubber.py b/mailman/pipeline/scrubber.py index 4b8d9f770..abc904613 100644 --- a/mailman/pipeline/scrubber.py +++ b/mailman/pipeline/scrubber.py @@ -39,7 +39,7 @@ from mimetypes import guess_all_extensions from zope.interface import implements from mailman import Utils -from mailman.configuration import config +from mailman.config import config from mailman.core.errors import DiscardMessage from mailman.core.plugins import get_plugin from mailman.i18n import _ diff --git a/mailman/pipeline/smtp_direct.py b/mailman/pipeline/smtp_direct.py index 7d9242417..ab5ca0096 100644 --- a/mailman/pipeline/smtp_direct.py +++ b/mailman/pipeline/smtp_direct.py @@ -27,7 +27,9 @@ for a threaded implementation. """ __metaclass__ = type -__all__ = ['SMTPDirect'] +__all__ = [ + 'SMTPDirect', + ] import copy @@ -44,20 +46,15 @@ from email.Utils import formataddr from zope.interface import implements from mailman import Utils -from mailman.configuration import config +from mailman.config import config from mailman.core import errors from mailman.i18n import _ from mailman.interfaces import IHandler, Personalization DOT = '.' - -log = logging.getLogger('mailman.smtp') -flog = logging.getLogger('mailman.smtp-failure') -every_log = logging.getLogger('mailman.' + config.SMTP_LOG_EVERY_MESSAGE[0]) -success_log = logging.getLogger('mailman.' + config.SMTP_LOG_SUCCESS[0]) -refused_log = logging.getLogger('mailman.' + config.SMTP_LOG_REFUSED[0]) -failure_log = logging.getLogger('mailman.' + config.SMTP_LOG_EACH_FAILURE[0]) +COMMA = ',' +log = logging.getLogger('mailman.smtp') @@ -101,20 +98,6 @@ class Connection: -class MessageDict(dict): - def __init__(self, message, extras): - super(MessageDict, self).__init__() - for key, value in message.items(): - self[key.lower()] = value - self.update(extras) - - -class Template(string.Template): - # Allow dashes and # signs, in addition to the standard pattern. - idpattern = '[_a-z#-][_a-z0-9#-]*' - - - def process(mlist, msg, msgdata): recips = msgdata.get('recips') if not recips: @@ -192,38 +175,39 @@ def process(mlist, msg, msgdata): msgdata['recips'] = origrecips # Log the successful post t1 = time.time() - substitutions = MessageDict(msg, { - 'time' : t1-t0, - 'size' : msg.original_size, - '#recips' : len(recips), - '#refused' : len(refused), - 'listname' : mlist.fqdn_listname, - 'sender' : origsender, - }) - if 'message-id' not in substitutions: - substitutions['message-id'] = 'n/a' - # We have to use the copy() method because extended call syntax requires a - # concrete dictionary object; it does not allow a generic mapping (XXX is - # this still true in Python 2.3?). - if config.SMTP_LOG_EVERY_MESSAGE: - template = Template(config.SMTP_LOG_EVERY_MESSAGE[1]) - every_log.info('%s', template.safe_substitute(substitutions)) - + substitutions = dict( + msgid = msg.get('message-id', 'n/a'), + listname = mlist.fqdn_listname, + sender = origsender, + recip = len(recips), + size = msg.original_size, + seconds = t1 - t0, + refused = len(refused), + smtpcode = 'n/a', + smtpmsg = 'n/a', + ) + # Log this message. + template = config.logging.smtp.every + if template != 'no': + template = Template(template) + log.info('%s', template.safe_substitute(substitutions)) if refused: - if config.SMTP_LOG_REFUSED: - template = Template(config.SMTP_LOG_REFUSED[1]) - refused_log.info('%s', template.safe_substitute(substitutions)) - - elif msgdata.get('tolist'): - # Log the successful post, but only if it really was a post to the - # mailing list. Don't log sends to the -owner, or -admin addrs. - # -request addrs should never get here. BAW: it may be useful to log - # the other messages, but in that case, we should probably have a - # separate configuration variable to control that. - if config.SMTP_LOG_SUCCESS: - template = Template(config.SMTP_LOG_SUCCESS[1]) - success_log.info('%s', template.safe_substitute(substitutions)) - + template = config.logging.smtp.refused + if template != 'no': + template = Template(template) + log.info('%s', template.safe_substitute(substitutions)) + else: + # Log the successful post, but if it was not destined to the mailing + # list (e.g. to the owner or admin), print the actual recipients + # instead of just the number. + if not msgdata.get('tolist'): + recips = msg.get_all('to', []) + recips.extend(msg.get_all('cc', [])) + substitutions['recips'] = COMMA.join(recips) + template = config.logging.smtp.success + if template != 'no': + template = Template(template) + log.info('%s', template.safe_substitute(substitutions)) # Process any failed deliveries. tempfailures = [] permfailures = [] @@ -244,14 +228,15 @@ def process(mlist, msg, msgdata): # Deal with persistent transient failures by queuing them up for # future delivery. TBD: this could generate lots of log entries! tempfailures.append(recip) - if config.SMTP_LOG_EACH_FAILURE: - substitutions.update({ - 'recipient' : recip, - 'failcode' : code, - 'failmsg' : smtpmsg, - }) - template = Template(config.SMTP_LOG_EACH_FAILURE[1]) - failure_log.info('%s', template.safe_substitute(substitutions)) + template = config.logging.smtp.failure + if template != 'no': + substitutions.update( + recip = recip, + smtpcode = code, + smtpmsg = smtpmsg, + ) + template = Template(template) + log.info('%s', template.safe_substitute(substitutions)) # Return the results if tempfailures or permfailures: raise errors.SomeRecipientsFailed(tempfailures, permfailures) diff --git a/mailman/pipeline/to_archive.py b/mailman/pipeline/to_archive.py index b693d8341..4d8c27cf1 100644 --- a/mailman/pipeline/to_archive.py +++ b/mailman/pipeline/to_archive.py @@ -23,7 +23,7 @@ __all__ = ['ToArchive'] from zope.interface import implements -from mailman.configuration import config +from mailman.config import config from mailman.i18n import _ from mailman.interfaces import IHandler from mailman.queue import Switchboard diff --git a/mailman/pipeline/to_digest.py b/mailman/pipeline/to_digest.py index cec2fa1fc..78984c92e 100644 --- a/mailman/pipeline/to_digest.py +++ b/mailman/pipeline/to_digest.py @@ -53,7 +53,7 @@ from mailman import Utils from mailman import i18n from mailman.Mailbox import Mailbox from mailman.Mailbox import Mailbox -from mailman.configuration import config +from mailman.config import config from mailman.core import errors from mailman.interfaces import DeliveryMode, DeliveryStatus, IHandler from mailman.pipeline.decorate import decorate diff --git a/mailman/pipeline/to_outgoing.py b/mailman/pipeline/to_outgoing.py index 48633da96..d8d1ec935 100644 --- a/mailman/pipeline/to_outgoing.py +++ b/mailman/pipeline/to_outgoing.py @@ -28,7 +28,7 @@ __all__ = ['ToOutgoing'] from zope.interface import implements -from mailman.configuration import config +from mailman.config import config from mailman.i18n import _ from mailman.interfaces import IHandler, Personalization from mailman.queue import Switchboard diff --git a/mailman/pipeline/to_usenet.py b/mailman/pipeline/to_usenet.py index 4ebd94bec..14e7811bb 100644 --- a/mailman/pipeline/to_usenet.py +++ b/mailman/pipeline/to_usenet.py @@ -25,7 +25,7 @@ import logging from zope.interface import implements -from mailman.configuration import config +from mailman.config import config from mailman.i18n import _ from mailman.interfaces import IHandler from mailman.queue import Switchboard |
