summaryrefslogtreecommitdiff
path: root/Mailman/Queue/BounceRunner.py
diff options
context:
space:
mode:
authorbwarsaw2006-07-08 17:37:55 +0000
committerbwarsaw2006-07-08 17:37:55 +0000
commitcbef3114de3e80b9436d909b11568858e3a1cf42 (patch)
treef567fe3fbc331fe399b92e93f80068e8995a7821 /Mailman/Queue/BounceRunner.py
parent60b723291e592ff7925e1b15b79161d1cdac5938 (diff)
downloadmailman-cbef3114de3e80b9436d909b11568858e3a1cf42.tar.gz
mailman-cbef3114de3e80b9436d909b11568858e3a1cf42.tar.zst
mailman-cbef3114de3e80b9436d909b11568858e3a1cf42.zip
Massive conversion process so that Mailman can be run from a user specified
configuration file. While the full conversion is not yet complete, everything that seems to be required to run mailmanctl, qrunner, rmlist, and newlist have been updated. Basically, modules should no longer import mm_cfg, but instead they should import Mailman.configuration.config. The latter is an object that's guaranteed to exist, but not guaranteed to be initialized until some top-level script calls config.load(). The latter should be called with the argument to -C/--config which is a new convention the above scripts have been given. In most cases, where mm_cfg.<variable> is used config.<variable> can be used, but the exceptions are where the default value must be available before config.load() is called. Sometimes you can import Mailman.Default and get the variable from there, but other times the code has to be changed to work around this limitation. Take each on a case-by-case basis. Note that the various directories calculated from VAR_PREFIX, EXEC_PREFIX, and PREFIX are now calculated in config.py, not in Defaults.py. This way a configuration file can override the base directories and everything should work correctly. Other changes here include: - mailmanctl, qrunner, and update are switched to optparse and $-strings, and changed to the mmshell architecture - An etc directory has been added to /usr/local/mailman and a mailman.cfg.sample file is installed there. Sites should now edit an etc/mailman.cfg file to do their configurations, although the mm_cfg file is still honored. The formats of the two files are identical. - list_lists is given the -C/--config option - Some coding style fixes in bin/update, but not extensive - Get rid of nested scope hacks in qrunner.py - A start on getting EmailBase tests working (specifically test_message), although not yet complete.
Diffstat (limited to 'Mailman/Queue/BounceRunner.py')
-rw-r--r--Mailman/Queue/BounceRunner.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/Mailman/Queue/BounceRunner.py b/Mailman/Queue/BounceRunner.py
index 0063635ac..93bee2062 100644
--- a/Mailman/Queue/BounceRunner.py
+++ b/Mailman/Queue/BounceRunner.py
@@ -28,13 +28,13 @@ from email.MIMEText import MIMEText
from email.Utils import parseaddr
from Mailman import LockFile
-from Mailman import mm_cfg
from Mailman import Utils
from Mailman.Bouncers import BouncerAPI
-from Mailman.i18n import _
from Mailman.Message import UserNotification
from Mailman.Queue.Runner import Runner
from Mailman.Queue.sbcache import get_switchboard
+from Mailman.configuration import config
+from Mailman.i18n import _
COMMASPACE = ', '
@@ -78,10 +78,10 @@ class BounceMixin:
# their lists. So now we ignore site list bounces. Ce La Vie for
# password reminder bounces.
self._bounce_events_file = os.path.join(
- mm_cfg.DATA_DIR, 'bounce-events-%05d.pck' % os.getpid())
+ config.DATA_DIR, 'bounce-events-%05d.pck' % os.getpid())
self._bounce_events_fp = None
self._bouncecnt = 0
- self._nextaction = time.time() + mm_cfg.REGISTER_BOUNCES_EVERY
+ self._nextaction = time.time() + config.REGISTER_BOUNCES_EVERY
def _queue_bounces(self, listname, addrs, msg):
today = time.localtime()[:3]
@@ -137,7 +137,7 @@ class BounceMixin:
if self._nextaction > now or self._bouncecnt == 0:
return
# Let's go ahead and register the bounces we've got stored up
- self._nextaction = now + mm_cfg.REGISTER_BOUNCES_EVERY
+ self._nextaction = now + config.REGISTER_BOUNCES_EVERY
self._register_bounces()
def _probe_bounce(self, mlist, token):
@@ -158,7 +158,7 @@ class BounceMixin:
class BounceRunner(Runner, BounceMixin):
- QDIR = mm_cfg.BOUNCEQUEUE_DIR
+ QDIR = config.BOUNCEQUEUE_DIR
def __init__(self, slice=None, numslices=1):
Runner.__init__(self, slice, numslices)
@@ -167,7 +167,7 @@ class BounceRunner(Runner, BounceMixin):
def _dispose(self, mlist, msg, msgdata):
# Make sure we have the most up-to-date state
mlist.Load()
- outq = get_switchboard(mm_cfg.OUTQUEUE_DIR)
+ outq = get_switchboard(config.OUTQUEUE_DIR)
# There are a few possibilities here:
#
# - the message could have been VERP'd in which case, we know exactly
@@ -245,7 +245,7 @@ def verp_bounce(mlist, msg):
to = parseaddr(field)[1]
if not to:
continue # empty header
- mo = re.search(mm_cfg.VERP_REGEXP, to)
+ mo = re.search(config.VERP_REGEXP, to)
if not mo:
continue # no match of regexp
try:
@@ -255,7 +255,7 @@ def verp_bounce(mlist, msg):
addr = '%s@%s' % mo.group('mailbox', 'host')
except IndexError:
elog.error("VERP_REGEXP doesn't yield the right match groups: %s",
- mm_cfg.VERP_REGEXP)
+ config.VERP_REGEXP)
return []
return [addr]
@@ -276,7 +276,7 @@ def verp_probe(mlist, msg):
to = parseaddr(field)[1]
if not to:
continue # empty header
- mo = re.search(mm_cfg.VERP_PROBE_REGEXP, to)
+ mo = re.search(config.VERP_PROBE_REGEXP, to)
if not mo:
continue # no match of regexp
try:
@@ -290,7 +290,7 @@ def verp_probe(mlist, msg):
except IndexError:
elog.error(
"VERP_PROBE_REGEXP doesn't yield the right match groups: %s",
- mm_cfg.VERP_PROBE_REGEXP)
+ config.VERP_PROBE_REGEXP)
return None